[systemd-commits] stable Branch 'v208-stable' - 42 commits - hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-OUI.hwdb hwdb/20-pci-classes.hwdb hwdb/20-pci-vendor-model.hwdb hwdb/20-usb-classes.hwdb hwdb/20-usb-vendor-model.hwdb Makefile.am man/crypttab.xml man/hostnamectl.xml man/machine-info.xml man/sd_journal_get_data.xml man/sd_journal_next.xml man/sysctl.d.xml man/systemd.socket.xml rules/42-usb-hid-pm.rules rules/99-systemd.rules.in shell-completion/bash shell-completion/zsh src/core src/cryptsetup src/hostname src/journal src/login src/machine src/shared src/udev src/vconsole units/basic.target units/emergency.service.in units/kmod-static-nodes.service.in units/rescue.service.m4.in units/serial-getty at .service.m4 units/sysinit.target units/sys-kernel-config.mount units/sys-kernel-debug.mount units/systemd-sysctl.service.in units/systemd-tmpfiles-setup-dev.service.in units/systemd-tmpfiles-setup.service.in units/tmp.mount

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Sun Jul 20 16:31:29 PDT 2014


 Makefile.am                                 |   10 
 hwdb/20-OUI.hwdb                            |  543 +++++++++++++-
 hwdb/20-bluetooth-vendor-product.hwdb       |   26 
 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 ++
 man/crypttab.xml                            |    2 
 man/hostnamectl.xml                         |   72 +
 man/machine-info.xml                        |    3 
 man/sd_journal_get_data.xml                 |    2 
 man/sd_journal_next.xml                     |    2 
 man/sysctl.d.xml                            |   96 +-
 man/systemd.socket.xml                      |   38 
 rules/42-usb-hid-pm.rules                   |    4 
 rules/99-systemd.rules.in                   |    2 
 shell-completion/bash/hostnamectl           |    3 
 shell-completion/zsh/_hostnamectl           |   32 
 shell-completion/zsh/_localectl             |    4 
 src/core/dbus-socket.c                      |    4 
 src/core/load-fragment-gperf.gperf.m4       |    4 
 src/core/mount-setup.c                      |    4 
 src/core/path.c                             |    3 
 src/core/service.c                          |    3 
 src/core/snapshot.c                         |   19 
 src/core/socket.c                           |  224 ++++-
 src/core/socket.h                           |    4 
 src/core/transaction.c                      |   20 
 src/cryptsetup/cryptsetup-generator.c       |   18 
 src/hostname/hostnamed.c                    |    3 
 src/journal/compress.c                      |   40 -
 src/journal/journal-file.c                  |    6 
 src/journal/journald-server.c               |    3 
 src/journal/test-journal-send.c             |    2 
 src/login/70-uaccess.rules                  |   15 
 src/machine/machine.c                       |    2 
 src/shared/exit-status.c                    |    3 
 src/shared/exit-status.h                    |    3 
 src/shared/util.c                           |   15 
 src/udev/accelerometer/accelerometer.c      |   33 
 src/vconsole/vconsole-setup.c               |   72 +
 units/basic.target                          |    1 
 units/emergency.service.in                  |    3 
 units/kmod-static-nodes.service.in          |    2 
 units/rescue.service.m4.in                  |    3 
 units/serial-getty at .service.m4              |    1 
 units/sys-kernel-config.mount               |    1 
 units/sys-kernel-debug.mount                |    1 
 units/sysinit.target                        |    1 
 units/systemd-sysctl.service.in             |    1 
 units/systemd-tmpfiles-setup-dev.service.in |    2 
 units/systemd-tmpfiles-setup.service.in     |    1 
 units/tmp.mount                             |    1 
 53 files changed, 1911 insertions(+), 649 deletions(-)

New commits:
commit 45d1e4a9908ca1e152fe0b0e8da236d5a6b40b75
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu Jun 5 09:55:53 2014 +0200

    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

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 @@
                         </varlistentry>
 
                         <varlistentry>
