]> Git Repo - linux.git/commitdiff
Merge branch 'akpm' (patches from Andrew)
authorLinus Torvalds <[email protected]>
Sat, 19 Mar 2016 02:26:54 +0000 (19:26 -0700)
committerLinus Torvalds <[email protected]>
Sat, 19 Mar 2016 02:26:54 +0000 (19:26 -0700)
Merge second patch-bomb from Andrew Morton:

 - a couple of hotfixes

 - the rest of MM

 - a new timer slack control in procfs

 - a couple of procfs fixes

 - a few misc things

 - some printk tweaks

 - lib/ updates, notably to radix-tree.

 - add my and Nick Piggin's old userspace radix-tree test harness to
   tools/testing/radix-tree/.  Matthew said it was a godsend during the
   radix-tree work he did.

 - a few code-size improvements, switching to __always_inline where gcc
   screwed up.

 - partially implement character sets in sscanf

* emailed patches from Andrew Morton <[email protected]>: (118 commits)
  sscanf: implement basic character sets
  lib/bug.c: use common WARN helper
  param: convert some "on"/"off" users to strtobool
  lib: add "on"/"off" support to kstrtobool
  lib: update single-char callers of strtobool()
  lib: move strtobool() to kstrtobool()
  include/linux/unaligned: force inlining of byteswap operations
  include/uapi/linux/byteorder, swab: force inlining of some byteswap operations
  include/asm-generic/atomic-long.h: force inlining of some atomic_long operations
  usb: common: convert to use match_string() helper
  ide: hpt366: convert to use match_string() helper
  ata: hpt366: convert to use match_string() helper
  power: ab8500: convert to use match_string() helper
  power: charger_manager: convert to use match_string() helper
  drm/edid: convert to use match_string() helper
  pinctrl: convert to use match_string() helper
  device property: convert to use match_string() helper
  lib/string: introduce match_string() helper
  radix-tree tests: add test for radix_tree_iter_next
  radix-tree tests: add regression3 test
  ...

1  2 
MAINTAINERS
arch/arm64/mm/fault.c
drivers/usb/common/common.c
include/linux/sched.h

diff --combined MAINTAINERS
index 1c6d7781812ef27f219a5f9c17ca2caf0bb4c5c6,cc7108ef978672825e65ace51f7ea1b4b4e5af5e..2933d90512a3a8610a97f2c2f3723292209cb183
@@@ -238,12 -238,6 +238,12 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/hwmon/abituguru3.c
  
 +ACCES 104-DIO-48E GPIO DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpio/gpio-104-dio-48e.c
 +
  ACCES 104-IDI-48 GPIO DRIVER
  M:    "William Breathitt Gray" <[email protected]>
  L:    [email protected]
