1. 10 Jun, 2017 1 commit
  2. 09 Jun, 2017 20 commits
  3. 07 Jun, 2017 1 commit
  4. 03 Jun, 2017 14 commits
  5. 27 May, 2017 1 commit
  6. 25 May, 2017 3 commits
    • Nick Desaulniers's avatar
      sysfs: remove signedness from sysfs_get_dirent · 89cf2a20
      Nick Desaulniers authored
      sysfs_get_dirent is usually invoked with a string literal, which
      have the type char[].  While the toplevel Makefile
      disables -Wpointer-sign, other Makefiles like
      
      arch/x86/boot/compressed/Makefile
      
      redefine KBUILD_CFLAGS. Fixes the warning:
      
      In file included from arch/x86/boot/compressed/kaslr.c:17:
      In file included from ./include/linux/module.h:17:
      In file included from ./include/linux/kobject.h:21:
      ./include/linux/sysfs.h:517:37: warning: passing 'const unsigned char *'
      to parameter of
            type 'const char *' converts between pointers to integer types
      with different sign
            [-Wpointer-sign]
              return kernfs_find_and_get(parent, name);
                                                 ^~~~
      ./include/linux/kernfs.h:462:57: note: passing argument to parameter
      'name' here
      kernfs_find_and_get(struct kernfs_node *kn, const char *name)
                                                              ^
      Signed-off-by: default avatarNick Desaulniers <nick.desaulniers@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      89cf2a20
    • Peter Rajnoha's avatar
      kobject: support passing in variables for synthetic uevents · f36776fa
      Peter Rajnoha authored
      This patch makes it possible to pass additional arguments in addition
      to uevent action name when writing /sys/.../uevent attribute. These
      additional arguments are then inserted into generated synthetic uevent
      as additional environment variables.
      
      Before, we were not able to pass any additional uevent environment
      variables for synthetic uevents. This made it hard to identify such uevents
      properly in userspace to make proper distinction between genuine uevents
      originating from kernel and synthetic uevents triggered from userspace.
      Also, it was not possible to pass any additional information which would
      make it possible to optimize and change the way the synthetic uevents are
      processed back in userspace based on the originating environment of the
      triggering action in userspace. With the extra additional variables, we are
      able to pass through this extra information needed and also it makes it
      possible to synchronize with such synthetic uevents as they can be clearly
      identified back in userspace.
      
      The format for writing the uevent attribute is following:
      
          ACTION [UUID [KEY=VALUE ...]
      
      There's no change in how "ACTION" is recognized - it stays the same
      ("add", "change", "remove"). The "ACTION" is the only argument required
      to generate synthetic uevent, the rest of arguments, that this patch
      adds support for, are optional.
      
      The "UUID" is considered as transaction identifier so it's possible to
      use the same UUID value for one or more synthetic uevents in which case
      we logically group these uevents together for any userspace listeners.
      The "UUID" is expected to be in "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      format where "x" is a hex digit. The value appears in uevent as
      "SYNTH_UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" environment variable.
      
      The "KEY=VALUE" pairs can contain alphanumeric characters only. It's
      possible to define zero or more more pairs - each pair is then delimited
      by a space character " ". Each pair appears in synthetic uevents as
      "SYNTH_ARG_KEY=VALUE" environment variable. That means the KEY name gains
      "SYNTH_ARG_" prefix to avoid possible collisions with existing variables.
      To pass the "KEY=VALUE" pairs, it's also required to pass in the "UUID"
      part for the synthetic uevent first.
      
      If "UUID" is not passed in, the generated synthetic uevent gains
      "SYNTH_UUID=0" environment variable automatically so it's possible to
      identify this situation in userspace when reading generated uevent and so
      we can still make a difference between genuine and synthetic uevents.
      Signed-off-by: default avatarPeter Rajnoha <prajnoha@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f36776fa
    • Adrian Salido's avatar
      driver core: platform: fix race condition with driver_override · 62655397
      Adrian Salido authored
      The driver_override implementation is susceptible to race condition when
      different threads are reading vs storing a different driver override.
      Add locking to avoid race condition.
      
      Fixes: 3d713e0e ("driver core: platform: add device binding path 'driver_override'")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAdrian Salido <salidoa@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      62655397