-                                <term><varname>DirectoryMode=</varname></term>
-                                <listitem><para>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.</para></listitem>
+                                <term><varname>SocketUser=</varname></term>
+                                <term><varname>SocketGroup=</varname></term>
+
+                                <listitem><para>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.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -396,6 +401,19 @@
                         </varlistentry>
 
                         <varlistentry>
+                                <term><varname>DirectoryMode=</varname></term>
+                                <listitem><para>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.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><varname>Accept=</varname></term>
                                 <listitem><para>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 {

commit 6fd930fae5ed070bb7d14bf1066a33cf1bac5344
Author: David Herrmann <dh.herrmann at gmail.com>
Date:   Fri Jul 18 12:58:00 2014 +0200

    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)

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;
 }

commit 7f70164f5cce9f63b5fe103c81c47b29a2fd8a99
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Wed Jul 16 22:52:53 2014 -0400

    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)

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;

commit 78c27a998f1d05c55710d9e00f28916eb263c201
Author: Michael Biebl <biebl at debian.org>
Date:   Wed Jul 16 12:09:47 2014 +0200

    build-sys: don't move libgudev to /lib
    
    It depends on libgobject and libgmodule which are installed in /usr/lib.
    
    (cherry picked from commit 5c059d2ead0787a90732d27ed1b485d236abf641)
    (cherry picked from commit c46cee9156e8785fc70e8528d6deb402bef06ca0)

diff --git a/Makefile.am b/Makefile.am
index d57d890..205ea50 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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)
-
-libgudev-uninstall-hook:
-	rm -f $(DESTDIR)$(rootlibdir)/libgudev-1.0.so*
-
-INSTALL_EXEC_HOOKS += libgudev-install-hook
-UNINSTALL_EXEC_HOOKS += libgudev-uninstall-hook
 endif
 
 EXTRA_DIST += \

commit 880fa850aef7f5a28834f5c08a28ac4e9d885f8e
Author: Michael Olbrich <m.olbrich at pengutronix.de>
Date:   Tue Jul 15 18:28:10 2014 +0200

    units/serial-getty at .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)

diff --git a/units/serial-getty at .service.m4 b/units/serial-getty at .service.m4
index aea078f..1c2a521 100644
--- a/units/serial-getty at .service.m4
+++ b/units/serial-getty at .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

commit 70576d825cd412d9ed40a3dd34bb4999760a1ead
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Mar 30 14:20:34 2014 -0400

    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)

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;

commit fa6ce82a4c63b7c50e6c461e3c947db61232b7b5
Author: Kay Sievers <kay at vrfy.org>
Date:   Tue Jul 15 17:35:53 2014 +0200

    rules: uaccess - add ID_SOFTWARE_RADIO
    
    On Tue, Jul 15, 2014 at 1:52 PM, Alick Zhao <alick9188 at gmail.com> 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)

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"

commit d6889f067e291cc0c2fb8589cb4afbd27f766b24
Author: Kay Sievers <kay at vrfy.org>
Date:   Tue Jul 15 02:04:47 2014 +0200

    rules: consistently use "?*" instead of "*?"
    
    (cherry picked from commit 64dfe7b74446bd56e2d0e1588f900372ac13ae42)
    (cherry picked from commit 9221fcfe485a71dd206691f25fc7db3b02076bf3)

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"

commit 7eb1f731eaf65b28e1bc80d26087bf44bdbe62be
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Fri Jul 11 08:25:20 2014 -0400

    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)

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 @@
                         </varlistentry>
 
                         <varlistentry>
-                                <term><command>set-hostname [NAME]</command></term>
+                                <term><command>set-hostname <replaceable>NAME</replaceable></command></term>
 
                                 <listitem><para>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
+                                <replaceable>NAME</replaceable>. By
+                                default, this will alter the pretty,
+                                the static, and the transient hostname
+                                alike; however, if one or more of
                                 <option>--static</option>,
                                 <option>--transient</option>,
                                 <option>--pretty</option> 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 <literal></literal> as the