@@@ -775,12 -769,6 +775,12 @@@ L:       [email protected] (moderat
  S:    Maintained
  F:    sound/aoa/
  
 +APEX EMBEDDED SYSTEMS STX104 DAC DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/iio/dac/stx104.c
 +
  APM DRIVER
  M:    Jiri Kosina <[email protected]>
  S:    Odd fixes
@@@ -1968,12 -1956,6 +1968,12 @@@ M:    Nicolas Ferre <[email protected]
  S:    Supported
  F:    drivers/tty/serial/atmel_serial.c
  
 +ATMEL SAMA5D2 ADC DRIVER
 +M:    Ludovic Desroches <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/iio/adc/at91-sama5d2_adc.c
 +
  ATMEL Audio ALSA driver
  M:    Nicolas Ferre <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/staging/dgnc/
  
 -DIGI EPCA PCI PRODUCTS
 -M:    Lidza Louina <[email protected]>
 -M:    Daeseok Youn <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/staging/dgap/
 -
  DIOLAN U2C-12 I2C DRIVER
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
  S:    Maintained
  F:    Documentation/gpio/
 +F:    Documentation/ABI/testing/gpio-cdev
 +F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    drivers/gpio/
  F:    include/linux/gpio/
  F:    include/linux/gpio.h
  F:    include/asm-generic/gpio.h
 +F:    include/uapi/linux/gpio.h
 +F:    tools/gpio/
  
  GRE DEMULTIPLEXER DRIVER
  M:    Dmitry Kozlov <[email protected]>
@@@ -4994,7 -4979,6 +4994,7 @@@ F:      include/linux/hw_random.
  
  HARDWARE SPINLOCK CORE
  M:    Ohad Ben-Cohen <[email protected]>
 +M:    Bjorn Andersson <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock.git
  F:    Documentation/hwspinlock.txt
@@@ -5016,6 -5000,12 +5016,6 @@@ T:     git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/dvb-frontends/hd29l2*
  
 -HEWLETT-PACKARD SMART2 RAID DRIVER
 -L:    [email protected]
 -S:    Orphan
 -F:    Documentation/blockdev/cpqarray.txt
 -F:    drivers/block/cpqarray.*
 -
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
  M:    Don Brace <[email protected]>
  L:    [email protected]
@@@ -5028,9 -5018,9 +5028,9 @@@ F:      include/linux/cciss*.
  F:    include/uapi/linux/cciss*.h
  
  HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
 -M:    Don Brace <don.brace@pmcs.com>
 +M:    Don Brace <don.brace@microsemi.com>
  L:    [email protected]
 -L:    storagedev@pmcs.com
 +L:    esc.storagedev@microsemi.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/blockdev/cciss.txt
@@@ -5580,7 -5570,6 +5580,7 @@@ F:      drivers/input
  F:    include/linux/input.h
  F:    include/uapi/linux/input.h
  F:    include/linux/input/
 +F:    Documentation/devicetree/bindings/input/
  
  INPUT MULTITOUCH (MT) PROTOCOL
  M:    Henrik Rydberg <[email protected]>
@@@ -5775,7 -5764,6 +5775,7 @@@ S:      Supporte
  F:    include/uapi/linux/mei.h
  F:    include/linux/mei_cl_bus.h
  F:    drivers/misc/mei/*
 +F:    drivers/watchdog/mei_wdt.c
  F:    Documentation/misc-devices/mei/*
  
  INTEL MIC DRIVERS (mic)
@@@ -6078,7 -6066,7 +6078,7 @@@ S:      Maintaine
  F:    drivers/media/platform/rcar_jpu.c
  
  JSM Neo PCI based serial card
 -M:    Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
 +M:    Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/tty/serial/jsm/
@@@ -6596,10 -6584,9 +6596,10 @@@ F:    drivers/platform/x86/hp_accel.
  
  LIVE PATCHING
  M:    Josh Poimboeuf <[email protected]>
 -M:    Seth Jennings <sjenning@redhat.com>
 +M:    Jessica Yu <jeyu@redhat.com>
  M:    Jiri Kosina <[email protected]>
 -M:    Vojtech Pavlik <[email protected]>
 +M:    Miroslav Benes <[email protected]>
 +R:    Petr Mladek <[email protected]>
  S:    Maintained
  F:    kernel/livepatch/
  F:    include/linux/livepatch.h
@@@ -6610,11 -6597,6 +6610,11 @@@ F:    samples/livepatch
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
  
 +LINUX KERNEL DUMP TEST MODULE (LKDTM)
 +M:    Kees Cook <[email protected]>
 +S:    Maintained
 +F:    drivers/misc/lkdtm.c
 +
  LLC (802.2)
  M:    Arnaldo Carvalho de Melo <[email protected]>
  S:    Maintained
@@@ -8201,13 -8183,6 +8201,13 @@@ S:    Maintaine
  F:    Documentation/mn10300/
  F:    arch/mn10300/
  
 +PARALLEL LCD/KEYPAD PANEL DRIVER
 +M:      Willy Tarreau <[email protected]>
 +M:      Ksenija Stanojevic <[email protected]>
 +S:      Odd Fixes
 +F:      Documentation/misc-devices/lcd-panel-cgram.txt
 +F:      drivers/misc/panel.c
 +
  PARALLEL PORT SUBSYSTEM
  M:    Sudip Mukherjee <[email protected]>
  M:    Sudip Mukherjee <[email protected]>
@@@ -8498,7 -8473,7 +8498,7 @@@ F:      include/crypto/pcrypt.
  
  PER-CPU MEMORY ALLOCATOR
  M:    Tejun Heo <[email protected]>
- M:    Christoph Lameter <cl@linux-foundation.org>
+ M:    Christoph Lameter <cl@linux.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
  S:    Maintained
  F:    include/linux/percpu*.h
@@@ -9194,7 -9169,6 +9194,7 @@@ F:      include/linux/regmap.
  
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
  M:    Ohad Ben-Cohen <[email protected]>
 +M:    Bjorn Andersson <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc.git
  S:    Maintained
  F:    drivers/remoteproc/
@@@ -9203,7 -9177,6 +9203,7 @@@ F:      include/linux/remoteproc.
  
  REMOTE PROCESSOR MESSAGING (RPMSG) SUBSYSTEM
  M:    Ohad Ben-Cohen <[email protected]>
 +M:    Bjorn Andersson <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg.git
  S:    Maintained
  F:    drivers/rpmsg/
  S:    Maintained
  F:    drivers/staging/nvec/
  
 -STAGING - OLPC SECONDARY DISPLAY CONTROLLER (DCON)
 -M:    Jens Frederich <[email protected]>
 -M:    Daniel Drake <[email protected]>
 -M:    Jon Nettleton <[email protected]>
 -W:    http://wiki.laptop.org/go/DCON
 -S:    Maintained
 -F:    drivers/staging/olpc_dcon/
 -
 -STAGING - PARALLEL LCD/KEYPAD PANEL DRIVER
 -M:    Willy Tarreau <[email protected]>
 -S:    Odd Fixes
 -F:    drivers/staging/panel/
 -
  STAGING - REALTEK RTL8712U DRIVERS
  M:    Larry Finger <[email protected]>
  M:    Florian Schilhabel <[email protected]>.
@@@ -11140,8 -11126,8 +11140,8 @@@ M:   Jarkko Sakkinen <jarkko.sakkinen@lin
  R:    Jason Gunthorpe <[email protected]>
  W:    http://tpmdd.sourceforge.net
  L:    [email protected] (moderated for non-subscribers)
 -Q:    git git://github.com/PeterHuewe/linux-tpmdd.git
 -T:    git https://github.com/PeterHuewe/linux-tpmdd
 +Q:    https://patchwork.kernel.org/project/tpmdd-devel/list/
 +T:    git git://git.infradead.org/users/jjs/linux-tpmdd.git
  S:    Maintained
  F:    drivers/char/tpm/
  
@@@ -11296,7 -11282,6 +11296,6 @@@ F:   include/linux/cdrom.
  F:    include/uapi/linux/cdrom.h
  
  UNISYS S-PAR DRIVERS
- M:    Benjamin Romer <[email protected]>
  M:    David Kershner <[email protected]>
  L:    [email protected] (Unisys internal)
  S:    Supported
@@@ -11321,7 -11306,7 +11320,7 @@@ F:   include/linux/mtd/ubi.
  F:    include/uapi/mtd/ubi-user.h
  
  USB ACM DRIVER
 -M:    Oliver Neukum <o[email protected]>
 +M:    Oliver Neukum <o[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/usb/acm.txt
@@@ -11445,7 -11430,6 +11444,7 @@@ M:   Valentina Manea <valentina.manea.m@g
  M:    Shuah Khan <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/usb/usbip_protocol.txt
  F:    drivers/usb/usbip/
  F:    tools/usb/usbip/
  
@@@ -11936,12 -11920,6 +11935,12 @@@ M: David Härdeman <[email protected]
  S:    Maintained
  F:    drivers/media/rc/winbond-cir.c
  
 +WINSYSTEMS WS16C48 GPIO DRIVER
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpio/gpio-ws16c48.c
 +
  WIMAX STACK
  M:    Inaky Perez-Gonzalez <[email protected]>
  M:    [email protected]
diff --combined arch/arm64/mm/fault.c
index 0077674b2b380cbccf0a718a71f04dfc5207791e,97135b61b32aa759d96f54a2b8023211c4db7d9b..95df28bc875f3eafda13f348e7f319fdafe5cd41
@@@ -192,14 -192,6 +192,14 @@@ out
        return fault;
  }
  
 +static inline int permission_fault(unsigned int esr)
 +{
 +      unsigned int ec       = (esr & ESR_ELx_EC_MASK) >> ESR_ELx_EC_SHIFT;
 +      unsigned int fsc_type = esr & ESR_ELx_FSC_TYPE;
 +
 +      return (ec == ESR_ELx_EC_DABT_CUR && fsc_type == ESR_ELx_FSC_PERM);
 +}
 +
  static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
                                   struct pt_regs *regs)
  {
                mm_flags |= FAULT_FLAG_WRITE;
        }
  
 -      /*
 -       * PAN bit set implies the fault happened in kernel space, but not
 -       * in the arch's user access functions.
 -       */
 -      if (IS_ENABLED(CONFIG_ARM64_PAN) && (regs->pstate & PSR_PAN_BIT))
 -              goto no_context;
 +      if (permission_fault(esr) && (addr < USER_DS)) {
 +              if (get_fs() == KERNEL_DS)
 +                      die("Accessing user space memory with fs=KERNEL_DS", regs, esr);
 +
 +              if (!search_exception_tables(regs->pc))
 +                      die("Accessing user space memory outside uaccess.h routines", regs, esr);
 +      }
  
        /*
         * As per x86, we may deadlock here. However, since the kernel only
@@@ -304,7 -295,7 +304,7 @@@ retry
        up_read(&mm->mmap_sem);
  
        /*
-        * Handle the "normal" case first - VM_FAULT_MAJOR / VM_FAULT_MINOR
+        * Handle the "normal" case first - VM_FAULT_MAJOR
         */
        if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP |
                              VM_FAULT_BADACCESS))))
