diff --git a/debian/changelog b/debian/changelog index 8cbe02049..8cd8edce5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,7 @@ systemd (208-8) UNRELEASED; urgency=medium * Add Breaks: systemd (<< 208) to udev to avoid partial upgrades. Newer udev versions rely on kmod-static-nodes.service being provided by systemd. (Closes: #757777) + * Updated upstream v208-stable patch series to 53b1b6c. -- Martin Pitt Thu, 07 Aug 2014 08:31:38 +0200 diff --git a/debian/patches/Add-run-initctl-support-to-SysV-compat-tools.patch b/debian/patches/Add-run-initctl-support-to-SysV-compat-tools.patch index 16872b865..98035952c 100644 --- a/debian/patches/Add-run-initctl-support-to-SysV-compat-tools.patch +++ b/debian/patches/Add-run-initctl-support-to-SysV-compat-tools.patch @@ -11,10 +11,10 @@ as PID 1. 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 78bdeb2..a78881b 100644 +index 21a99bc..c2f7bbc 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -5732,19 +5732,24 @@ static int talk_initctl(void) { +@@ -5729,19 +5729,24 @@ static int talk_initctl(void) { request.cmd = INIT_CMD_RUNLVL; request.runlevel = rl; diff --git a/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch b/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch index 88a5fc3e6..a7284f7bc 100644 --- a/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch +++ b/debian/patches/Add-targets-for-compatibility-with-Debian-insserv-sy.patch @@ -11,10 +11,10 @@ Subject: Add targets for compatibility with Debian insserv system facilities create mode 100644 units/x-display-manager.target diff --git a/Makefile.am b/Makefile.am -index 1bd4e99..78ae428 100644 +index cdd412e..0bbd79a 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -457,6 +457,12 @@ nodist_systemunit_DATA = \ +@@ -465,6 +465,12 @@ nodist_systemunit_DATA = \ units/initrd-switch-root.service \ units/systemd-nspawn@.service diff --git a/debian/patches/Also-redirect-to-update-rc.d-when-not-using-.service.patch b/debian/patches/Also-redirect-to-update-rc.d-when-not-using-.service.patch index b9b160930..144559cbd 100644 --- a/debian/patches/Also-redirect-to-update-rc.d-when-not-using-.service.patch +++ b/debian/patches/Also-redirect-to-update-rc.d-when-not-using-.service.patch @@ -9,10 +9,10 @@ enable rsyslog.service) 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index f3be0f1..ea36b48 100644 +index 9c9f0ac..ab92fc7 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -4255,9 +4255,6 @@ static int enable_sysv_units(char **args) { +@@ -4257,9 +4257,6 @@ static int enable_sysv_units(const char *verb, char **args) { name = args[f]; @@ -22,7 +22,7 @@ index f3be0f1..ea36b48 100644 if (path_is_absolute(name)) continue; -@@ -4289,7 +4286,8 @@ static int enable_sysv_units(char **args) { +@@ -4291,7 +4288,8 @@ static int enable_sysv_units(const char *verb, char **args) { goto finish; } diff --git a/debian/patches/Avoid-reload-and-re-start-requests-during-early-boot.patch b/debian/patches/Avoid-reload-and-re-start-requests-during-early-boot.patch index ad218ba65..48184a1d5 100644 --- a/debian/patches/Avoid-reload-and-re-start-requests-during-early-boot.patch +++ b/debian/patches/Avoid-reload-and-re-start-requests-during-early-boot.patch @@ -9,10 +9,10 @@ Closes: #624599 1 file changed, 15 insertions(+) diff --git a/src/core/manager.c b/src/core/manager.c -index c573a72..c56027f 100644 +index c47dd44..a228287 100644 --- a/src/core/manager.c +++ b/src/core/manager.c -@@ -976,6 +976,21 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove +@@ -974,6 +974,21 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); return -EINVAL; } diff --git a/debian/patches/Avoid-reloading-services-when-shutting-down.patch b/debian/patches/Avoid-reloading-services-when-shutting-down.patch index f0547cf8e..4370e4571 100644 --- a/debian/patches/Avoid-reloading-services-when-shutting-down.patch +++ b/debian/patches/Avoid-reloading-services-when-shutting-down.patch @@ -9,10 +9,10 @@ for the patch. Closes: #624599. 1 file changed, 25 insertions(+) diff --git a/src/core/manager.c b/src/core/manager.c -index 58dacdc..c573a72 100644 +index e75550b..c47dd44 100644 --- a/src/core/manager.c +++ b/src/core/manager.c -@@ -943,6 +943,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { +@@ -941,6 +941,8 @@ 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; Transaction *tr; @@ -21,7 +21,7 @@ index 58dacdc..c573a72 100644 assert(m); assert(type < _JOB_TYPE_MAX); -@@ -954,6 +956,29 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove +@@ -952,6 +954,29 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove return -EINVAL; } diff --git a/debian/patches/Check-for-kmod-binary.patch b/debian/patches/Check-for-kmod-binary.patch index 4ad2f7abd..c91ea546d 100644 --- a/debian/patches/Check-for-kmod-binary.patch +++ b/debian/patches/Check-for-kmod-binary.patch @@ -11,12 +11,12 @@ will fail, so add a condition to check if the binary is available. 1 file changed, 1 insertion(+) diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in -index ff4017b..718d77b 100644 +index 0934a87..076e316 100644 --- a/units/kmod-static-nodes.service.in +++ b/units/kmod-static-nodes.service.in @@ -11,6 +11,7 @@ DefaultDependencies=no Before=sysinit.target systemd-tmpfiles-setup-dev.service - ConditionCapability=CAP_MKNOD + ConditionCapability=CAP_SYS_MODULE ConditionPathExists=/lib/modules/%v/modules.devname +ConditionFileIsExecutable=@KMOD@ diff --git a/debian/patches/Don-t-mount-tmp-as-tmpfs-by-default.patch b/debian/patches/Don-t-mount-tmp-as-tmpfs-by-default.patch index d5760a608..afe229d99 100644 --- a/debian/patches/Don-t-mount-tmp-as-tmpfs-by-default.patch +++ b/debian/patches/Don-t-mount-tmp-as-tmpfs-by-default.patch @@ -18,10 +18,10 @@ anymore afterwards). 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am -index 8d9c587..7d1f408 100644 +index 205ea50..41b89b2 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -4413,8 +4413,7 @@ SYSINIT_TARGET_WANTS += \ +@@ -4437,8 +4437,7 @@ SYSINIT_TARGET_WANTS += \ systemd-update-utmp.service LOCAL_FS_TARGET_WANTS += \ systemd-remount-fs.service \ @@ -32,10 +32,10 @@ index 8d9c587..7d1f408 100644 getty.target \ systemd-ask-password-wall.path diff --git a/units/tmp.mount b/units/tmp.mount -index 99a3ba3..3b4d6f8 100644 +index 00a0d28..8777171 100644 --- a/units/tmp.mount +++ b/units/tmp.mount -@@ -18,3 +18,6 @@ What=tmpfs +@@ -19,3 +19,6 @@ What=tmpfs Where=/tmp Type=tmpfs Options=mode=1777,strictatime diff --git a/debian/patches/Revert-service-drop-support-for-SysV-scripts-for-the.patch b/debian/patches/Revert-service-drop-support-for-SysV-scripts-for-the.patch index 606164de7..7d51eda91 100644 --- a/debian/patches/Revert-service-drop-support-for-SysV-scripts-for-the.patch +++ b/debian/patches/Revert-service-drop-support-for-SysV-scripts-for-the.patch @@ -13,10 +13,10 @@ generator for that, as this would be cleaner. But for now that will do. 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/core/service.c b/src/core/service.c -index 47587d0..e11c413 100644 +index 2a6c3c8..f8a0201 100644 --- a/src/core/service.c +++ b/src/core/service.c -@@ -51,7 +51,8 @@ +@@ -52,7 +52,8 @@ typedef enum RunlevelType { RUNLEVEL_UP, @@ -26,7 +26,7 @@ index 47587d0..e11c413 100644 } RunlevelType; static const struct { -@@ -66,6 +67,9 @@ static const struct { +@@ -67,6 +68,9 @@ static const struct { { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, @@ -36,7 +36,7 @@ index 47587d0..e11c413 100644 /* Standard SysV runlevels for shutdown */ { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } -@@ -74,10 +78,12 @@ static const struct { +@@ -75,10 +79,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 @@ -50,7 +50,7 @@ index 47587d0..e11c413 100644 #endif static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { -@@ -915,6 +921,13 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -917,6 +923,13 @@ static int service_load_sysv_path(Service *s, const char *path) { if ((r = sysv_exec_commands(s, supports_reload)) < 0) goto finish; @@ -64,7 +64,7 @@ index 47587d0..e11c413 100644 if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { /* If there a runlevels configured for this service -@@ -3541,7 +3554,7 @@ static int service_enumerate(Manager *m) { +@@ -3614,7 +3627,7 @@ static int service_enumerate(Manager *m) { if (de->d_name[0] == 'S') { @@ -73,7 +73,7 @@ index 47587d0..e11c413 100644 SERVICE(service)->sysv_start_priority_from_rcnd = MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); -@@ -3558,7 +3571,8 @@ static int service_enumerate(Manager *m) { +@@ -3631,7 +3644,8 @@ static int service_enumerate(Manager *m) { goto finish; } else if (de->d_name[0] == 'K' && diff --git a/debian/patches/Revert-udev-network-device-renaming-immediately-give.patch b/debian/patches/Revert-udev-network-device-renaming-immediately-give.patch index fe2e18a10..8e3e22c82 100644 --- a/debian/patches/Revert-udev-network-device-renaming-immediately-give.patch +++ b/debian/patches/Revert-udev-network-device-renaming-immediately-give.patch @@ -16,10 +16,10 @@ this old hack to make the renaming less likely to fail. 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c -index 3db2cb7..c768d12 100644 +index 37b545b..18f66ec 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) +@@ -752,6 +752,7 @@ static int rename_netif(struct udev_event *event) struct udev_device *dev = event->dev; int sk; struct ifreq ifr; @@ -27,7 +27,7 @@ index 3db2cb7..c768d12 100644 int err; log_debug("changing net interface name from '%s' to '%s'\n", -@@ -766,12 +767,49 @@ static int rename_netif(struct udev_event *event) +@@ -768,12 +769,49 @@ 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); diff --git a/debian/patches/Start-logind-on-demand-via-libpam-systemd.patch b/debian/patches/Start-logind-on-demand-via-libpam-systemd.patch index e4d597c49..a45e7c7aa 100644 --- a/debian/patches/Start-logind-on-demand-via-libpam-systemd.patch +++ b/debian/patches/Start-logind-on-demand-via-libpam-systemd.patch @@ -8,11 +8,11 @@ to access logind via D-Bus will start it on demand. src/login/pam-module.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -Index: systemd/src/login/pam-module.c -=================================================================== ---- systemd.orig/src/login/pam-module.c -+++ systemd/src/login/pam-module.c -@@ -191,10 +191,6 @@ _public_ PAM_EXTERN int pam_sm_open_sess +diff --git a/src/login/pam-module.c b/src/login/pam-module.c +index fe3ddd4..b5085ff 100644 +--- a/src/login/pam-module.c ++++ b/src/login/pam-module.c +@@ -191,10 +191,6 @@ _public_ PAM_EXTERN int pam_sm_open_session( dbus_error_init(&error); @@ -23,7 +23,7 @@ Index: systemd/src/login/pam-module.c if (parse_argv(handle, argc, argv, &class_pam, -@@ -254,7 +250,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess +@@ -254,7 +250,8 @@ _public_ PAM_EXTERN int pam_sm_open_session( bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); if (!bus) { diff --git a/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch b/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch index d3d6f6057..c5d458878 100644 --- a/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch +++ b/debian/patches/Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch @@ -13,10 +13,10 @@ again. 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml -index 48af1ca..66be987 100644 +index cadf950..517731b 100644 --- a/man/systemd.mount.xml +++ b/man/systemd.mount.xml -@@ -145,12 +145,12 @@ +@@ -148,12 +148,12 @@ local-fs.target or remote-fs.target, depending whether the file system is local or remote. If diff --git a/debian/patches/Use-different-default-paths-for-various-binaries.patch b/debian/patches/Use-different-default-paths-for-various-binaries.patch index 493ac3451..bf830e00a 100644 --- a/debian/patches/Use-different-default-paths-for-various-binaries.patch +++ b/debian/patches/Use-different-default-paths-for-various-binaries.patch @@ -12,7 +12,7 @@ paths. Closes: #721347 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac -index 9605b38..b7f8a74 100644 +index 4b0b45b..e3df24c 100644 --- a/configure.ac +++ b/configure.ac @@ -67,16 +67,16 @@ AC_PROG_GCC_TRADITIONAL @@ -38,7 +38,7 @@ index 9605b38..b7f8a74 100644 AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])]) -@@ -792,13 +792,13 @@ AC_ARG_WITH(kbd-loadkeys, +@@ -742,13 +742,13 @@ AC_ARG_WITH(kbd-loadkeys, AS_HELP_STRING([--with-kbd-loadkeys=PATH], [Path to loadkeys]), [KBD_LOADKEYS="$withval"], diff --git a/debian/patches/accelerometer-Don-t-wait-for-new-data-from-the-senso.patch b/debian/patches/accelerometer-Don-t-wait-for-new-data-from-the-senso.patch new file mode 100644 index 000000000..52725130d --- /dev/null +++ b/debian/patches/accelerometer-Don-t-wait-for-new-data-from-the-senso.patch @@ -0,0 +1,74 @@ +From: Bastien Nocera +Date: Tue, 8 Jul 2014 18:29:06 +0200 +Subject: accelerometer: Don't wait for new data from the sensor + +Instead of waiting for new data from the sensor, which might be +a long time coming, depending on the sensor device, ask the kernel +for the last state for that particular input device. + +(cherry picked from commit a545c6e1aa31b4d7e80c9d3609d9fc4fc9921498) +(cherry picked from commit e27bfc22bba932950a398b32bf57be6f825438ee) +--- + src/udev/accelerometer/accelerometer.c | 33 ++++++--------------------------- + 1 file changed, 6 insertions(+), 27 deletions(-) + +diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c +index 9610d7c..d192e57 100644 +--- a/src/udev/accelerometer/accelerometer.c ++++ b/src/udev/accelerometer/accelerometer.c +@@ -179,7 +179,7 @@ get_prev_orientation(struct udev_device *dev) + return string_to_orientation(value); + } + +-#define SET_AXIS(axis, code_) if (ev[i].code == code_) { if (got_##axis == 0) { axis = ev[i].value; got_##axis = true; } } ++#define READ_AXIS(axis, var) { memzero(&abs_info, sizeof(abs_info)); r = ioctl(fd, EVIOCGABS(axis), &abs_info); if (r < 0) return; var = abs_info.value; } + + /* accelerometers */ + static void test_orientation(struct udev *udev, +@@ -188,10 +188,9 @@ static void test_orientation(struct udev *udev, + { + OrientationUp old, new; + _cleanup_close_ int fd = -1; +- struct input_event ev[64]; +- bool got_syn = false; +- bool got_x = false, got_y = false, got_z = false; ++ struct input_absinfo abs_info; + int x = 0, y = 0, z = 0; ++ int r; + char text[64]; + + old = get_prev_orientation(dev); +@@ -200,30 +199,10 @@ static void test_orientation(struct udev *udev, + if (fd < 0) + return; + +- while (1) { +- int i, r; +- +- r = read(fd, ev, sizeof(struct input_event) * 64); +- +- if (r < (int) sizeof(struct input_event)) +- return; +- +- for (i = 0; i < r / (int) sizeof(struct input_event); i++) { +- if (got_syn) { +- if (ev[i].type == EV_ABS) { +- SET_AXIS(x, ABS_X); +- SET_AXIS(y, ABS_Y); +- SET_AXIS(z, ABS_Z); +- } +- } +- if (ev[i].type == EV_SYN && ev[i].code == SYN_REPORT) +- got_syn = true; +- if (got_x && got_y && got_z) +- goto read_dev; +- } +- } ++ READ_AXIS(ABS_X, x); ++ READ_AXIS(ABS_Y, y); ++ READ_AXIS(ABS_Z, z); + +-read_dev: + new = orientation_calc(old, x, y, z); + snprintf(text, sizeof(text), + "ID_INPUT_ACCELEROMETER_ORIENTATION=%s", orientation_to_string(new)); diff --git a/debian/patches/analyze-fix-crash-on-invalid-commandline.patch b/debian/patches/analyze-fix-crash-on-invalid-commandline.patch new file mode 100644 index 000000000..c4a3bbeda --- /dev/null +++ b/debian/patches/analyze-fix-crash-on-invalid-commandline.patch @@ -0,0 +1,29 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Sat, 9 Aug 2014 09:53:34 -0400 +Subject: analyze: fix crash on invalid commandline + +https://bugzilla.redhat.com/show_bug.cgi?id=1128360 +--- + src/analyze/systemd-analyze.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c +index 25f8ad6..db5d6e6 100644 +--- a/src/analyze/systemd-analyze.c ++++ b/src/analyze/systemd-analyze.c +@@ -1236,13 +1236,14 @@ 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", diff --git a/debian/patches/Don-t-move-libgudev-to-lib.patch b/debian/patches/build-sys-don-t-move-libgudev-to-lib.patch similarity index 55% rename from debian/patches/Don-t-move-libgudev-to-lib.patch rename to debian/patches/build-sys-don-t-move-libgudev-to-lib.patch index 157b37d82..b899d8eb6 100644 --- a/debian/patches/Don-t-move-libgudev-to-lib.patch +++ b/debian/patches/build-sys-don-t-move-libgudev-to-lib.patch @@ -1,20 +1,24 @@ From: Michael Biebl -Date: Wed, 17 Jul 2013 18:27:39 +0200 -Subject: Don't move libgudev to /lib +Date: Wed, 16 Jul 2014 12:09:47 +0200 +Subject: build-sys: don't move libgudev to /lib -libgobject and libgmodule are currently installed in /usr/lib. +It depends on libgobject and libgmodule which are installed in /usr/lib. + +(cherry picked from commit 5c059d2ead0787a90732d27ed1b485d236abf641) +(cherry picked from commit c46cee9156e8785fc70e8528d6deb402bef06ca0) --- - Makefile.am | 9 --------- - 1 file changed, 9 deletions(-) + Makefile.am | 10 ---------- + 1 file changed, 10 deletions(-) diff --git a/Makefile.am b/Makefile.am -index 631bfde..43f1ec6 100644 +index d57d890..205ea50 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -2654,15 +2654,6 @@ typelibs_DATA = \ +@@ -2682,16 +2682,6 @@ typelibs_DATA = \ + CLEANFILES += $(gir_DATA) $(typelibs_DATA) endif # HAVE_INTROSPECTION - +- -# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed -libgudev-install-hook: - libname=libgudev-1.0.so && $(move-to-rootlibdir) diff --git a/debian/patches/build-sys-use-glibc-s-xattr-support-instead-of-requi.patch b/debian/patches/build-sys-use-glibc-s-xattr-support-instead-of-requi.patch index b275a370d..5fc3010fd 100644 --- a/debian/patches/build-sys-use-glibc-s-xattr-support-instead-of-requi.patch +++ b/debian/patches/build-sys-use-glibc-s-xattr-support-instead-of-requi.patch @@ -1,8 +1,6 @@ -From bc3d33edd2b227c17ae338bf147067bdfafe299c 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 +Subject: build-sys: use glibc's xattr support instead of requiring libattr (cherry picked from commit d2edfae0f9bdbecf6a8518e2a5bcf06f470e0d9e) --- @@ -90,7 +88,7 @@ index 9605b38..4b0b45b 100644 QRENCODE: ${have_qrencode} MICROHTTPD: ${have_microhttpd} diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c -index cff83d3..12b7ed3 100644 +index 5c6edfd..6843183 100644 --- a/src/core/mount-setup.c +++ b/src/core/mount-setup.c @@ -87,10 +87,8 @@ static const MountPoint mount_table[] = { @@ -105,7 +103,7 @@ index cff83d3..12b7ed3 100644 NULL, MNT_IN_CONTAINER }, { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, diff --git a/src/core/socket.c b/src/core/socket.c -index 8e02c03..3bd4532 100644 +index 1bf1f05..66af49d 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -28,9 +28,7 @@ @@ -120,7 +118,7 @@ index 8e02c03..3bd4532 100644 #include "unit.h" #include "socket.h" diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 2d2d289..010dda1 100644 +index 2d79dce..dd63803 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -26,10 +26,7 @@ @@ -135,7 +133,7 @@ index 2d2d289..010dda1 100644 #include "journal-def.h" #include "journal-file.h" -@@ -2513,7 +2510,6 @@ int journal_file_open( +@@ -2507,7 +2504,6 @@ int journal_file_open( } if (f->last_stat.st_size == 0 && f->writable) { @@ -143,7 +141,7 @@ index 2d2d289..010dda1 100644 uint64_t crtime; /* Let's attach the creation time to the journal file, -@@ -2528,7 +2524,6 @@ int journal_file_open( +@@ -2522,7 +2518,6 @@ int journal_file_open( crtime = htole64((uint64_t) now(CLOCK_REALTIME)); fsetxattr(f->fd, "user.crtime_usec", &crtime, sizeof(crtime), XATTR_CREATE); @@ -195,6 +193,3 @@ index 695e518..442120a 100644 } static int journal_file_empty(int dir_fd, const char *name) { --- -2.0.1 - diff --git a/debian/patches/change-the-log_info-line-in-systemctl-to-reflect-rea.patch b/debian/patches/change-the-log_info-line-in-systemctl-to-reflect-rea.patch index e1aea0ac5..f498ff32f 100644 --- a/debian/patches/change-the-log_info-line-in-systemctl-to-reflect-rea.patch +++ b/debian/patches/change-the-log_info-line-in-systemctl-to-reflect-rea.patch @@ -7,10 +7,10 @@ Subject: change the log_info() line in systemctl to reflect reality 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index a5624a8..f3be0f1 100644 +index 2a69c65..9c9f0ac 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -4298,7 +4298,7 @@ static int enable_sysv_units(char **args) { +@@ -4300,7 +4300,7 @@ static int enable_sysv_units(const char *verb, char **args) { /* Mark this entry, so that we don't try enabling it as native unit */ args[f] = (char*) ""; diff --git a/debian/patches/core-You-can-not-put-the-cached-result-of-use_smack-.patch b/debian/patches/core-You-can-not-put-the-cached-result-of-use_smack-.patch new file mode 100644 index 000000000..28880e2e0 --- /dev/null +++ b/debian/patches/core-You-can-not-put-the-cached-result-of-use_smack-.patch @@ -0,0 +1,29 @@ +From: Ronan Le Martret +Date: Tue, 22 Apr 2014 10:33:25 +0200 +Subject: 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 +(cherry picked from commit d1d8e5d49f3149d03ceb94d1d2f6c14e7abccb6f) +--- + src/core/mount-setup.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c +index cff83d3..5c6edfd 100644 +--- a/src/core/mount-setup.c ++++ b/src/core/mount-setup.c +@@ -69,10 +69,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, diff --git a/debian/patches/core-nicer-message-when-inotify-watches-are-exhauste.patch b/debian/patches/core-nicer-message-when-inotify-watches-are-exhauste.patch new file mode 100644 index 000000000..669659b2a --- /dev/null +++ b/debian/patches/core-nicer-message-when-inotify-watches-are-exhauste.patch @@ -0,0 +1,28 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Wed, 16 Jul 2014 22:52:53 -0400 +Subject: 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 +(cherry picked from commit 18abe7bd3e13525b257da69ac49ff7841c289567) +(cherry picked from commit fe85271fb6090e58b36e182ce3e20a388f0ca006) +--- + src/core/path.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/core/path.c b/src/core/path.c +index 5e4f6d5..538c1ea 100644 +--- a/src/core/path.c ++++ b/src/core/path.c +@@ -95,7 +95,8 @@ int path_spec_watch(PathSpec *s, Unit *u) { + 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; diff --git a/debian/patches/core-snapshot-log-info-when-snapshots-are-created-an.patch b/debian/patches/core-snapshot-log-info-when-snapshots-are-created-an.patch new file mode 100644 index 000000000..a4fbf6755 --- /dev/null +++ b/debian/patches/core-snapshot-log-info-when-snapshots-are-created-an.patch @@ -0,0 +1,80 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Sun, 22 Jun 2014 14:20:08 -0400 +Subject: core/snapshot: log info when snapshots are created and removed + +Snapshot mechanism is not used very much, but snapshot creation/destruction +should be at least as verbose as normal unit starting/stopping. + +(cherry picked from commit 6f8bd5c94ebc19c9afdb17684945526dddc2ec23) + +Conflicts: + TODO +--- + src/core/snapshot.c | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/src/core/snapshot.c b/src/core/snapshot.c +index d11239d..e1267a9 100644 +--- a/src/core/snapshot.c ++++ b/src/core/snapshot.c +@@ -51,10 +51,11 @@ static void snapshot_set_state(Snapshot *s, SnapshotState state) { + s->state = state; + + if (state != old_state) +- log_debug("%s changed %s -> %s", +- UNIT(s)->id, +- snapshot_state_to_string(old_state), +- snapshot_state_to_string(state)); ++ log_debug_unit(UNIT(s)->id, ++ "%s changed %s -> %s", ++ UNIT(s)->id, ++ snapshot_state_to_string(old_state), ++ snapshot_state_to_string(state)); + + unit_notify(UNIT(s), state_translation_table[old_state], state_translation_table[state], true); + } +@@ -154,7 +155,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value + + state = snapshot_state_from_string(value); + if (state < 0) +- log_debug("Failed to parse state value %s", value); ++ log_debug_unit(u->id, "Failed to parse state value %s", value); + else + s->deserialized_state = state; + +@@ -162,7 +163,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value + + r = parse_boolean(value); + if (r < 0) +- log_debug("Failed to parse cleanup value %s", value); ++ log_debug_unit(u->id, "Failed to parse cleanup value %s", value); + else + s->cleanup = r; + +@@ -172,7 +173,7 @@ static int snapshot_deserialize_item(Unit *u, const char *key, const char *value + if (r < 0) + return r; + } else +- log_debug("Unknown serialization key '%s'", key); ++ log_debug_unit(u->id, "Unknown serialization key '%s'", key); + + return 0; + } +@@ -263,6 +264,8 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, DBusError *e, Sn + SNAPSHOT(u)->cleanup = cleanup; + *_s = SNAPSHOT(u); + ++ log_info_unit(u->id, "Created snapshot %s.", u->id); ++ + return 0; + + fail: +@@ -275,6 +278,8 @@ fail: + void snapshot_remove(Snapshot *s) { + assert(s); + ++ log_info_unit(UNIT(s)->id, "Removing snapshot %s.", UNIT(s)->id); ++ + unit_add_to_cleanup_queue(UNIT(s)); + } + diff --git a/debian/patches/core-transaction-avoid-misleading-error-message-when.patch b/debian/patches/core-transaction-avoid-misleading-error-message-when.patch new file mode 100644 index 000000000..d144182dc --- /dev/null +++ b/debian/patches/core-transaction-avoid-misleading-error-message-when.patch @@ -0,0 +1,46 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Sun, 22 Jun 2014 14:04:23 -0400 +Subject: 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 +(cherry picked from commit 04ef5b03f64d3824a51a2a903548af029a006744) + +Conflicts: + TODO + src/core/transaction.c +--- + src/core/transaction.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/src/core/transaction.c b/src/core/transaction.c +index 203070f..10d7602 100644 +--- a/src/core/transaction.c ++++ b/src/core/transaction.c +@@ -861,12 +861,18 @@ int transaction_add_job_and_dependencies( + } + + 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); ++ if (unit->load_error == -ENOENT) ++ dbus_set_error(e, BUS_ERROR_LOAD_FAILED, ++ "Unit %s failed to load: %s.", ++ unit->id, ++ strerror(-unit->load_error)); ++ else ++ 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; + } + diff --git a/debian/patches/core-transaction-fix-cycle-break-attempts-outside-tr.patch b/debian/patches/core-transaction-fix-cycle-break-attempts-outside-tr.patch index d5b519aa4..225a9ac66 100644 --- a/debian/patches/core-transaction-fix-cycle-break-attempts-outside-tr.patch +++ b/debian/patches/core-transaction-fix-cycle-break-attempts-outside-tr.patch @@ -18,12 +18,13 @@ 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 +(cherry picked from commit 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046) --- src/core/transaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/transaction.c b/src/core/transaction.c -index 203070f..45e06b0 100644 +index 10d7602..c8ab491 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -374,7 +374,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi diff --git a/debian/patches/cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch b/debian/patches/cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch new file mode 100644 index 000000000..843215607 --- /dev/null +++ b/debian/patches/cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch @@ -0,0 +1,56 @@ +From: Lennart Poettering +Date: Mon, 23 Jun 2014 19:18:44 +0200 +Subject: 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 +(cherry picked from commit bde29068aa3815c88190a91e9867605a0aeaf9c4) + +Conflicts: + src/cryptsetup/cryptsetup-generator.c +--- + src/cryptsetup/cryptsetup-generator.c | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index 11e5268..1b5f8be 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -30,6 +30,7 @@ + #include "virt.h" + #include "strv.h" + #include "fileio.h" ++#include "path-util.h" + + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; +@@ -137,14 +138,17 @@ 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(); ++ if (!path_equal(uu, "/dev/null")) { ++ ++ 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); ++ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd); ++ } else ++ fprintf(f, "RequiresMountsFor=%s\n", password); ++ } + } + } + diff --git a/debian/patches/hostnamed-add-a-new-chassis-type-for-watches.patch b/debian/patches/hostnamed-add-a-new-chassis-type-for-watches.patch new file mode 100644 index 000000000..e91d0ec34 --- /dev/null +++ b/debian/patches/hostnamed-add-a-new-chassis-type-for-watches.patch @@ -0,0 +1,24 @@ +From: Lennart Poettering +Date: Wed, 9 Jul 2014 13:20:05 +0200 +Subject: hostnamed: add a new chassis type for watches + +(cherry picked from commit c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3) +(cherry picked from commit 6f977a8c14c4cec72a85f20d0986daa391dd3319) +--- + src/hostname/hostnamed.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c +index 0c24b65..769f25c 100644 +--- a/src/hostname/hostnamed.c ++++ b/src/hostname/hostnamed.c +@@ -155,7 +155,8 @@ static bool valid_chassis(const char *chassis) { + "laptop\0" + "server\0" + "tablet\0" +- "handset\0", ++ "handset\0" ++ "watch\0", + chassis); + } + diff --git a/debian/patches/hostnamed-update-documentation-with-new-watch-chassi.patch b/debian/patches/hostnamed-update-documentation-with-new-watch-chassi.patch new file mode 100644 index 000000000..239654a47 --- /dev/null +++ b/debian/patches/hostnamed-update-documentation-with-new-watch-chassi.patch @@ -0,0 +1,39 @@ +From: Tomasz Torcz +Date: Wed, 9 Jul 2014 13:37:50 +0200 +Subject: hostnamed: update documentation with new "watch" chassis type + +(cherry picked from commit efab8d0b0ebf6d715949b7af66fecaf5e5e5d77b) +(cherry picked from commit 710348ce7349b224ba58bae765611455320f68d1) +--- + man/hostnamectl.xml | 3 ++- + man/machine-info.xml | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml +index a0776f5..f3038b3 100644 +--- a/man/hostnamectl.xml ++++ b/man/hostnamectl.xml +@@ -236,7 +236,8 @@ + laptop, + server, + tablet, +- handset, as well as ++ handset, ++ watch, as well as + the special chassis types + vm and + container for +diff --git a/man/machine-info.xml b/man/machine-info.xml +index 7448e68..244e9b6 100644 +--- a/man/machine-info.xml ++++ b/man/machine-info.xml +@@ -138,7 +138,8 @@ + laptop, + server, + tablet, +- handset, as well as ++ handset, ++ watch, as well as + the special chassis types + vm and + container for diff --git a/debian/patches/hwdb-Update-database-of-Bluetooth-company-identi-495.patch b/debian/patches/hwdb-Update-database-of-Bluetooth-company-identi-495.patch new file mode 100644 index 000000000..f75727a0c --- /dev/null +++ b/debian/patches/hwdb-Update-database-of-Bluetooth-company-identi-495.patch @@ -0,0 +1,46 @@ +From: Marcel Holtmann +Date: Thu, 3 Jul 2014 16:13:48 +0200 +Subject: hwdb: Update database of Bluetooth company identifiers + +(cherry picked from commit 063e36db8aed7b54100b33089deb6d2e86d516b9) +--- + hwdb/20-bluetooth-vendor-product.hwdb | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb +index 377748a..9f3136a 100644 +--- a/hwdb/20-bluetooth-vendor-product.hwdb ++++ b/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 diff --git a/debian/patches/hwdb-update-496.patch b/debian/patches/hwdb-update-496.patch new file mode 100644 index 000000000..b47bd4f7d --- /dev/null +++ b/debian/patches/hwdb-update-496.patch @@ -0,0 +1,4389 @@ +From: Kay Sievers +Date: Thu, 3 Jul 2014 16:28:40 +0200 +Subject: hwdb: update + +(cherry picked from commit 98be1a746ac0d7a17e69ccb05936a4d6b3223e97) +--- + 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 a/hwdb/20-OUI.hwdb b/hwdb/20-OUI.hwdb +index 6188bfc..97f1e6b 100644 +--- a/hwdb/20-OUI.hwdb ++++ b/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 a/hwdb/20-pci-classes.hwdb b/hwdb/20-pci-classes.hwdb +index fd1d5d0..5702c40 100644 +--- a/hwdb/20-pci-classes.hwdb ++++ b/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 a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb +index 62941b9..77c727d 100644 +--- a/hwdb/20-pci-vendor-model.hwdb ++++ b/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 a/hwdb/20-usb-classes.hwdb b/hwdb/20-usb-classes.hwdb +index 3294d8a..418d39b 100644 +--- a/hwdb/20-usb-classes.hwdb ++++ b/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 a/hwdb/20-usb-vendor-model.hwdb b/hwdb/20-usb-vendor-model.hwdb +index 05f267d..89cd5b1 100644 +--- a/hwdb/20-usb-vendor-model.hwdb ++++ b/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 + diff --git a/debian/patches/ignore-chkconfig-headers-entirely-they-are-often-bro.patch b/debian/patches/ignore-chkconfig-headers-entirely-they-are-often-bro.patch index 933e4b49d..292b2d403 100644 --- a/debian/patches/ignore-chkconfig-headers-entirely-they-are-often-bro.patch +++ b/debian/patches/ignore-chkconfig-headers-entirely-they-are-often-bro.patch @@ -8,10 +8,10 @@ Closes: #634472 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/service.c b/src/core/service.c -index e11c413..96874f9 100644 +index f8a0201..5af2d20 100644 --- a/src/core/service.c +++ b/src/core/service.c -@@ -636,6 +636,9 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -634,6 +634,9 @@ static int service_load_sysv_path(Service *s, const char *path) { /* Try to parse Red Hat style chkconfig headers */ @@ -21,7 +21,7 @@ index e11c413..96874f9 100644 if (startswith_no_case(t, "chkconfig:")) { int start_priority; char runlevels[16], *k; -@@ -677,7 +680,10 @@ static int service_load_sysv_path(Service *s, const char *path) { +@@ -675,7 +678,10 @@ static int service_load_sysv_path(Service *s, const char *path) { s->sysv_runlevels = d; } diff --git a/debian/patches/insserv.conf-generator.patch b/debian/patches/insserv.conf-generator.patch index 8a2f6df8d..d51c959d6 100644 --- a/debian/patches/insserv.conf-generator.patch +++ b/debian/patches/insserv.conf-generator.patch @@ -23,10 +23,10 @@ It has the following modifications: create mode 100644 src/insserv-generator/insserv-generator.c diff --git a/Makefile.am b/Makefile.am -index 909bf58..1bd4e99 100644 +index 4f5ec6c..cdd412e 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -322,6 +322,7 @@ rootlibexec_PROGRAMS = \ +@@ -323,6 +323,7 @@ rootlibexec_PROGRAMS = \ systemd-sleep systemgenerator_PROGRAMS = \ @@ -34,7 +34,7 @@ index 909bf58..1bd4e99 100644 systemd-getty-generator \ systemd-fstab-generator \ systemd-system-update-generator -@@ -1683,6 +1684,14 @@ systemd_delta_LDADD = \ +@@ -1702,6 +1703,14 @@ systemd_delta_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ diff --git a/debian/patches/journal-allow-files-with-no-data-whatsoever.patch b/debian/patches/journal-allow-files-with-no-data-whatsoever.patch new file mode 100644 index 000000000..d208d5d41 --- /dev/null +++ b/debian/patches/journal-allow-files-with-no-data-whatsoever.patch @@ -0,0 +1,32 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Sun, 30 Mar 2014 14:20:34 -0400 +Subject: journal: allow files with no data whatsoever + +If a file was opened for writing, and then closed immediately without +actually writing any entries, on subsequent opening, it would be +considered "corrupted". This should be totally fine, and even in +read mode, an empty file can become non-empty later on. + +(cherry picked from commit b3306e9c3c1e036396bc6bf74555eecea3f45ad9) +(cherry picked from commit ae1d412f96829802688194e6957f75d37da9d7e9) +--- + src/journal/journal-file.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c +index 2d2d289..2d79dce 100644 +--- a/src/journal/journal-file.c ++++ b/src/journal/journal-file.c +@@ -274,12 +274,6 @@ static int journal_file_verify_header(JournalFile *f) { + !VALID64(le64toh(f->header->entry_array_offset))) + return -ENODATA; + +- if (le64toh(f->header->data_hash_table_offset) < le64toh(f->header->header_size) || +- le64toh(f->header->field_hash_table_offset) < le64toh(f->header->header_size) || +- le64toh(f->header->tail_object_offset) < le64toh(f->header->header_size) || +- le64toh(f->header->entry_array_offset) < le64toh(f->header->header_size)) +- return -ENODATA; +- + if (f->writable) { + uint8_t state; + sd_id128_t machine_id; diff --git a/debian/patches/journal-compress-add-stream-compression-decompressio.patch b/debian/patches/journal-compress-add-stream-compression-decompressio.patch new file mode 100644 index 000000000..71e488b75 --- /dev/null +++ b/debian/patches/journal-compress-add-stream-compression-decompressio.patch @@ -0,0 +1,44 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Tue, 24 Jun 2014 21:24:46 -0400 +Subject: journal/compress: add stream compression/decompression functions + +(cherry picked from commit 355b59e252c9910e44a1ad95c045ba8db58a4f6a) + +Conflicts: + src/journal/test-compress.c + src/shared/copy.c + +Actually keep only compress_blob changes. +--- + src/journal/compress.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/journal/compress.c b/src/journal/compress.c +index cafe8f4..a83dcea 100644 +--- a/src/journal/compress.c ++++ b/src/journal/compress.c +@@ -24,8 +24,8 @@ + #include + #include + +-#include "macro.h" + #include "compress.h" ++#include "macro.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { + lzma_ret ret; +@@ -40,12 +40,12 @@ bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_ + * compressed result is longer than the original */ + + ret = lzma_easy_buffer_encode(LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE, NULL, +- src, src_size, dst, &out_pos, *dst_size); ++ src, src_size, dst, &out_pos, src_size); + if (ret != LZMA_OK) + return false; + + /* Is it actually shorter? */ +- if (out_pos == *dst_size) ++ if (out_pos == src_size) + return false; + + *dst_size = out_pos; diff --git a/debian/patches/journal-compress-improve-xz-compression-performance.patch b/debian/patches/journal-compress-improve-xz-compression-performance.patch new file mode 100644 index 000000000..54d692ef6 --- /dev/null +++ b/debian/patches/journal-compress-improve-xz-compression-performance.patch @@ -0,0 +1,68 @@ +From: Jon Severinsson +Date: Tue, 8 Jul 2014 18:29:46 +0200 +Subject: 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. + +$ ./test-compress-benchmark +XZ: compressed & decompressed 2535300963 bytes in 42.30s (57.15MiB/s), mean compresion 99.95%, skipped 3570 bytes +LZ4: compressed & decompressed 2535303543 bytes in 1.60s (1510.60MiB/s), mean compresion 99.60%, skipped 990 bytes + +(cherry picked from commit 1930eed2a7855d2df06ccf51f9e394428bf547e2) + +Conflicts: + src/journal/compress.c + +(cherry picked from commit 00464ad8a698fe7735737fab57420f8a44013890) +--- + src/journal/compress.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/journal/compress.c b/src/journal/compress.c +index a83dcea..77465c7 100644 +--- a/src/journal/compress.c ++++ b/src/journal/compress.c +@@ -28,6 +28,13 @@ + #include "macro.h" + + bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size) { ++ 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; + +@@ -39,8 +46,11 @@ bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_ + /* Returns false if we couldn't compress the data or the + * compressed result is longer than the original */ + +- ret = lzma_easy_buffer_encode(LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE, NULL, +- src, src_size, dst, &out_pos, src_size); ++ if (src_size < 80) ++ return -ENOBUFS; ++ ++ 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; + diff --git a/debian/patches/journal-compress-simplify-compress_blob.patch b/debian/patches/journal-compress-simplify-compress_blob.patch new file mode 100644 index 000000000..03a4d861e --- /dev/null +++ b/debian/patches/journal-compress-simplify-compress_blob.patch @@ -0,0 +1,61 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Tue, 24 Jun 2014 21:24:09 -0400 +Subject: journal/compress: simplify compress_blob + +(cherry picked from commit 76cc0bf682b944d4cb611f1b37c71fce140f8fe7) +--- + src/journal/compress.c | 28 +++++++--------------------- + 1 file changed, 7 insertions(+), 21 deletions(-) + +diff --git a/src/journal/compress.c b/src/journal/compress.c +index a4427be..cafe8f4 100644 +--- a/src/journal/compress.c ++++ b/src/journal/compress.c +@@ -28,9 +28,8 @@ + #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; + lzma_ret ret; +- bool b = false; ++ size_t out_pos = 0; + + assert(src); + assert(src_size > 0); +@@ -40,30 +39,17 @@ bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_ + /* 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); ++ ret = lzma_easy_buffer_encode(LZMA_PRESET_DEFAULT, LZMA_CHECK_NONE, NULL, ++ src, src_size, dst, &out_pos, *dst_size); + if (ret != LZMA_OK) + 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; +- +- *dst_size = src_size - s.avail_out; +- b = true; +- +-fail: +- lzma_end(&s); ++ if (out_pos == *dst_size) ++ return false; + +- return b; ++ *dst_size = out_pos; ++ return true; + } + + bool uncompress_blob(const void *src, uint64_t src_size, diff --git a/debian/patches/journal-reduce-test-journal-send-timeout-from-10s-to.patch b/debian/patches/journal-reduce-test-journal-send-timeout-from-10s-to.patch new file mode 100644 index 000000000..ef19c91b7 --- /dev/null +++ b/debian/patches/journal-reduce-test-journal-send-timeout-from-10s-to.patch @@ -0,0 +1,27 @@ +From: David Herrmann +Date: Fri, 18 Jul 2014 12:58:00 +0200 +Subject: journal: reduce test-journal-send timeout from 10s to 1s + +The sleep(10) in test-journal-send is quite aggressive. We need it only +for the journal to get our cgroup information. But even that information +is not vital to the test, so a sleep(1) should be just fine. + +(cherry picked from commit 037ee337f0f64bd35ced765f2e2d97f496d4e7c7) +(cherry picked from commit 918af53be96fe4284538ebf8eb4fac1aa8839529) +--- + src/journal/test-journal-send.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/journal/test-journal-send.c b/src/journal/test-journal-send.c +index 3e986ed..45eb327 100644 +--- a/src/journal/test-journal-send.c ++++ b/src/journal/test-journal-send.c +@@ -72,7 +72,7 @@ int main(int argc, char *argv[]) { + "N_CPUS=%li", sysconf(_SC_NPROCESSORS_ONLN), + NULL); + +- sleep(10); ++ sleep(1); + + return 0; + } diff --git a/debian/patches/journald-make-MaxFileSec-really-default-to-1month.patch b/debian/patches/journald-make-MaxFileSec-really-default-to-1month.patch new file mode 100644 index 000000000..401fd743b --- /dev/null +++ b/debian/patches/journald-make-MaxFileSec-really-default-to-1month.patch @@ -0,0 +1,33 @@ +From: =?utf-8?q?Micha=C5=82_Bartoszkiewicz?= +Date: Thu, 26 Jun 2014 22:11:35 +0200 +Subject: 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. + +(cherry picked from commit e150e82097211f09b911c7784a89ef9efed713ca) +--- + src/journal/journald-server.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c +index 0b31d10..1e93670 100644 +--- a/src/journal/journald-server.c ++++ b/src/journal/journald-server.c +@@ -67,6 +67,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) + +@@ -1486,6 +1487,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/debian/patches/logind-revert-lazy-session-activation.patch b/debian/patches/login-revert-lazy-session-activation-on-non-VT-seats.patch similarity index 78% rename from debian/patches/logind-revert-lazy-session-activation.patch rename to debian/patches/login-revert-lazy-session-activation-on-non-VT-seats.patch index 5b966fd08..058148b53 100644 --- a/debian/patches/logind-revert-lazy-session-activation.patch +++ b/debian/patches/login-revert-lazy-session-activation-on-non-VT-seats.patch @@ -1,4 +1,3 @@ -From 3fdb2494c1e24c0a020f5b54022d2c751fd26f50 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Thu, 28 Nov 2013 10:52:18 +0100 Subject: login: revert lazy session-activation on non-VT seats @@ -11,12 +10,17 @@ 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. +(cherry picked from commit 3fdb2494c1e24c0a020f5b54022d2c751fd26f50) +--- + src/login/logind-seat.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c -index b30c4ce..ca0e8d7 100644 +index b581925..030df40 100644 --- a/src/login/logind-seat.c +++ b/src/login/logind-seat.c -@@ -413,8 +413,8 @@ int seat_attach_session(Seat *s, Session *session) { - seat_send_changed(s, "Sessions", NULL); +@@ -419,8 +419,8 @@ int seat_attach_session(Seat *s, Session *session) { + 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. */ @@ -26,6 +30,3 @@ index b30c4ce..ca0e8d7 100644 seat_set_active(s, session); return 0; --- -cgit v0.10.2 - diff --git a/debian/patches/machine-don-t-return-uninitialized-variable.patch b/debian/patches/machine-don-t-return-uninitialized-variable.patch new file mode 100644 index 000000000..50a7d812e --- /dev/null +++ b/debian/patches/machine-don-t-return-uninitialized-variable.patch @@ -0,0 +1,25 @@ +From: Tom Gundersen +Date: Sun, 6 Jul 2014 14:12:28 +0200 +Subject: machine: don't return uninitialized variable + +Repotred by Ronny Chevalier + +(cherry picked from commit f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3) +(cherry picked from commit 6e07a1c070376b7c2bcc8d57e8adbc8f6f78e8d5) +--- + src/machine/machine.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/machine/machine.c b/src/machine/machine.c +index 3df9c45..56986c8 100644 +--- a/src/machine/machine.c ++++ b/src/machine/machine.c +@@ -342,7 +342,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) { diff --git a/debian/patches/man-also-describe-an-udev-rule-for-bridge-sysctl.patch b/debian/patches/man-also-describe-an-udev-rule-for-bridge-sysctl.patch new file mode 100644 index 000000000..412ad5e54 --- /dev/null +++ b/debian/patches/man-also-describe-an-udev-rule-for-bridge-sysctl.patch @@ -0,0 +1,39 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Thu, 19 Jun 2014 21:13:56 -0400 +Subject: man: also describe an udev rule for bridge sysctl + +(cherry picked from commit 71418295125c542d3edd1e7251bb0701ef1af89b) +--- + man/sysctl.d.xml | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml +index 78c4e80..ed9e997 100644 +--- a/man/sysctl.d.xml ++++ b/man/sysctl.d.xml +@@ -154,7 +154,24 @@ + + + +- Disable packet filter on the bridge ++ Disable packet filter on the bridge (method one) ++ /etc/udev/rules.d/99-bridge.conf: ++ ++ ++ ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge" ++ ++ ++ /etc/sysctl.d/bridge.conf: ++ ++ ++ net.bridge.bridge-nf-call-ip6tables = 0 ++net.bridge.bridge-nf-call-iptables = 0 ++net.bridge.bridge-nf-call-arptables = 0 ++ ++ ++ ++ ++ Disable packet filter on the bridge (method two) + /etc/modules-load.d/bridge.conf: + + diff --git a/debian/patches/man-document-statically-loading-modules-for-sysctl-s.patch b/debian/patches/man-document-statically-loading-modules-for-sysctl-s.patch new file mode 100644 index 000000000..7349eba73 --- /dev/null +++ b/debian/patches/man-document-statically-loading-modules-for-sysctl-s.patch @@ -0,0 +1,127 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Thu, 19 Jun 2014 20:43:56 -0400 +Subject: man: document statically loading modules for sysctl settings + +https://bugzilla.redhat.com/show_bug.cgi?id=1022977 +https://bugzilla.novell.com/show_bug.cgi?id=725412 +(cherry picked from commit 7284335adbb8cb2bc9c11f9e102906da1bf71145) +--- + man/sysctl.d.xml | 79 +++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 56 insertions(+), 23 deletions(-) + +diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml +index db53b49..78c4e80 100644 +--- a/man/sysctl.d.xml ++++ b/man/sysctl.d.xml +@@ -71,24 +71,6 @@ + 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. + Files in /etc/ override files +@@ -110,6 +92,24 @@ + number and a dash, to simplify the ordering of the + files. + ++ 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. ++ ++ + If the administrator wants to disable a + configuration file supplied by the vendor, the + recommended way is to place a symlink to +@@ -125,16 +125,48 @@ + specifically, + net.ipv4.conf.*, + net.ipv6.conf.*, +- net.ipv4.neigh.* and net.ipv6.neigh.*) ++ net.ipv4.neigh.* and net.ipv6.neigh.*). ++ ++ Many sysctl parameters only become available ++ when certain kernel modules are loaded. Modules are ++ usually loaded on demand, e.g. when certain hardware ++ is plugged in or network brought up. This means that ++ systemd-sysctl.service8 which runs ++ during early boot will not configure such parameters ++ if they become available after it has run. To ++ set such parameters, it is recommended to add ++ an udev7 rule to set those parameters when they become ++ available. Alternatively, a slightly simpler and ++ less efficient option is to add the module to ++ modules-load.d5, causing it to be loaded statically ++ before sysctl settings are applied (see ++ example below). + + + +- Example ++ Examples ++ ++ Set kernel YP domain name ++ /etc/sysctl.d/domain-name.conf: ++ ++ ++ kernel.domainname=example.com ++ ++ + +- /etc/sysctl.d/domain-name.conf example: ++ Disable packet filter on the bridge ++ /etc/modules-load.d/bridge.conf: ++ ++ ++ bridge ++ ++ /etc/sysctl.d/bridge.conf: ++ + +- # Set kernel YP domain name +-kernel.domainname=example.com ++ net.bridge.bridge-nf-call-ip6tables = 0 ++net.bridge.bridge-nf-call-iptables = 0 ++net.bridge.bridge-nf-call-arptables = 0 ++ + + + +@@ -146,6 +178,7 @@ kernel.domainname=example.com + systemd-delta1, + sysctl8, + sysctl.conf5 ++ modprobe8 + + + diff --git a/debian/patches/man-fix-path-in-crypttab-5.patch b/debian/patches/man-fix-path-in-crypttab-5.patch new file mode 100644 index 000000000..e9a950ee1 --- /dev/null +++ b/debian/patches/man-fix-path-in-crypttab-5.patch @@ -0,0 +1,23 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Mon, 23 Jun 2014 23:07:53 -0400 +Subject: man: fix path in crypttab(5) + +https://bugs.freedesktop.org/show_bug.cgi?id=75816 +(cherry picked from commit 9fcdf32294e66f91d2a177f73a77049832768311) +--- + man/crypttab.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/crypttab.xml b/man/crypttab.xml +index 4b6d12e..af41ef4 100644 +--- a/man/crypttab.xml ++++ b/man/crypttab.xml +@@ -376,7 +376,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 + + + diff --git a/debian/patches/man-sd_journal_get_data-fix-variable-naming-in-examp.patch b/debian/patches/man-sd_journal_get_data-fix-variable-naming-in-examp.patch new file mode 100644 index 000000000..70eb5a9e6 --- /dev/null +++ b/debian/patches/man-sd_journal_get_data-fix-variable-naming-in-examp.patch @@ -0,0 +1,22 @@ +From: Christian Hesse +Date: Tue, 1 Jul 2014 10:22:51 +0200 +Subject: man/sd_journal_get_data: fix variable naming in example + +(cherry picked from commit 02ea24ca2a0aac854c4e9e7d712f6464c8b29e4a) +--- + man/sd_journal_get_data.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/sd_journal_get_data.xml b/man/sd_journal_get_data.xml +index 6ed52b5..7f90fc3 100644 +--- a/man/sd_journal_get_data.xml ++++ b/man/sd_journal_get_data.xml +@@ -225,7 +225,7 @@ + ... + int print_fields(sd_journal *j) { + const void *data; +- size_t l; ++ size_t length; + SD_JOURNAL_FOREACH_DATA(j, data, length) + printf("%.*s\n", (int) length, data); + } diff --git a/debian/patches/man-sd_journal_next-fix-argument-in-example.patch b/debian/patches/man-sd_journal_next-fix-argument-in-example.patch new file mode 100644 index 000000000..d151f7bc2 --- /dev/null +++ b/debian/patches/man-sd_journal_next-fix-argument-in-example.patch @@ -0,0 +1,32 @@ +From: Christian Hesse +Date: Tue, 1 Jul 2014 10:22:50 +0200 +Subject: man/sd_journal_next: fix argument in example +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +The example does not compile, it fails with: + +error: passing argument 3 of ‘sd_journal_get_data’ from incompatible +pointer type + +Cast to (const void **) to avoid this. + +(cherry picked from commit 8959ae0d4cc7921293a21182693b7d953f6cce9b) +--- + man/sd_journal_next.xml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/sd_journal_next.xml b/man/sd_journal_next.xml +index 1409b0d..750282c 100644 +--- a/man/sd_journal_next.xml ++++ b/man/sd_journal_next.xml +@@ -183,7 +183,7 @@ int main(int argc, char *argv[]) { + const char *d; + size_t l; + +- r = sd_journal_get_data(j, "MESSAGE", &d, &l); ++ r = sd_journal_get_data(j, "MESSAGE", (const void **)&d, &l); + if (r < 0) { + fprintf(stderr, "Failed to read message field: %s\n", strerror(-r)); + continue; diff --git a/debian/patches/more-cd-aliases.patch b/debian/patches/more-cd-aliases.patch index faf01894e..ee8d7180c 100644 --- a/debian/patches/more-cd-aliases.patch +++ b/debian/patches/more-cd-aliases.patch @@ -4,14 +4,14 @@ Subject: more cd aliases Add more aliases for CD/DVD devices. --- - rules/60-cdrom_id.rules | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) + rules/60-cdrom_id.rules | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) -Index: systemd/rules/60-cdrom_id.rules -=================================================================== ---- systemd.orig/rules/60-cdrom_id.rules -+++ systemd/rules/60-cdrom_id.rules -@@ -15,6 +15,12 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr +diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules +index 6eaf76a..4dccfc6 100644 +--- a/rules/60-cdrom_id.rules ++++ b/rules/60-cdrom_id.rules +@@ -15,6 +15,12 @@ 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/debian/patches/rules-consistently-use-instead-of.patch b/debian/patches/rules-consistently-use-instead-of.patch new file mode 100644 index 000000000..61919c354 --- /dev/null +++ b/debian/patches/rules-consistently-use-instead-of.patch @@ -0,0 +1,67 @@ +From: Kay Sievers +Date: Tue, 15 Jul 2014 02:04:47 +0200 +Subject: rules: consistently use "?*" instead of "*?" + +(cherry picked from commit 64dfe7b74446bd56e2d0e1588f900372ac13ae42) +(cherry picked from commit 9221fcfe485a71dd206691f25fc7db3b02076bf3) +--- + rules/99-systemd.rules.in | 2 +- + src/login/70-uaccess.rules | 12 ++++++------ + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in +index 713e052..ed0df75 100644 +--- a/rules/99-systemd.rules.in ++++ b/rules/99-systemd.rules.in +@@ -43,7 +43,7 @@ SUBSYSTEM=="net", KERNEL!="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsys + SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/bluetooth/devices/%k" + + SUBSYSTEM=="bluetooth", TAG+="systemd", ENV{SYSTEMD_WANTS}+="bluetooth.target" +-ENV{ID_SMARTCARD_READER}=="*?", TAG+="systemd", ENV{SYSTEMD_WANTS}+="smartcard.target" ++ENV{ID_SMARTCARD_READER}=="?*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="smartcard.target" + SUBSYSTEM=="sound", KERNEL=="card*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sound.target" + + SUBSYSTEM=="printer", TAG+="systemd", ENV{SYSTEMD_WANTS}+="printer.target" +diff --git a/src/login/70-uaccess.rules b/src/login/70-uaccess.rules +index 01484c9..c4fc956 100644 +--- a/src/login/70-uaccess.rules ++++ b/src/login/70-uaccess.rules +@@ -12,7 +12,7 @@ ENV{MAJOR}=="", GOTO="uaccess_end" + SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:060101:*", TAG+="uaccess" + + # Digicams with proprietary protocol +-ENV{ID_GPHOTO2}=="*?", TAG+="uaccess" ++ENV{ID_GPHOTO2}=="?*", TAG+="uaccess" + + # SCSI and USB scanners + ENV{libsane_matched}=="yes", TAG+="uaccess" +@@ -49,13 +49,13 @@ SUBSYSTEM=="drm", KERNEL=="card*", TAG+="uaccess" + SUBSYSTEM=="misc", KERNEL=="kvm", TAG+="uaccess" + + # smart-card readers +-ENV{ID_SMARTCARD_READER}=="*?", TAG+="uaccess" ++ENV{ID_SMARTCARD_READER}=="?*", TAG+="uaccess" + + # (USB) authentication devices +-ENV{ID_SECURITY_TOKEN}=="*?", TAG+="uaccess" ++ENV{ID_SECURITY_TOKEN}=="?*", TAG+="uaccess" + + # PDA devices +-ENV{ID_PDA}=="*?", TAG+="uaccess" ++ENV{ID_PDA}=="?*", TAG+="uaccess" + + # Programmable remote control + ENV{ID_REMOTE_CONTROL}=="1", TAG+="uaccess" +@@ -64,10 +64,10 @@ ENV{ID_REMOTE_CONTROL}=="1", TAG+="uaccess" + SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}=="?*", TAG+="uaccess" + + # color measurement devices +-ENV{COLOR_MEASUREMENT_DEVICE}=="*?", TAG+="uaccess" ++ENV{COLOR_MEASUREMENT_DEVICE}=="?*", TAG+="uaccess" + + # DDC/CI device, usually high-end monitors such as the DreamColor +-ENV{DDC_DEVICE}=="*?", TAG+="uaccess" ++ENV{DDC_DEVICE}=="?*", TAG+="uaccess" + + # media player raw devices (for user-mode drivers, Android SDK, etc.) + SUBSYSTEM=="usb", ENV{ID_MEDIA_PLAYER}=="?*", TAG+="uaccess" diff --git a/debian/patches/rules-don-t-enable-usb-pm-for-Avocent-devices.patch b/debian/patches/rules-don-t-enable-usb-pm-for-Avocent-devices.patch new file mode 100644 index 000000000..915060755 --- /dev/null +++ b/debian/patches/rules-don-t-enable-usb-pm-for-Avocent-devices.patch @@ -0,0 +1,27 @@ +From: Tom Hirst +Date: Wed, 25 Jun 2014 11:57:11 +0000 +Subject: rules: don't enable usb pm for Avocent devices + +The Avocent KVM over IP devices doesn't work correctly with USB power +management enabled. + +(cherry picked from commit 52fb538361053f8c4abce0e40cd0bae3d28ceb16) +--- + rules/42-usb-hid-pm.rules | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/rules/42-usb-hid-pm.rules b/rules/42-usb-hid-pm.rules +index 3fd6e8a..483a781 100644 +--- a/rules/42-usb-hid-pm.rules ++++ b/rules/42-usb-hid-pm.rules +@@ -11,10 +11,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Mouse", ATTR{serial}== + 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" + +-# 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" + diff --git a/debian/patches/rules-uaccess-add-ID_SOFTWARE_RADIO.patch b/debian/patches/rules-uaccess-add-ID_SOFTWARE_RADIO.patch new file mode 100644 index 000000000..b31e6d6a5 --- /dev/null +++ b/debian/patches/rules-uaccess-add-ID_SOFTWARE_RADIO.patch @@ -0,0 +1,44 @@ +From: Kay Sievers +Date: Tue, 15 Jul 2014 17:35:53 +0200 +Subject: 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 + +(cherry picked from commit 30632d97d9d68c8202e562f34afae8f8d6e9c377) +(cherry picked from commit 4e0d085ff52a7d7858a30c651e37b18f3e92618b) +--- + src/login/70-uaccess.rules | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/login/70-uaccess.rules b/src/login/70-uaccess.rules +index c4fc956..6bbd182 100644 +--- a/src/login/70-uaccess.rules ++++ b/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" diff --git a/debian/patches/series b/debian/patches/series index b625ee3b4..f64038090 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -477,10 +477,53 @@ shared-fix-search_and_fopen-with-alternate-roots.patch Reset-signal-mask-on-re-exec-to-init.patch core-clean-up-signal-reset-logic-when-reexec.patch util-treat-fuse.sshfs-as-a-network-filesystem.patch +units-systemd-sysctl.service.in-run-after-load-modul.patch +man-document-statically-loading-modules-for-sysctl-s.patch +man-also-describe-an-udev-rule-for-bridge-sysctl.patch +util-do-not-strip-dev-prefix-twice.patch +core-transaction-avoid-misleading-error-message-when.patch +core-snapshot-log-info-when-snapshots-are-created-an.patch +vconsole-also-copy-character-maps-not-just-fonts-fro.patch +core-You-can-not-put-the-cached-result-of-use_smack-.patch +cryptsetup-don-t-add-unit-dependency-on-dev-null-dev.patch +man-fix-path-in-crypttab-5.patch +core-transaction-fix-cycle-break-attempts-outside-tr.patch +journald-make-MaxFileSec-really-default-to-1month.patch +rules-don-t-enable-usb-pm-for-Avocent-devices.patch +units-remove-RefuseManualStart-from-units-which-are-.patch +units-skip-mounting-tmp-if-it-is-a-symlink.patch +man-sd_journal_next-fix-argument-in-example.patch +man-sd_journal_get_data-fix-variable-naming-in-examp.patch +hwdb-Update-database-of-Bluetooth-company-identi-495.patch +hwdb-update-496.patch +units-conditionalize-static-device-node-logic-on-CAP.patch +units-conditionalize-configfs-and-debugfs-with-CAP_S.patch +machine-don-t-return-uninitialized-variable.patch +vconsole-setup-run-setfont-before-loadkeys.patch +vconsole-setup-fix-inverted-error-messages.patch +util-consider-0x7F-a-control-chracter-which-it-is-DE.patch +service-flush-status-text-and-errno-values-each-time.patch +accelerometer-Don-t-wait-for-new-data-from-the-senso.patch +journal-compress-simplify-compress_blob.patch +journal-compress-add-stream-compression-decompressio.patch +journal-compress-improve-xz-compression-performance.patch +hostnamed-add-a-new-chassis-type-for-watches.patch +hostnamed-update-documentation-with-new-watch-chassi.patch +units-make-ExecStopPost-action-part-of-ExecStart.patch +shell-completion-man-beef-up-chassis-completions-and.patch +rules-consistently-use-instead-of.patch +rules-uaccess-add-ID_SOFTWARE_RADIO.patch +journal-allow-files-with-no-data-whatsoever.patch +units-serial-getty-.service-use-the-default-RestartS.patch +build-sys-don-t-move-libgudev-to-lib.patch +core-nicer-message-when-inotify-watches-are-exhauste.patch +journal-reduce-test-journal-send-timeout-from-10s-to.patch +socket-add-SocketUser-and-SocketGroup-for-chown-ing-.patch +analyze-fix-crash-on-invalid-commandline.patch -## Cherry-picked from trunk +## Cherry-picked from trunk: build-sys-use-glibc-s-xattr-support-instead-of-requi.patch -logind-revert-lazy-session-activation.patch +login-revert-lazy-session-activation-on-non-VT-seats.patch ## Debian specific patches: Add-back-support-for-Debian-specific-config-files.patch @@ -505,7 +548,6 @@ Revert-udev-network-device-renaming-immediately-give.patch udev-hwdb-Store-binary-database-in-libdir-not-in-etc.patch Make-99-systemd.rules-check-for-run-systemd-systemd-.patch Make-net.ifnames-opt-in-instead-of-opt-out.patch -Don-t-move-libgudev-to-lib.patch Use-different-default-paths-for-various-binaries.patch Use-comment-systemd.-syntax-in-systemd.mount-man-pag.patch Avoid-reloading-services-when-shutting-down.patch @@ -524,7 +566,6 @@ more-cd-aliases.patch Check-for-kmod-binary.patch Adjust-systemd-user-pam-config-file-for-Debian.patch Add-run-initctl-support-to-SysV-compat-tools.patch -core-transaction-fix-cycle-break-attempts-outside-tr.patch tmpfiles-don-t-allow-read-access-to-journal-files-to.patch Map-rcS.d-init-script-dependencies-to-their-systemd-.patch Add-support-for-TuxOnIce-hibernation.patch diff --git a/debian/patches/service-flush-status-text-and-errno-values-each-time.patch b/debian/patches/service-flush-status-text-and-errno-values-each-time.patch new file mode 100644 index 000000000..4816fb6f7 --- /dev/null +++ b/debian/patches/service-flush-status-text-and-errno-values-each-time.patch @@ -0,0 +1,27 @@ +From: Lennart Poettering +Date: Mon, 7 Jul 2014 17:33:46 +0200 +Subject: service: flush status text and errno values each time a service is + started + +We shouldn't show status texts from previous service starts + +(cherry picked from commit 8cfdb077b8e3da1c47fc1d735d051f21f33144c1) +(cherry picked from commit 853896f09d35f8c2db3bf25376d1c3ab240287ed) +--- + src/core/service.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/core/service.c b/src/core/service.c +index 9fd58fa..c616fbe 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2575,6 +2575,9 @@ static int service_start(Unit *u) { + s->main_pid_alien = false; + s->forbid_restart = false; + ++ free(s->status_text); ++ s->status_text = NULL; ++ + service_enter_start_pre(s); + return 0; + } diff --git a/debian/patches/shell-completion-man-beef-up-chassis-completions-and.patch b/debian/patches/shell-completion-man-beef-up-chassis-completions-and.patch new file mode 100644 index 000000000..455a9a01e --- /dev/null +++ b/debian/patches/shell-completion-man-beef-up-chassis-completions-and.patch @@ -0,0 +1,223 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Fri, 11 Jul 2014 08:25:20 -0400 +Subject: shell-completion,man: beef up chassis completions and description + +Parameters to hostnamectl command are not optional and should not be marked +as such in the man page. + +(cherry picked from commit 1ed774956406941d4812a3fb4493d2915f130f12) +(cherry picked from commit ba838f7f9b3de1777f3528c0fe211f9bedbd2a8b) +--- + man/hostnamectl.xml | 73 +++++++++++++++++++++------------------ + shell-completion/bash/hostnamectl | 3 ++ + shell-completion/zsh/_hostnamectl | 32 +++++++++++++++-- + shell-completion/zsh/_localectl | 4 +-- + 4 files changed, 75 insertions(+), 37 deletions(-) + +diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml +index f3038b3..b4aa43d 100644 +--- a/man/hostnamectl.xml ++++ b/man/hostnamectl.xml +@@ -172,13 +172,14 @@ + + + +- set-hostname [NAME] ++ set-hostname NAME + + Set the system +- hostname. By default, this will alter +- the pretty, the static, and the +- transient hostname alike; however, if +- one or more of ++ hostname to ++ NAME. By ++ default, this will alter the pretty, ++ the static, and the transient hostname ++ alike; however, if one or more of + , + , + are used, +@@ -199,55 +200,61 @@ + the hostname string is not done if + only the transient and/or static host + names are set, and the pretty host +- name is left untouched. Pass the empty +- string as the +- hostname to reset the selected +- hostnames to their default (usually ++ name is left untouched. ++ ++ Pass the empty string ++ as the hostname to ++ reset the selected hostnames to their ++ default (usually + localhost). + + + +- set-icon-name [NAME] ++ set-icon-name NAME + + Set the system icon +- name. The icon name is used by some +- graphical applications to visualize +- this host. The icon name should follow +- the NAME. The ++ icon name is used by some graphical ++ applications to visualize this host. ++ The icon name should follow the Icon +- Naming Specification. Pass an +- empty string to this operation to +- reset the icon name to the default +- value, which is determined from chassis +- type (see below) and possibly other ++ Naming Specification. ++ ++ Pass an empty string to reset ++ the icon name to the default value, ++ which is determined from chassis type ++ (see below) and possibly other + parameters. + + + +- set-chassis [TYPE] ++ set-chassis TYPE + +- Set the chassis +- type. The chassis type is used by some ++ Set the chassis type ++ to TYPE. ++ The chassis type is used by some + graphical applications to visualize +- the host or alter user +- interaction. Currently, the following +- chassis types are defined: ++ the host or alter user interaction. ++ Currently, the following chassis types ++ are defined: + desktop, + laptop, + server, + tablet, +- handset, +- watch, as well as ++ handset, ++ watch, as well as + the special chassis types + vm and + container for + virtualized systems that lack an +- immediate physical chassis. Pass an +- empty string to this operation to +- reset the chassis type to the default +- value which is determined from the +- firmware and possibly other +- parameters. ++ immediate physical chassis. ++ ++ Pass an empty string to reset ++ the chassis type to the default value ++ which is determined from the firmware ++ and possibly other parameters. ++ + + + +diff --git a/shell-completion/bash/hostnamectl b/shell-completion/bash/hostnamectl +index 9c75da9..22f8f06 100644 +--- a/shell-completion/bash/hostnamectl ++++ b/shell-completion/bash/hostnamectl +@@ -39,6 +39,7 @@ _hostnamectl() { + [STANDALONE]='status' + [ICONS]='set-icon-name' + [NAME]='set-hostname' ++ [CHASSIS]='set-chassis' + ) + + for ((i=0; i < COMP_CWORD; i++)); do +@@ -50,6 +51,8 @@ _hostnamectl() { + + if [[ -z $verb ]]; then + comps=${VERBS[*]} ++ elif __contains_word "$verb" ${VERBS[CHASSIS]}; then ++ comps='desktop laptop server tablet handset watch vm container' + elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[ICONS]} ${VERBS[NAME]}; then + comps='' + fi +diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl +index 45b9597..52945d8 100644 +--- a/shell-completion/zsh/_hostnamectl ++++ b/shell-completion/zsh/_hostnamectl +@@ -1,5 +1,30 @@ + #compdef hostnamectl + ++_hostnamectl_set-hostname() { ++ if (( CURRENT <= 3 )); then ++ _message "new hostname" ++ else ++ _message "no more options" ++ fi ++} ++ ++_hostnamectl_set-icon-name() { ++ if (( CURRENT <= 3 )); then ++ _message "new icon name" ++ else ++ _message "no more options" ++ fi ++} ++ ++_hostnamectl_set-chassis() { ++ if (( CURRENT <= 3 )); then ++ _chassis=( desktop laptop server tablet handset watch vm container ) ++ _describe chassis _chassis ++ else ++ _message "no more options" ++ fi ++} ++ + _hostnamectl_command() { + local -a _hostnamectl_cmds + _hostnamectl_cmds=( +@@ -13,8 +38,11 @@ _hostnamectl_command() { + local curcontext="$curcontext" + cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}" + if (( $#cmd )); then +- [[ $cmd == status ]] && msg="no options" || msg="options for $cmd" +- _message "$msg" ++ if [[ $cmd == status ]]; then ++ _message "no options" ++ else ++ _hostnamectl_$cmd ++ fi + else + _message "unknown hostnamectl command: $words[1]" + fi +diff --git a/shell-completion/zsh/_localectl b/shell-completion/zsh/_localectl +index c04f4f3..7756eb9 100644 +--- a/shell-completion/zsh/_localectl ++++ b/shell-completion/zsh/_localectl +@@ -22,8 +22,8 @@ _localectl_set-locale() { + + _localectl_set-keymap() { + local -a _keymaps +- _keymaps=( ${(f)"$(_call_program locales "$service" list-keymaps)"} ) + if (( CURRENT <= 3 )); then ++ _keymaps=( ${(f)"$(_call_program locales "$service" list-keymaps)"} ) + _describe keymaps _keymaps + else + _message "no more options" +@@ -73,7 +73,7 @@ _localectl_command() { + if (( $+functions[_localectl_$cmd] )); then + _localectl_$cmd + else +- _message "no more options" ++ _message "unknown localectl command: $words[1]" + fi + fi + } diff --git a/debian/patches/socket-add-SocketUser-and-SocketGroup-for-chown-ing-.patch b/debian/patches/socket-add-SocketUser-and-SocketGroup-for-chown-ing-.patch new file mode 100644 index 000000000..ecd568f2a --- /dev/null +++ b/debian/patches/socket-add-SocketUser-and-SocketGroup-for-chown-ing-.patch @@ -0,0 +1,583 @@ +From: Lennart Poettering +Date: Thu, 5 Jun 2014 09:55:53 +0200 +Subject: socket: add SocketUser= and SocketGroup= for chown()ing sockets in + the file system + +This is relatively complex, as we cannot invoke NSS from PID 1, and thus +need to fork a helper process temporarily. + +(cherry picked from commit 3900e5fdff688dc3c273f177d9d913b7389d5561) + +Conflicts: + src/core/dbus-socket.c + src/core/socket.c + src/shared/exit-status.c + src/shared/exit-status.h +--- + man/systemd.socket.xml | 38 ++++-- + src/core/dbus-socket.c | 4 +- + src/core/load-fragment-gperf.gperf.m4 | 4 +- + src/core/socket.c | 224 +++++++++++++++++++++++++++------- + src/core/socket.h | 4 + + src/shared/exit-status.c | 3 + + src/shared/exit-status.h | 3 +- + 7 files changed, 222 insertions(+), 58 deletions(-) + +diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml +index 67267b2..d0c2595 100644 +--- a/man/systemd.socket.xml ++++ b/man/systemd.socket.xml +@@ -372,16 +372,21 @@ + + + +- DirectoryMode= +- If listening on a file +- system socket or FIFO, the parent +- directories are automatically created +- if needed. This option specifies the +- file system access mode used when +- creating these directories. Takes an +- access mode in octal +- notation. Defaults to +- 0755. ++ SocketUser= ++ SocketGroup= ++ ++ Takes a UNIX ++ user/group name. When specified ++ all AF_UNIX sockets and FIFO nodes in ++ the file system are owned by the ++ specified user and group. If unset ++ (the default), the nodes are owned by ++ the root user/group (if run in system ++ context) or the invoking user/group ++ (if run in user context). If only a ++ user is specified but no group, then ++ the group is derived from the user's ++ default group. + + + +@@ -396,6 +401,19 @@ + + + ++ DirectoryMode= ++ If listening on a file ++ system socket or FIFO, the parent ++ directories are automatically created ++ if needed. This option specifies the ++ file system access mode used when ++ creating these directories. Takes an ++ access mode in octal ++ notation. Defaults to ++ 0755. ++ ++ ++ + Accept= + Takes a boolean + argument. If true, a service instance +diff --git a/src/core/dbus-socket.c b/src/core/dbus-socket.c +index 30c4b63..d6743da 100644 +--- a/src/core/dbus-socket.c ++++ b/src/core/dbus-socket.c +@@ -172,8 +172,10 @@ static const BusProperty bus_socket_properties[] = { + BUS_EXEC_COMMAND_PROPERTY("ExecStopPost", offsetof(Socket, exec_command[SOCKET_EXEC_STOP_POST]), true ), + { "ControlPID", bus_property_append_pid, "u", offsetof(Socket, control_pid) }, + { "BindToDevice", bus_property_append_string, "s", offsetof(Socket, bind_to_device), true }, +- { "DirectoryMode", bus_property_append_mode, "u", offsetof(Socket, directory_mode) }, ++ { "SocketUser", bus_property_append_string, "s", offsetof(Socket, user), true }, ++ { "SocketGroup", bus_property_append_string, "s", offsetof(Socket, group), true }, + { "SocketMode", bus_property_append_mode, "u", offsetof(Socket, socket_mode) }, ++ { "DirectoryMode", bus_property_append_mode, "u", offsetof(Socket, directory_mode) }, + { "Accept", bus_property_append_bool, "b", offsetof(Socket, accept) }, + { "KeepAlive", bus_property_append_bool, "b", offsetof(Socket, keep_alive) }, + { "Priority", bus_property_append_int, "i", offsetof(Socket, priority) }, +diff --git a/src/core/load-fragment-gperf.gperf.m4 b/src/core/load-fragment-gperf.gperf.m4 +index d65bcc1..0991cb9 100644 +--- a/src/core/load-fragment-gperf.gperf.m4 ++++ b/src/core/load-fragment-gperf.gperf.m4 +@@ -193,8 +193,10 @@ Socket.ExecStartPost, config_parse_exec, SOCKET_EXEC + Socket.ExecStopPre, config_parse_exec, SOCKET_EXEC_STOP_PRE, offsetof(Socket, exec_command) + Socket.ExecStopPost, config_parse_exec, SOCKET_EXEC_STOP_POST, offsetof(Socket, exec_command) + Socket.TimeoutSec, config_parse_sec, 0, offsetof(Socket, timeout_usec) +-Socket.DirectoryMode, config_parse_mode, 0, offsetof(Socket, directory_mode) ++Socket.SocketUser, config_parse_unit_string_printf, 0, offsetof(Socket, user) ++Socket.SocketGroup, config_parse_unit_string_printf, 0, offsetof(Socket, group) + Socket.SocketMode, config_parse_mode, 0, offsetof(Socket, socket_mode) ++Socket.DirectoryMode, config_parse_mode, 0, offsetof(Socket, directory_mode) + Socket.Accept, config_parse_bool, 0, offsetof(Socket, accept) + Socket.MaxConnections, config_parse_unsigned, 0, offsetof(Socket, max_connections) + Socket.KeepAlive, config_parse_bool, 0, offsetof(Socket, keep_alive) +diff --git a/src/core/socket.c b/src/core/socket.c +index 8e02c03..1bf1f05 100644 +--- a/src/core/socket.c ++++ b/src/core/socket.c +@@ -54,6 +54,7 @@ + static const UnitActiveState state_translation_table[_SOCKET_STATE_MAX] = { + [SOCKET_DEAD] = UNIT_INACTIVE, + [SOCKET_START_PRE] = UNIT_ACTIVATING, ++ [SOCKET_START_CHOWN] = UNIT_ACTIVATING, + [SOCKET_START_POST] = UNIT_ACTIVATING, + [SOCKET_LISTENING] = UNIT_ACTIVE, + [SOCKET_RUNNING] = UNIT_ACTIVE, +@@ -149,6 +150,9 @@ static void socket_done(Unit *u) { + free(s->smack_ip_out); + + unit_unwatch_timer(u, &s->timer_watch); ++ ++ free(s->user); ++ free(s->group); + } + + static int socket_instantiate_service(Socket *s) { +@@ -527,6 +531,13 @@ static void socket_dump(Unit *u, FILE *f, const char *prefix) { + "%sSmackLabelIPOut: %s\n", + prefix, s->smack_ip_out); + ++ if (!isempty(s->user) || !isempty(s->group)) ++ fprintf(f, ++ "%sOwnerUser: %s\n" ++ "%sOwnerGroup: %s\n", ++ prefix, strna(s->user), ++ prefix, strna(s->group)); ++ + LIST_FOREACH(port, p, s->ports) { + + if (p->type == SOCKET_SOCKET) { +@@ -1093,6 +1104,7 @@ static void socket_set_state(Socket *s, SocketState state) { + s->state = state; + + if (state != SOCKET_START_PRE && ++ state != SOCKET_START_CHOWN && + state != SOCKET_START_POST && + state != SOCKET_STOP_PRE && + state != SOCKET_STOP_PRE_SIGTERM && +@@ -1109,7 +1121,8 @@ static void socket_set_state(Socket *s, SocketState state) { + if (state != SOCKET_LISTENING) + socket_unwatch_fds(s); + +- if (state != SOCKET_START_POST && ++ if (state != SOCKET_START_CHOWN && ++ state != SOCKET_START_POST && + state != SOCKET_LISTENING && + state != SOCKET_RUNNING && + state != SOCKET_STOP_PRE && +@@ -1136,6 +1149,7 @@ static int socket_coldplug(Unit *u) { + if (s->deserialized_state != s->state) { + + if (s->deserialized_state == SOCKET_START_PRE || ++ s->deserialized_state == SOCKET_START_CHOWN || + s->deserialized_state == SOCKET_START_POST || + s->deserialized_state == SOCKET_STOP_PRE || + s->deserialized_state == SOCKET_STOP_PRE_SIGTERM || +@@ -1156,7 +1170,8 @@ static int socket_coldplug(Unit *u) { + return r; + } + +- if (s->deserialized_state == SOCKET_START_POST || ++ if (s->deserialized_state == SOCKET_START_CHOWN || ++ s->deserialized_state == SOCKET_START_POST || + s->deserialized_state == SOCKET_LISTENING || + s->deserialized_state == SOCKET_RUNNING || + s->deserialized_state == SOCKET_STOP_PRE || +@@ -1176,9 +1191,9 @@ static int socket_coldplug(Unit *u) { + } + + static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) { ++ _cleanup_free_ char **argv = NULL; + pid_t pid; + int r; +- char **argv; + + assert(s); + assert(c); +@@ -1211,21 +1226,95 @@ static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) { + if (r < 0) + goto fail; + +- strv_free(argv); ++ r = unit_watch_pid(UNIT(s), pid); + if (r < 0) +- goto fail; +- +- if ((r = unit_watch_pid(UNIT(s), pid)) < 0) + /* FIXME: we need to do something here */ + goto fail; + + *_pid = pid; +- + return 0; + + fail: + unit_unwatch_timer(UNIT(s), &s->timer_watch); ++ return r; ++} ++ ++static int socket_chown(Socket *s, pid_t *_pid) { ++ pid_t pid; ++ int r; ++ ++ /* We have to resolve the user names out-of-process, hence ++ * let's fork here. It's messy, but well, what can we do? */ ++ ++ pid = fork(); ++ if (pid < 0) ++ return -errno; ++ ++ if (pid == 0) { ++ SocketPort *p; ++ uid_t uid = (uid_t) -1; ++ gid_t gid = (gid_t) -1; ++ int ret; ++ ++ default_signals(SIGNALS_CRASH_HANDLER, SIGNALS_IGNORE, -1); ++ ignore_signals(SIGPIPE, -1); ++ log_forget_fds(); ++ ++ if (!isempty(s->user)) { ++ const char *user = s->user; ++ ++ r = get_user_creds(&user, &uid, &gid, NULL, NULL); ++ if (r < 0) { ++ ret = EXIT_USER; ++ goto fail_child; ++ } ++ } ++ ++ if (!isempty(s->group)) { ++ const char *group = s->group; + ++ r = get_group_creds(&group, &gid); ++ if (r < 0) { ++ ret = EXIT_GROUP; ++ goto fail_child; ++ } ++ } ++ ++ LIST_FOREACH(port, p, s->ports) { ++ const char *path; ++ ++ if (p->type == SOCKET_SOCKET) ++ path = socket_address_get_path(&p->address); ++ else if (p->type == SOCKET_FIFO) ++ path = p->path; ++ ++ if (!path) ++ continue; ++ ++ if (chown(path, uid, gid) < 0) { ++ r = -errno; ++ ret = EXIT_CHOWN; ++ goto fail_child; ++ } ++ } ++ ++ _exit(0); ++ ++ fail_child: ++ log_open(); ++ log_error("Failed to chown socket at step %s: %s", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD), strerror(-r)); ++ ++ _exit(ret); ++ } ++ ++ r = unit_watch_pid(UNIT(s), pid); ++ if (r < 0) ++ goto fail; ++ ++ *_pid = pid; ++ return 0; ++ ++fail: + return r; + } + +@@ -1249,11 +1338,12 @@ static void socket_enter_stop_post(Socket *s, SocketResult f) { + s->result = f; + + socket_unwatch_control_pid(s); +- + s->control_command_id = SOCKET_EXEC_STOP_POST; ++ s->control_command = s->exec_command[SOCKET_EXEC_STOP_POST]; + +- if ((s->control_command = s->exec_command[SOCKET_EXEC_STOP_POST])) { +- if ((r = socket_spawn(s, s->control_command, &s->control_pid)) < 0) ++ if (s->control_command) { ++ r = socket_spawn(s, s->control_command, &s->control_pid); ++ if (r < 0) + goto fail; + + socket_set_state(s, SOCKET_STOP_POST); +@@ -1319,11 +1409,12 @@ static void socket_enter_stop_pre(Socket *s, SocketResult f) { + s->result = f; + + socket_unwatch_control_pid(s); +- + s->control_command_id = SOCKET_EXEC_STOP_PRE; ++ s->control_command = s->exec_command[SOCKET_EXEC_STOP_PRE]; + +- if ((s->control_command = s->exec_command[SOCKET_EXEC_STOP_PRE])) { +- if ((r = socket_spawn(s, s->control_command, &s->control_pid)) < 0) ++ if (s->control_command) { ++ r = socket_spawn(s, s->control_command, &s->control_pid); ++ if (r < 0) + goto fail; + + socket_set_state(s, SOCKET_STOP_PRE); +@@ -1362,6 +1453,32 @@ static void socket_enter_start_post(Socket *s) { + int r; + assert(s); + ++ socket_unwatch_control_pid(s); ++ s->control_command_id = SOCKET_EXEC_START_POST; ++ s->control_command = s->exec_command[SOCKET_EXEC_START_POST]; ++ ++ if (s->control_command) { ++ r = socket_spawn(s, s->control_command, &s->control_pid); ++ if (r < 0) { ++ log_warning_unit(UNIT(s)->id, "%s failed to run 'start-post' task: %s", UNIT(s)->id, strerror(-r)); ++ goto fail; ++ } ++ ++ socket_set_state(s, SOCKET_START_POST); ++ } else ++ socket_enter_listening(s); ++ ++ return; ++ ++fail: ++ socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES); ++} ++ ++static void socket_enter_start_chown(Socket *s) { ++ int r; ++ ++ assert(s); ++ + r = socket_open_fds(s); + if (r < 0) { + log_warning_unit(UNIT(s)->id, +@@ -1370,22 +1487,23 @@ static void socket_enter_start_post(Socket *s) { + goto fail; + } + +- socket_unwatch_control_pid(s); ++ if (!isempty(s->user) || !isempty(s->group)) { + +- s->control_command_id = SOCKET_EXEC_START_POST; ++ socket_unwatch_control_pid(s); ++ s->control_command_id = SOCKET_EXEC_START_CHOWN; ++ s->control_command = NULL; + +- if ((s->control_command = s->exec_command[SOCKET_EXEC_START_POST])) { +- r = socket_spawn(s, s->control_command, &s->control_pid); ++ r = socket_chown(s, &s->control_pid); + if (r < 0) { + log_warning_unit(UNIT(s)->id, +- "%s failed to run 'start-post' task: %s", ++ "%s failed to fork 'start-chown' task: %s", + UNIT(s)->id, strerror(-r)); + goto fail; + } + +- socket_set_state(s, SOCKET_START_POST); ++ socket_set_state(s, SOCKET_START_CHOWN); + } else +- socket_enter_listening(s); ++ socket_enter_start_post(s); + + return; + +@@ -1398,23 +1516,23 @@ static void socket_enter_start_pre(Socket *s) { + assert(s); + + socket_unwatch_control_pid(s); +- + s->control_command_id = SOCKET_EXEC_START_PRE; ++ s->control_command = s->exec_command[SOCKET_EXEC_START_PRE]; + +- if ((s->control_command = s->exec_command[SOCKET_EXEC_START_PRE])) { +- if ((r = socket_spawn(s, s->control_command, &s->control_pid)) < 0) ++ if (s->control_command) { ++ r = socket_spawn(s, s->control_command, &s->control_pid); ++ if (r < 0) { ++ log_warning_unit(UNIT(s)->id, "%s failed to run 'start-pre' task: %s", UNIT(s)->id, strerror(-r)); + goto fail; ++ } + + socket_set_state(s, SOCKET_START_PRE); + } else +- socket_enter_start_post(s); ++ socket_enter_start_chown(s); + + return; + + fail: +- log_warning_unit(UNIT(s)->id, +- "%s failed to run 'start-pre' task: %s", +- UNIT(s)->id, strerror(-r)); + socket_enter_dead(s, SOCKET_FAILURE_RESOURCES); + } + +@@ -1600,16 +1718,19 @@ static int socket_start(Unit *u) { + + /* We cannot fulfill this request right now, try again later + * please! */ +- if (s->state == SOCKET_STOP_PRE || +- s->state == SOCKET_STOP_PRE_SIGKILL || +- s->state == SOCKET_STOP_PRE_SIGTERM || +- s->state == SOCKET_STOP_POST || +- s->state == SOCKET_FINAL_SIGTERM || +- s->state == SOCKET_FINAL_SIGKILL) ++ if (IN_SET(s->state, ++ SOCKET_STOP_PRE, ++ SOCKET_STOP_PRE_SIGKILL, ++ SOCKET_STOP_PRE_SIGTERM, ++ SOCKET_STOP_POST, ++ SOCKET_FINAL_SIGTERM, ++ SOCKET_FINAL_SIGKILL)) + return -EAGAIN; + +- if (s->state == SOCKET_START_PRE || +- s->state == SOCKET_START_POST) ++ if (IN_SET(s->state, ++ SOCKET_START_PRE, ++ SOCKET_START_CHOWN, ++ SOCKET_START_POST)) + return 0; + + /* Cannot run this without the service being around */ +@@ -1658,18 +1779,21 @@ static int socket_stop(Unit *u) { + assert(s); + + /* Already on it */ +- if (s->state == SOCKET_STOP_PRE || +- s->state == SOCKET_STOP_PRE_SIGTERM || +- s->state == SOCKET_STOP_PRE_SIGKILL || +- s->state == SOCKET_STOP_POST || +- s->state == SOCKET_FINAL_SIGTERM || +- s->state == SOCKET_FINAL_SIGKILL) ++ if (IN_SET(s->state, ++ SOCKET_STOP_PRE, ++ SOCKET_STOP_PRE_SIGTERM, ++ SOCKET_STOP_PRE_SIGKILL, ++ SOCKET_STOP_POST, ++ SOCKET_FINAL_SIGTERM, ++ SOCKET_FINAL_SIGKILL)) + return 0; + + /* If there's already something running we go directly into + * kill mode. */ +- if (s->state == SOCKET_START_PRE || +- s->state == SOCKET_START_POST) { ++ if (IN_SET(s->state, ++ SOCKET_START_PRE, ++ SOCKET_START_CHOWN, ++ SOCKET_START_POST)) { + socket_enter_signal(s, SOCKET_STOP_PRE_SIGTERM, SOCKET_SUCCESS); + return -EAGAIN; + } +@@ -2093,11 +2217,18 @@ static void socket_sigchld_event(Unit *u, pid_t pid, int code, int status) { + + case SOCKET_START_PRE: + if (f == SOCKET_SUCCESS) +- socket_enter_start_post(s); ++ socket_enter_start_chown(s); + else + socket_enter_signal(s, SOCKET_FINAL_SIGTERM, f); + break; + ++ case SOCKET_START_CHOWN: ++ if (f == SOCKET_SUCCESS) ++ socket_enter_start_post(s); ++ else ++ socket_enter_stop_pre(s, f); ++ break; ++ + case SOCKET_START_POST: + if (f == SOCKET_SUCCESS) + socket_enter_listening(s); +@@ -2141,6 +2272,7 @@ static void socket_timer_event(Unit *u, uint64_t elapsed, Watch *w) { + socket_enter_signal(s, SOCKET_FINAL_SIGTERM, SOCKET_FAILURE_TIMEOUT); + break; + ++ case SOCKET_START_CHOWN: + case SOCKET_START_POST: + log_warning_unit(u->id, + "%s starting timed out. Stopping.", u->id); +@@ -2328,6 +2460,7 @@ static int socket_kill(Unit *u, KillWho who, int signo, DBusError *error) { + static const char* const socket_state_table[_SOCKET_STATE_MAX] = { + [SOCKET_DEAD] = "dead", + [SOCKET_START_PRE] = "start-pre", ++ [SOCKET_START_CHOWN] = "start-chown", + [SOCKET_START_POST] = "start-post", + [SOCKET_LISTENING] = "listening", + [SOCKET_RUNNING] = "running", +@@ -2344,6 +2477,7 @@ DEFINE_STRING_TABLE_LOOKUP(socket_state, SocketState); + + static const char* const socket_exec_command_table[_SOCKET_EXEC_COMMAND_MAX] = { + [SOCKET_EXEC_START_PRE] = "StartPre", ++ [SOCKET_EXEC_START_CHOWN] = "StartChown", + [SOCKET_EXEC_START_POST] = "StartPost", + [SOCKET_EXEC_STOP_PRE] = "StopPre", + [SOCKET_EXEC_STOP_POST] = "StopPost" +diff --git a/src/core/socket.h b/src/core/socket.h +index 3d7eadc..d87b483 100644 +--- a/src/core/socket.h ++++ b/src/core/socket.h +@@ -32,6 +32,7 @@ typedef struct Socket Socket; + typedef enum SocketState { + SOCKET_DEAD, + SOCKET_START_PRE, ++ SOCKET_START_CHOWN, + SOCKET_START_POST, + SOCKET_LISTENING, + SOCKET_RUNNING, +@@ -48,6 +49,7 @@ typedef enum SocketState { + + typedef enum SocketExecCommand { + SOCKET_EXEC_START_PRE, ++ SOCKET_EXEC_START_CHOWN, + SOCKET_EXEC_START_POST, + SOCKET_EXEC_STOP_PRE, + SOCKET_EXEC_STOP_POST, +@@ -151,6 +153,8 @@ struct Socket { + char *smack; + char *smack_ip_in; + char *smack_ip_out; ++ ++ char *user, *group; + }; + + /* Called from the service code when collecting fds */ +diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c +index 45131f2..92ac520 100644 +--- a/src/shared/exit-status.c ++++ b/src/shared/exit-status.c +@@ -130,6 +130,9 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) { + + case EXIT_SECCOMP: + return "SECCOMP"; ++ ++ case EXIT_CHOWN: ++ return "CHOWN"; + } + } + +diff --git a/src/shared/exit-status.h b/src/shared/exit-status.h +index 1f035a3..babef31 100644 +--- a/src/shared/exit-status.h ++++ b/src/shared/exit-status.h +@@ -67,7 +67,8 @@ typedef enum ExitStatus { + EXIT_NETWORK, + EXIT_NAMESPACE, + EXIT_NO_NEW_PRIVILEGES, +- EXIT_SECCOMP ++ EXIT_SECCOMP, ++ EXIT_CHOWN, + } ExitStatus; + + typedef enum ExitStatusLevel { diff --git a/debian/patches/systemctl-call-update-rc.d-enable-disable-not-defaul.patch b/debian/patches/systemctl-call-update-rc.d-enable-disable-not-defaul.patch index fb81c7471..7d7fc8a3f 100644 --- a/debian/patches/systemctl-call-update-rc.d-enable-disable-not-defaul.patch +++ b/debian/patches/systemctl-call-update-rc.d-enable-disable-not-defaul.patch @@ -7,10 +7,10 @@ Subject: systemctl: call update-rc.d enable|disable, not defaults|remove 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 863129d..a5a4d2b 100644 +index e3c2b19..42c1d13 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -4301,7 +4301,7 @@ static int enable_sysv_units(char **args) { +@@ -4303,7 +4303,7 @@ static int enable_sysv_units(const char *verb, char **args) { log_info("Synchronizing state for %s with sysvinit using update-rc.d...", name); argv[c++] = path_get_file_name(p); diff --git a/debian/patches/systemctl-don-t-skip-native-units-when-enabling-disa.patch b/debian/patches/systemctl-don-t-skip-native-units-when-enabling-disa.patch index 5ce719bf1..656b6488d 100644 --- a/debian/patches/systemctl-don-t-skip-native-units-when-enabling-disa.patch +++ b/debian/patches/systemctl-don-t-skip-native-units-when-enabling-disa.patch @@ -8,10 +8,10 @@ Subject: =?utf-8?q?systemctl=3A_don=E2=80=99t_skip_native_units_when_enabl?= 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index ea36b48..863129d 100644 +index ab92fc7..e3c2b19 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -4293,8 +4293,10 @@ static int enable_sysv_units(char **args) { +@@ -4295,8 +4295,10 @@ static int enable_sysv_units(const char *verb, char **args) { if (!found_sysv) continue; diff --git a/debian/patches/units-conditionalize-configfs-and-debugfs-with-CAP_S.patch b/debian/patches/units-conditionalize-configfs-and-debugfs-with-CAP_S.patch new file mode 100644 index 000000000..9501fd90a --- /dev/null +++ b/debian/patches/units-conditionalize-configfs-and-debugfs-with-CAP_S.patch @@ -0,0 +1,42 @@ +From: Lennart Poettering +Date: Fri, 4 Jul 2014 03:10:09 +0200 +Subject: units: conditionalize configfs and debugfs with CAP_SYS_RAWIO + +We really don't want these in containers as they provide a too lowlevel +look on the system. + +Conditionalize them with CAP_SYS_RAWIO since that's required to access +/proc/kcore, /dev/kmem and similar, which feel similar in style. Also, +npsawn containers lack that capability. + +(cherry picked from commit fa229d09281d435153b4cfd138a2a62fa66d889b) +(cherry picked from commit b654a1065f278c93b3891cc5993645026e0d3702) +--- + units/sys-kernel-config.mount | 1 + + units/sys-kernel-debug.mount | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/units/sys-kernel-config.mount b/units/sys-kernel-config.mount +index 020101c..21648ef 100644 +--- a/units/sys-kernel-config.mount ++++ b/units/sys-kernel-config.mount +@@ -11,6 +11,7 @@ Documentation=https://www.kernel.org/doc/Documentation/filesystems/configfs/conf + Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems + DefaultDependencies=no + ConditionPathExists=/sys/kernel/config ++ConditionCapability=CAP_SYS_RAWIO + After=systemd-modules-load.service + Before=sysinit.target + +diff --git a/units/sys-kernel-debug.mount b/units/sys-kernel-debug.mount +index 5369728..1e94387 100644 +--- a/units/sys-kernel-debug.mount ++++ b/units/sys-kernel-debug.mount +@@ -11,6 +11,7 @@ Documentation=https://www.kernel.org/doc/Documentation/filesystems/debugfs.txt + Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems + DefaultDependencies=no + ConditionPathExists=/sys/kernel/debug ++ConditionCapability=CAP_SYS_RAWIO + Before=sysinit.target + + [Mount] diff --git a/debian/patches/units-conditionalize-static-device-node-logic-on-CAP.patch b/debian/patches/units-conditionalize-static-device-node-logic-on-CAP.patch new file mode 100644 index 000000000..a817058d7 --- /dev/null +++ b/debian/patches/units-conditionalize-static-device-node-logic-on-CAP.patch @@ -0,0 +1,50 @@ +From: Lennart Poettering +Date: Fri, 4 Jul 2014 03:07:20 +0200 +Subject: units: conditionalize static device node logic on CAP_SYS_MODULES + instead of CAP_MKNOD + +npsawn containers generally have CAP_MKNOD, since this is required +to make PrviateDevices= work. Thus, it's not useful anymore to +conditionalize the kmod static device node units. + +Use CAP_SYS_MODULES instead which is not available for nspawn +containers. However, the static device node logic is only done for being +able to autoload modules with it, and if we can't do that there's no +point in doing it. + +(cherry picked from commit e0c74691c41a204eba2fd5f39615049fc9ff1648) +(cherry picked from commit fce5e80589911d813dd13d1d0d64df96e0ab7939) + +Conflicts: + units/systemd-tmpfiles-setup-dev.service.in +--- + units/kmod-static-nodes.service.in | 2 +- + units/systemd-tmpfiles-setup-dev.service.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in +index 368f980..0934a87 100644 +--- a/units/kmod-static-nodes.service.in ++++ b/units/kmod-static-nodes.service.in +@@ -9,7 +9,7 @@ + Description=Create list of required static device nodes for the current kernel + DefaultDependencies=no + Before=sysinit.target systemd-tmpfiles-setup-dev.service +-ConditionCapability=CAP_MKNOD ++ConditionCapability=CAP_SYS_MODULE + ConditionPathExists=/lib/modules/%v/modules.devname + + [Service] +diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in +index 579e7c6..11c5ce2 100644 +--- a/units/systemd-tmpfiles-setup-dev.service.in ++++ b/units/systemd-tmpfiles-setup-dev.service.in +@@ -10,7 +10,7 @@ Description=Create static device nodes in /dev + Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) + DefaultDependencies=no + Before=sysinit.target local-fs-pre.target systemd-udevd.service +-ConditionCapability=CAP_MKNOD ++ConditionCapability=CAP_SYS_MODULE + + [Service] + Type=oneshot diff --git a/debian/patches/units-make-ExecStopPost-action-part-of-ExecStart.patch b/debian/patches/units-make-ExecStopPost-action-part-of-ExecStart.patch new file mode 100644 index 000000000..ee02c5b27 --- /dev/null +++ b/debian/patches/units-make-ExecStopPost-action-part-of-ExecStart.patch @@ -0,0 +1,51 @@ +From: Michal Sekletar +Date: Tue, 8 Jul 2014 17:42:23 +0200 +Subject: 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 +(cherry picked from commit d3381512282f2ca1c7669f77fb736a90fdce6982) +(cherry picked from commit 7a4ab10135c2b8fdeedb53c0585c67a0d6448ce6) +--- + units/emergency.service.in | 3 +-- + units/rescue.service.m4.in | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/units/emergency.service.in b/units/emergency.service.in +index 94c090f..91fc1bb 100644 +--- a/units/emergency.service.in ++++ b/units/emergency.service.in +@@ -17,8 +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 +-ExecStopPost=@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit +diff --git a/units/rescue.service.m4.in b/units/rescue.service.m4.in +index 552ef89..ef54369 100644 +--- a/units/rescue.service.m4.in ++++ b/units/rescue.service.m4.in +@@ -18,8 +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 +-ExecStopPost=-@SYSTEMCTL@ --fail --no-block default ++ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + Type=idle + StandardInput=tty-force + StandardOutput=inherit diff --git a/debian/patches/units-remove-RefuseManualStart-from-units-which-are-.patch b/debian/patches/units-remove-RefuseManualStart-from-units-which-are-.patch new file mode 100644 index 000000000..35f931a0d --- /dev/null +++ b/debian/patches/units-remove-RefuseManualStart-from-units-which-are-.patch @@ -0,0 +1,58 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Sat, 28 Jun 2014 00:06:30 -0400 +Subject: 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. + +(cherry picked from commit 0fdeb6e011dfdb17636c81e2d7e0d632186359ce) + +Conflicts: + units/systemd-tmpfiles-setup.service.in + units/user/basic.target +--- + units/basic.target | 1 - + units/sysinit.target | 1 - + units/systemd-tmpfiles-setup.service.in | 1 - + 3 files changed, 3 deletions(-) + +diff --git a/units/basic.target b/units/basic.target +index d7c68f4..b890d48 100644 +--- a/units/basic.target ++++ b/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 a/units/sysinit.target b/units/sysinit.target +index 8f4fb8f..ec33503 100644 +--- a/units/sysinit.target ++++ b/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 +diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in +index 01043b7..136520b 100644 +--- a/units/systemd-tmpfiles-setup.service.in ++++ b/units/systemd-tmpfiles-setup.service.in +@@ -18,7 +18,6 @@ ConditionDirectoryNotEmpty=|/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/usr/local/lib/tmpfiles.d + ConditionDirectoryNotEmpty=|/etc/tmpfiles.d + ConditionDirectoryNotEmpty=|/run/tmpfiles.d +-RefuseManualStart=yes + RefuseManualStop=yes + + [Service] diff --git a/debian/patches/units-serial-getty-.service-use-the-default-RestartS.patch b/debian/patches/units-serial-getty-.service-use-the-default-RestartS.patch new file mode 100644 index 000000000..774056f44 --- /dev/null +++ b/debian/patches/units-serial-getty-.service-use-the-default-RestartS.patch @@ -0,0 +1,33 @@ +From: Michael Olbrich +Date: Tue, 15 Jul 2014 18:28:10 +0200 +Subject: 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. + +(cherry picked from commit 4bf04322b8b7ecca4f3d65cfc642d0ac16356129) +(cherry picked from commit 89b958ef6a43400d1f7b25c58b02f4b5c3c59b36) +--- + units/serial-getty@.service.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 +index aea078f..1c2a521 100644 +--- a/units/serial-getty@.service.m4 ++++ b/units/serial-getty@.service.m4 +@@ -25,7 +25,6 @@ IgnoreOnIsolate=yes + ExecStart=-/sbin/agetty --keep-baud %I 115200,38400,9600 + Type=idle + Restart=always +-RestartSec=0 + UtmpIdentifier=%I + TTYPath=/dev/%I + TTYReset=yes diff --git a/debian/patches/units-skip-mounting-tmp-if-it-is-a-symlink.patch b/debian/patches/units-skip-mounting-tmp-if-it-is-a-symlink.patch new file mode 100644 index 000000000..9940fab4f --- /dev/null +++ b/debian/patches/units-skip-mounting-tmp-if-it-is-a-symlink.patch @@ -0,0 +1,24 @@ +From: Lennart Poettering +Date: Mon, 30 Jun 2014 21:44:05 +0200 +Subject: 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. + +(cherry picked from commit 8ebf02d6f382ce1ac7e0d44a713b8795a07b08cd) +--- + units/tmp.mount | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/units/tmp.mount b/units/tmp.mount +index 99a3ba3..00a0d28 100644 +--- a/units/tmp.mount ++++ b/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 diff --git a/debian/patches/units-systemd-sysctl.service.in-run-after-load-modul.patch b/debian/patches/units-systemd-sysctl.service.in-run-after-load-modul.patch new file mode 100644 index 000000000..8f511a34f --- /dev/null +++ b/debian/patches/units-systemd-sysctl.service.in-run-after-load-modul.patch @@ -0,0 +1,29 @@ +From: =?utf-8?q?Cristian_Rodr=C3=ADguez?= +Date: Sat, 23 Mar 2013 03:54:16 +0100 +Subject: 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 +(cherry picked from commit 0b73eab7a2185ae0377650e3fdb8208347a8a575) +--- + 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 5baf22c..b8e8175 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/ + ConditionDirectoryNotEmpty=|/lib/sysctl.d diff --git a/debian/patches/util-consider-0x7F-a-control-chracter-which-it-is-DE.patch b/debian/patches/util-consider-0x7F-a-control-chracter-which-it-is-DE.patch new file mode 100644 index 000000000..83f40d4b8 --- /dev/null +++ b/debian/patches/util-consider-0x7F-a-control-chracter-which-it-is-DE.patch @@ -0,0 +1,53 @@ +From: Lennart Poettering +Date: Mon, 7 Jul 2014 11:47:10 +0200 +Subject: util: consider 0x7F a control chracter (which it is: DEL) + +Let's better be safe than sorry. + +(cherry picked from commit 3a8a916338d8446b938f3cf40f6aae0c611892e3) +(cherry picked from commit a71b7b7e52f312c7a9fc19154ac0d444e057e1d4) +--- + src/shared/util.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 6de527e..a634b9d 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -1716,8 +1716,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) { + if (fd_wait_for_event(fileno(f), POLLIN, t) <= 0) + return -ETIMEDOUT; + ++ errno = 0; + if (!fgets(line, sizeof(line), f)) +- return -EIO; ++ return errno ? -errno : -EIO; + + truncate_nl(line); + +@@ -5344,6 +5345,9 @@ bool string_is_safe(const char *p) { + if (*t > 0 && *t < ' ') + return false; + ++ if (*t == 127) ++ return false; ++ + if (strchr("\\\"\'", *t)) + return false; + } +@@ -5360,10 +5364,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; + } + diff --git a/debian/patches/util-do-not-strip-dev-prefix-twice.patch b/debian/patches/util-do-not-strip-dev-prefix-twice.patch new file mode 100644 index 000000000..adb209bfb --- /dev/null +++ b/debian/patches/util-do-not-strip-dev-prefix-twice.patch @@ -0,0 +1,23 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Fri, 20 Jun 2014 18:44:39 -0400 +Subject: util: do not strip /dev prefix twice + +(cherry picked from commit 0d460faf732ff3c9483dbfa5db6905d53c2e2522) +--- + src/shared/util.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index e78e4e4..6de527e 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -3630,9 +3630,6 @@ char *fstab_node_to_udev_node(const char *p) { + bool tty_is_vc(const char *tty) { + assert(tty); + +- if (startswith(tty, "/dev/")) +- tty += 5; +- + return vtnr_from_tty(tty) >= 0; + } + diff --git a/debian/patches/vconsole-also-copy-character-maps-not-just-fonts-fro.patch b/debian/patches/vconsole-also-copy-character-maps-not-just-fonts-fro.patch new file mode 100644 index 000000000..ce912d56f --- /dev/null +++ b/debian/patches/vconsole-also-copy-character-maps-not-just-fonts-fro.patch @@ -0,0 +1,53 @@ +From: Carl Schaefer +Date: Mon, 23 Jun 2014 18:23:48 +0200 +Subject: vconsole: also copy character maps (not just fonts) from vt1 to vt2, + vt3, ... + +https://bugs.freedesktop.org/show_bug.cgi?id=78796 +(cherry picked from commit ff452e76e2c0f89a32542b7179bb2fd538335933) +--- + src/vconsole/vconsole-setup.c | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index 0f2b706..e0c4050 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/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); ++ } + } + } + diff --git a/debian/patches/vconsole-setup-fix-inverted-error-messages.patch b/debian/patches/vconsole-setup-fix-inverted-error-messages.patch new file mode 100644 index 000000000..e7861cee6 --- /dev/null +++ b/debian/patches/vconsole-setup-fix-inverted-error-messages.patch @@ -0,0 +1,35 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Mon, 7 Jul 2014 08:55:30 -0400 +Subject: vconsole-setup: fix inverted error messages + +Introduced in abee28c56d. + +Pointed-out-by: Werner Fink +(cherry picked from commit 3dde3f819732aaa66ab8e881305488adaea17641) +(cherry picked from commit 14c30a407a7599c96af2e9998c3038574005c368) +--- + src/vconsole/vconsole-setup.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index 25d15af..645b1e6 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/src/vconsole/vconsole-setup.c +@@ -305,7 +305,7 @@ int main(int argc, char **argv) { + + r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); + if (r < 0) { +- log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); + return EXIT_FAILURE; + } + +@@ -314,7 +314,7 @@ int main(int argc, char **argv) { + + r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid); + if (r < 0) { +- log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); + return EXIT_FAILURE; + } + diff --git a/debian/patches/vconsole-setup-run-setfont-before-loadkeys.patch b/debian/patches/vconsole-setup-run-setfont-before-loadkeys.patch new file mode 100644 index 000000000..7579948a1 --- /dev/null +++ b/debian/patches/vconsole-setup-run-setfont-before-loadkeys.patch @@ -0,0 +1,92 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= +Date: Tue, 1 Jul 2014 22:20:11 -0400 +Subject: vconsole-setup: run setfont before loadkeys + +https://bugs.freedesktop.org/show_bug.cgi?id=80685 +(cherry picked from commit abee28c56d523e55751b0c007d0bf812cc285c00) +(cherry picked from commit 20a575e8935cf5d2d078bbe3acf21fff56f2345c) +--- + src/vconsole/vconsole-setup.c | 48 +++++++++++++++++++++---------------------- + 1 file changed, 23 insertions(+), 25 deletions(-) + +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index e0c4050..25d15af 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/src/vconsole/vconsole-setup.c +@@ -238,12 +238,10 @@ static void font_copy_to_all_vcs(int fd) { + + 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; +- int fd = -1; ++ _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; + bool utf8; + pid_t font_pid = 0, keymap_pid = 0; + bool font_copy = false; +@@ -265,12 +263,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(); +@@ -305,27 +303,27 @@ int main(int argc, char **argv) { + else + disable_utf8(fd); + +- r = EXIT_FAILURE; +- if (keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid) >= 0 && +- font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) +- r = EXIT_SUCCESS; +- +-finish: +- if (keymap_pid > 0) +- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); ++ r = font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_LOADKEYS ": %s", strerror(-r)); ++ return EXIT_FAILURE; ++ } + +- if (font_pid > 0) { ++ 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, &keymap_pid); ++ if (r < 0) { ++ log_error("Failed to start " KBD_SETFONT ": %s", strerror(-r)); ++ return EXIT_FAILURE; + } + +- free(vc_keymap); +- free(vc_font); +- free(vc_font_map); +- free(vc_font_unimap); ++ if (keymap_pid > 0) ++ wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); + +- safe_close(fd); ++ /* Only copy the font when we started setfont successfully */ ++ if (font_copy && font_pid > 0) ++ font_copy_to_all_vcs(fd); + +- return r; ++ return EXIT_SUCCESS; + }