-                                hostname to reset the selected
-                                hostnames to their default (usually
+                                name is left untouched.</para>
+
+                                <para>Pass the empty string
+                                <literal></literal> as the hostname to
+                                reset the selected hostnames to their
+                                default (usually
                                 <literal>localhost</literal>).</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><command>set-icon-name [NAME]</command></term>
+                                <term><command>set-icon-name <replaceable>NAME</replaceable></command></term>
 
                                 <listitem><para>Set the system icon
-                                name. The icon name is used by some
-                                graphical applications to visualize
-                                this host. The icon name should follow
-                                the <ulink
+                                name to
+                                <replaceable>NAME</replaceable>. The
+                                icon name is used by some graphical
+                                applications to visualize this host.
+                                The icon name should follow the <ulink
                                 url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
-                                Naming Specification</ulink>. 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</ulink>.</para>
+
+                                <para>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.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><command>set-chassis [TYPE]</command></term>
+                                <term><command>set-chassis <replaceable>TYPE</replaceable></command></term>
 
-                                <listitem><para>Set the chassis
-                                type. The chassis type is used by some
+                                <listitem><para>Set the chassis type
+                                to <replaceable>TYPE</replaceable>.
+                                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:
                                 <literal>desktop</literal>,
                                 <literal>laptop</literal>,
                                 <literal>server</literal>,
                                 <literal>tablet</literal>,
-				<literal>handset</literal>,
-				<literal>watch</literal>, as well as
+                                <literal>handset</literal>,
+                                <literal>watch</literal>, as well as
                                 the special chassis types
                                 <literal>vm</literal> and
                                 <literal>container</literal> 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.</para></listitem>
+                                immediate physical chassis.</para>
+
+                                <para>Pass an empty string to reset
+                                the chassis type to the default value
+                                which is determined from the firmware
+                                and possibly other parameters.</para>
+                                </listitem>
                         </varlistentry>
 
                 </variablelist>
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
 }

commit 1db855c61fb9f7d4bb03c9e6f78d36beced6acf3
Author: Michal Sekletar <msekleta at redhat.com>
Date:   Tue Jul 8 17:42:23 2014 +0200

    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 <mschmidt at redhat.com>
    (cherry picked from commit d3381512282f2ca1c7669f77fb736a90fdce6982)
    (cherry picked from commit 7a4ab10135c2b8fdeedb53c0585c67a0d6448ce6)

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=- at SYSTEMCTL@ --fail --no-block default
+ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
 Type=idle
 StandardInput=tty-force
 StandardOutput=inherit

commit 8df8f766e8196a1b921a337ba7e6e3943b3e9bc2
Author: Tomasz Torcz <tomek at pipebreaker.pl>
Date:   Wed Jul 9 13:37:50 2014 +0200

    hostnamed: update documentation with new "watch" chassis type
    
    (cherry picked from commit efab8d0b0ebf6d715949b7af66fecaf5e5e5d77b)
    (cherry picked from commit 710348ce7349b224ba58bae765611455320f68d1)

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 @@
                                 <literal>laptop</literal>,
                                 <literal>server</literal>,
                                 <literal>tablet</literal>,
-                                <literal>handset</literal>, as well as
+				<literal>handset</literal>,
+				<literal>watch</literal>, as well as
                                 the special chassis types
                                 <literal>vm</literal> and
                                 <literal>container</literal> 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 @@
                                 <literal>laptop</literal>,
                                 <literal>server</literal>,
                                 <literal>tablet</literal>,
-                                <literal>handset</literal>, as well as
+				<literal>handset</literal>,
+				<literal>watch</literal>, as well as
                                 the special chassis types
                                 <literal>vm</literal> and
                                 <literal>container</literal> for

commit 5f983db6375877c7dd77521fc65ca6dd4c4261b9
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Jul 9 13:20:05 2014 +0200

    hostnamed: add a new chassis type for watches
    
    (cherry picked from commit c49e59c1831f20fe02276d7bc6ba7d23d24c4ab3)
    (cherry picked from commit 6f977a8c14c4cec72a85f20d0986daa391dd3319)

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);
 }
 

commit b4f5701719e11b3a0de93ef181a11808158fbcc9
Author: Jon Severinsson <jon at severinsson.net>
Date:   Tue Jul 8 18:29:46 2014 +0200

    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)

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;
 