@@@ -577,16 -568,3 +577,16 @@@ void cpu_enable_pan(void *__unused
        config_sctlr_el1(SCTLR_EL1_SPAN, 0);
  }
  #endif /* CONFIG_ARM64_PAN */
 +
 +#ifdef CONFIG_ARM64_UAO
 +/*
 + * Kernel threads have fs=KERNEL_DS by default, and don't need to call
 + * set_fs(), devtmpfs in particular relies on this behaviour.
 + * We need to enable the feature at runtime (instead of adding it to
 + * PSR_MODE_EL1h) as the feature may not be implemented by the cpu.
 + */
 +void cpu_enable_uao(void *__unused)
 +{
 +      asm(SET_PSTATE_UAO(1));
 +}
 +#endif /* CONFIG_ARM64_UAO */
index 49fbfe8b0f24280ee3b596831346598d9e4c5a24,677b3f01deaa668aa80c25358a87bcde91a3a9a4..e3d01619d6b381b4562545e73f99499554d1002e
@@@ -51,7 -51,6 +51,7 @@@ static const char *const speed_names[] 
        [USB_SPEED_HIGH] = "high-speed",
        [USB_SPEED_WIRELESS] = "wireless",
        [USB_SPEED_SUPER] = "super-speed",
 +      [USB_SPEED_SUPER_PLUS] = "super-speed-plus",
  };
  
  const char *usb_speed_string(enum usb_device_speed speed)