commit 63f877db164c15752c40716b47fc2d623cdb851d
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jun 24 21:24:46 2014 -0400

    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.

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 <string.h>
 #include <lzma.h>
 
-#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;

commit b566dc04c910c97bb3d45f9f4b5f81dc65237865
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jun 24 21:24:09 2014 -0400

    journal/compress: simplify compress_blob
    
    (cherry picked from commit 76cc0bf682b944d4cb611f1b37c71fce140f8fe7)

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,

commit 3a7dd9f82fb71309bd642db6f17c9e5aebbc844b
Author: Bastien Nocera <hadess at hadess.net>
Date:   Tue Jul 8 18:29:06 2014 +0200

    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)

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));

commit d49a0afefd7b3f0e573513f4449ab700c45f3620
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Jul 7 17:33:46 2014 +0200

    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)

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;
 }

commit 3fe476cebbefc3094e0483d9f81d1c5928b7da23
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Jul 7 11:47:10 2014 +0200

    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)

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;
 }
 

commit a2bdf1cc143701386a40ca381f8aa54bbf72a0c8
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Mon Jul 7 08:55:30 2014 -0400

    vconsole-setup: fix inverted error messages
    
    Introduced in abee28c56d.
    
    Pointed-out-by: Werner Fink <werner at suse.de>
    (cherry picked from commit 3dde3f819732aaa66ab8e881305488adaea17641)
    (cherry picked from commit 14c30a407a7599c96af2e9998c3038574005c368)

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;
         }
 

commit baacdfcb2903450fe98842ffea96c0916753bfdb
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Tue Jul 1 22:20:11 2014 -0400

    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)

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;
 }

commit d91371b51d7df166d52a3d0ddd0bc93e2ba527ac
Author: Tom Gundersen <teg at jklm.no>
Date:   Sun Jul 6 14:12:28 2014 +0200

    machine: don't return uninitialized variable
    
    Repotred by Ronny Chevalier
    
    (cherry picked from commit f14aa1f1b2e4e99ee20393871b5f64f1378ed6c3)
    (cherry picked from commit 6e07a1c070376b7c2bcc8d57e8adbc8f6f78e8d5)

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) {

commit c7e3453e029be08ccbea520b3466d2a71149951a
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Jul 4 03:10:09 2014 +0200

    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)

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]

commit 734ab69b24660065d2ca95291b0f38798ccfd9f2
Author: Lennart Poettering <lennart at poettering.net>
Date:   Fri Jul 4 03:07:20 2014 +0200

    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

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

commit bf5aa798d912455d657fae6c52d725b8941aa9c5
Author: Kay Sievers <kay at vrfy.org>
Date:   Thu Jul 3 16:28:40 2014 +0200

    hwdb: update
    
    (cherry picked from commit 98be1a746ac0d7a17e69ccb05936a4d6b3223e97)

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
 

commit 406f410745533c3c584ad1cdf0b83c609012cd6d
Author: Marcel Holtmann <marcel at holtmann.org>
Date:   Thu Jul 3 16:13:48 2014 +0200

    hwdb: Update database of Bluetooth company identifiers
    
    (cherry picked from commit 063e36db8aed7b54100b33089deb6d2e86d516b9)

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

commit 68d9f2a3e92f2275d30d67580f64defc76499006
Author: Christian Hesse <mail at eworm.de>
Date:   Tue Jul 1 10:22:51 2014 +0200

    man/sd_journal_get_data: fix variable naming in example
    
    (cherry picked from commit 02ea24ca2a0aac854c4e9e7d712f6464c8b29e4a)

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 @@
                 <programlisting>...
 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);
 }

commit dbf388481a82cbca60e185a8611b5f197ce4cb93
Author: Christian Hesse <mail at eworm.de>
Date:   Tue Jul 1 10:22:50 2014 +0200

    man/sd_journal_next: fix argument in example
    
    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)

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;

commit 8096b6516621a2f9aeae77fbb622c859e585564b
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Jun 30 21:44:05 2014 +0200

    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)

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

commit 368b458ef96c7c10054bd9b9c3a5d16745bc7983
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sat Jun 28 00:06:30 2014 -0400

    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

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]

commit 44599e6162d6806a39a6691b1d4f9f69f8329646
Author: Tom Hirst <tom.hirst at ipe-systems.co.uk>
Date:   Wed Jun 25 11:57:11 2014 +0000

    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)

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"
 

commit d3db9a9911637d06c8cd5a573b87acd5e8101270
Author: Michał Bartoszkiewicz <mbartoszkiewicz at gmail.com>
Date:   Thu Jun 26 22:11:35 2014 +0200

    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)

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;

commit 20aff35923a0409d403afd891bc35324ab7d67f8
Author: Uoti Urpala <uoti.urpala at pp1.inet.fi>
Date:   Mon Jun 23 16:50:03 2014 +0300

    core/transaction: fix cycle break attempts outside transaction
    
    Patch fixes some incorrect-looking code in transaction.c.
    It could fix cases where Debian users with bad package configurations
    had systemd go into an infinite loop printing messages about breaking an
    ordering cycle, though I have not reproduced that problem myself.
    
    transaction_verify_order_one() considers jobs/units outside current
    transaction when checking whether ordering dependencies cause cycles.
    It would also incorrectly try to break cycles at these jobs; this
    cannot work, as the break action is to remove the job from the
    transaction, which is a no-op if the job isn't part of the transaction
    to begin with. The unit_matters_to_anchor() test also looks like it
    would not work correctly for non-transaction jobs. Add a check to
    verify that the unit is part of the transaction before considering a
    job a candidate for deletion.
    
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752259
    (cherry picked from commit 375ae4aa4d2f89ae8afdd27e9f2b8336fcc2a046)

diff --git a/src/core/transaction.c b/src/core/transaction.c
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
                                       "Found dependency on %s/%s",
                                       k->unit->id, job_type_to_string(k->type));
 
-                        if (!delete &&
+                        if (!delete && hashmap_get(tr->jobs, k->unit) &&
                             !unit_matters_to_anchor(k->unit, k)) {
                                 /* Ok, we can drop this one, so let's
                                  * do so. */

commit 2b0f2489ce5df772c88c44773443349cb3e218e0
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Mon Jun 23 23:07:53 2014 -0400

    man: fix path in crypttab(5)
    
    https://bugs.freedesktop.org/show_bug.cgi?id=75816
    (cherry picked from commit 9fcdf32294e66f91d2a177f73a77049832768311)

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 @@
                         <programlisting>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</programlisting>
+hidden     /mnt/tc_hidden  /dev/null                tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
                 </example>
         </refsect1>
 

commit bb6caff37bdf0de68a5f9243fe282b2df1da6737
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Jun 23 19:18:44 2014 +0200

    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

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);
+                        }
                 }
         }
 

commit 75547f3f23d4a38ae497b5ffe7d4d8c5038d1a45
Author: Ronan Le Martret <ronan at fridu.net>
Date:   Tue Apr 22 10:33:25 2014 +0200

    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)

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,

commit ad1faa28c6b319ad5a1b8a9879fba2962ca4e755
Author: Carl Schaefer <schaefer at trilug.org>
Date:   Mon Jun 23 18:23:48 2014 +0200

    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)

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);
+                }
         }
 }
 

commit 550977c2beb8029db9f6236717e630af00d0906c
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Jun 22 14:20:08 2014 -0400

    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

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));
 }
 

commit f8b3ac3455144d3a1c14aaafc52161928c4efb32
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Jun 22 14:04:23 2014 -0400

    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

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;
         }
 

commit b0a6e77ffcca3c18725b460e99269322bd4b85bd
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Fri Jun 20 18:44:39 2014 -0400

    util: do not strip /dev prefix twice
    
    (cherry picked from commit 0d460faf732ff3c9483dbfa5db6905d53c2e2522)

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;
 }
 