@@@ -65,18 -64,15 +65,15 @@@ EXPORT_SYMBOL_GPL(usb_speed_string)
  enum usb_device_speed usb_get_maximum_speed(struct device *dev)
  {
        const char *maximum_speed;
-       int err;
-       int i;
+       int ret;
  
-       err = device_property_read_string(dev, "maximum-speed", &maximum_speed);
-       if (err < 0)
+       ret = device_property_read_string(dev, "maximum-speed", &maximum_speed);
+       if (ret < 0)
                return USB_SPEED_UNKNOWN;
  
-       for (i = 0; i < ARRAY_SIZE(speed_names); i++)
-               if (strcmp(maximum_speed, speed_names[i]) == 0)
-                       return i;
+       ret = match_string(speed_names, ARRAY_SIZE(speed_names), maximum_speed);
  
-       return USB_SPEED_UNKNOWN;
+       return (ret < 0) ? USB_SPEED_UNKNOWN : ret;
  }
  EXPORT_SYMBOL_GPL(usb_get_maximum_speed);
  
@@@ -110,13 -106,10 +107,10 @@@ static const char *const usb_dr_modes[
  
  static enum usb_dr_mode usb_get_dr_mode_from_string(const char *str)
  {
-       int i;
-       for (i = 0; i < ARRAY_SIZE(usb_dr_modes); i++)
-               if (!strcmp(usb_dr_modes[i], str))
-                       return i;
+       int ret;
  
-       return USB_DR_MODE_UNKNOWN;
+       ret = match_string(usb_dr_modes, ARRAY_SIZE(usb_dr_modes), str);
+       return (ret < 0) ? USB_DR_MODE_UNKNOWN : ret;
  }
  
  enum usb_dr_mode usb_get_dr_mode(struct device *dev)
diff --combined include/linux/sched.h
index bd242bed4abb56d03b02a84b011a1cbfb7333356,3284d07edec7837ac99641dfbd7e98ad95baf10b..084ed9fba62028eb7a9ec3214b3436f906eb31b2
@@@ -777,6 -777,7 +777,6 @@@ struct signal_struct 
  #endif
  #ifdef CONFIG_AUDIT
        unsigned audit_tty;
 -      unsigned audit_tty_log_passwd;
        struct tty_audit_buf *tty_audit_buf;
  #endif
  
@@@ -1791,8 -1792,8 +1791,8 @@@ struct task_struct 
         * time slack values; these are used to round up poll() and
         * select() etc timeout values. These are in nanoseconds.
         */
-       unsigned long timer_slack_ns;
-       unsigned long default_timer_slack_ns;
+       u64 timer_slack_ns;
+       u64 default_timer_slack_ns;
  
  #ifdef CONFIG_KASAN
        unsigned int kasan_depth;
This page took 0.191556 seconds and 4 git commands to generate.