commit 74cfaf67f132f7a6a738020750bd7bb0ebd30a3a
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Thu Jun 19 21:13:56 2014 -0400

    man: also describe an udev rule for bridge sysctl
    
    (cherry picked from commit 71418295125c542d3edd1e7251bb0701ef1af89b)

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 @@
                 </example>
 
                 <example>
-                        <title>Disable packet filter on the bridge</title>
+                        <title>Disable packet filter on the bridge (method one)</title>
+                        <para><filename>/etc/udev/rules.d/99-bridge.conf</filename>:
+                        </para>
+
+                        <programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/proc/sys/net/bridge"
+</programlisting>
+
+                        <para><filename>/etc/sysctl.d/bridge.conf</filename>:
+                        </para>
+
+                        <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</programlisting>
+                </example>
+
+                <example>
+                        <title>Disable packet filter on the bridge (method two)</title>
                         <para><filename>/etc/modules-load.d/bridge.conf</filename>:
                         </para>
 

commit c3002f71361100f8ec868ccd2f2631198a88af32
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Thu Jun 19 20:43:56 2014 -0400

    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)

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 <literal>#</literal> or <literal>;</literal> are
                 ignored.</para>
 
-                <para>Note that either <literal>/</literal> or
-                <literal>.</literal> 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. <literal>kernel.domainname=foo</literal>
-                and <literal>kernel/domainname=foo</literal> are
-                equivalent and will cause <literal>foo</literal> to
-                be written to
-                <filename>/proc/sys/kernel/domainname</filename>.
-                Either
-                <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
-                or
-                <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
-                may be used to refer to
-                <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
-                </para>
-
                 <para>Each configuration file shall be named in the
                 style of <filename><replaceable>program</replaceable>.conf</filename>.
                 Files in <filename>/etc/</filename> override files
@@ -110,6 +92,24 @@
                 number and a dash, to simplify the ordering of the
                 files.</para>
 
+                <para>Note that either <literal>/</literal> or
+                <literal>.</literal> 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. <literal>kernel.domainname=foo</literal>
+                and <literal>kernel/domainname=foo</literal> are
+                equivalent and will cause <literal>foo</literal> to
+                be written to
+                <filename>/proc/sys/kernel/domainname</filename>.
+                Either
+                <literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
+                or
+                <literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
+                may be used to refer to
+                <filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
+                </para>
+
                 <para>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,
                 <filename>net.ipv4.conf.*</filename>,
                 <filename>net.ipv6.conf.*</filename>,
-                <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>)</para>
+                <filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>).</para>
+
+                <para>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
+                <citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> 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 <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> rule to set those parameters when they become
+                available. Alternatively, a slightly simpler and
+                less efficient option is to add the module to
+                <citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, causing it to be loaded statically
+                before sysctl settings are applied (see
+                example below).</para>
         </refsect1>
 
         <refsect1>
-                <title>Example</title>
+                <title>Examples</title>
+                <example>
+                        <title>Set kernel YP domain name</title>
+                        <para><filename>/etc/sysctl.d/domain-name.conf</filename>:
+                        </para>
+
+                        <programlisting>kernel.domainname=example.com</programlisting>
+                </example>
+
                 <example>
-                        <title>/etc/sysctl.d/domain-name.conf example:</title>
+                        <title>Disable packet filter on the bridge</title>
+                        <para><filename>/etc/modules-load.d/bridge.conf</filename>:
+                        </para>
+
+                        <programlisting>bridge</programlisting>
+
+                        <para><filename>/etc/sysctl.d/bridge.conf</filename>:
+                        </para>
 
-                        <programlisting># Set kernel YP domain name
-kernel.domainname=example.com</programlisting>
+                        <programlisting>net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
+</programlisting>
                 </example>
         </refsect1>
 
@@ -146,6 +178,7 @@ kernel.domainname=example.com</programlisting>
                         <citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                        <citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
                 </para>
         </refsect1>
 

commit 78b929e277a801fe49e35a5adff4e3b6d2ecaa10
Author: Cristian Rodríguez <crrodriguez at opensuse.org>
Date:   Sat Mar 23 03:54:16 2013 +0100

    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)

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



More information about the systemd-commits mailing list