1. 16 Feb, 2015 1 commit
  2. 15 Feb, 2015 6 commits
    • Linus Torvalds's avatar
      Merge tag 'tty-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · a9724125
      Linus Torvalds authored
      Pull tty/serial driver patches from Greg KH:
       "Here's the big tty/serial driver update for 3.20-rc1.  Nothing huge
        here, just lots of driver updates and some core tty layer fixes as
        well.  All have been in linux-next with no reported issues"
      
      * tag 'tty-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (119 commits)
        serial: 8250: Fix UART_BUG_TXEN workaround
        serial: driver for ETRAX FS UART
        tty: remove unused variable sprop
        serial: of-serial: fetch line number from DT
        serial: samsung: earlycon support depends on CONFIG_SERIAL_SAMSUNG_CONSOLE
        tty/serial: serial8250_set_divisor() can be static
        tty/serial: Add Spreadtrum sc9836-uart driver support
        Documentation: DT: Add bindings for Spreadtrum SoC Platform
        serial: samsung: remove redundant interrupt enabling
        tty: Remove external interface for tty_set_termios()
        serial: omap: Fix RTS handling
        serial: 8250_omap: Use UPSTAT_AUTORTS for RTS handling
        serial: core: Rework hw-assisted flow control support
        tty/serial: 8250_early: Add support for PXA UARTs
        tty/serial: of_serial: add support for PXA/MMP uarts
        tty/serial: of_serial: add DT alias ID handling
        serial: 8250: Prevent concurrent updates to shadow registers
        serial: 8250: Use canary to restart console after suspend
        serial: 8250: Refactor XR17V35X divisor calculation
        serial: 8250: Refactor divisor programming
        ...
      a9724125
    • Linus Torvalds's avatar
      Merge tag 'staging-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 46f7b635
      Linus Torvalds authored
      Pull staging drivers patches from Greg KH:
       "Here's the big staging driver tree update for 3.20-rc1.
      
        Lots of little things in here, adding up to lots of overall cleanups.
        The IIO driver updates are also in here as they cross the staging tree
        boundry a lot.  I2O has moved into staging as well, as a plan to drop
        it from the tree eventually as that's a dead subsystem.
      
        All of this has been in linux-next with no reported issues for a
        while"
      
      * tag 'staging-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (740 commits)
        staging: lustre: lustre: libcfs: define symbols as static
        staging: rtl8712: Do coding style cleanup
        staging: lustre: make obd_updatemax_lock static
        staging: rtl8188eu: core: switch with redundant cases
        staging: rtl8188eu: odm: conditional setting with no effect
        staging: rtl8188eu: odm: condition with no effect
        staging: ft1000: fix braces warning
        staging: sm7xxfb: fix remaining CamelCase
        staging: sm7xxfb: fix CamelCase
        staging: rtl8723au: multiple condition with no effect - if identical to else
        staging: sm7xxfb: make smtc_scr_info static
        staging/lustre/mdc: Initialize req in mdc_enqueue for !it case
        staging/lustre/clio: Do not allow group locks with gid 0
        staging/lustre/llite: don't add to page cache upon failure
        staging/lustre/llite: Add exception entry check after radix_tree
        staging/lustre/libcfs: protect kkuc_groups from write access
        staging/lustre/fld: refer to MDT0 for fld lookup in some cases
        staging/lustre/llite: Solve a race to access lli_has_smd in read case
        staging/lustre/ptlrpc: hold rq_lock when modify rq_flags
        staging/lustre/lnet: portal spreading rotor should be unsigned
        ...
      46f7b635
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.20-rc1' of... · 9682ec96
      Linus Torvalds authored
      Merge tag 'driver-core-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core patches from Greg KH:
       "Really tiny set of patches for this kernel.  Nothing major, all
        described in the shortlog and have been in linux-next for a while"
      
      * tag 'driver-core-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        sysfs: fix warning when creating a sysfs group without attributes
        firmware_loader: handle timeout via wait_for_completion_interruptible_timeout()
        firmware_loader: abort request if wait_for_completion is interrupted
        firmware: Correct function name in comment
        device: Change dev_<level> logging functions to return void
        device: Fix dev_dbg_once macro
      9682ec96
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 4ba63072
      Linus Torvalds authored
      Pull char / misc patches from Greg KH:
       "Here's the big char/misc driver update for 3.20-rc1.
      
        Lots of little things in here, all described in the changelog.
        Nothing major or unusual, except maybe the binder selinux stuff, which
        was all acked by the proper selinux people and they thought it best to
        come through this tree.
      
        All of this has been in linux-next with no reported issues for a while"
      
      * tag 'char-misc-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (90 commits)
        coresight: fix function etm_writel_cp14() parameter order
        coresight-etm: remove check for unknown Kconfig macro
        coresight: fixing CPU hwid lookup in device tree
        coresight: remove the unnecessary function coresight_is_bit_set()
        coresight: fix the debug AMBA bus name
        coresight: remove the extra spaces
        coresight: fix the link between orphan connection and newly added device
        coresight: remove the unnecessary replicator property
        coresight: fix the replicator subtype value
        pdfdocs: Fix 'make pdfdocs' failure for 'uio-howto.tmpl'
        mcb: Fix error path of mcb_pci_probe
        virtio/console: verify device has config space
        ti-st: clean up data types (fix harmless memory corruption)
        mei: me: release hw from reset only during the reset flow
        mei: mask interrupt set bit on clean reset bit
        extcon: max77693: Constify struct regmap_config
        extcon: adc-jack: Release IIO channel on driver remove
        extcon: Remove duplicated include from extcon-class.c
        Drivers: hv: vmbus: hv_process_timer_expiration() can be static
        Drivers: hv: vmbus: serialize Offer and Rescind offer
        ...
      4ba63072
    • Linus Torvalds's avatar
      Merge tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e2987672
      Linus Torvalds authored
      Pull USB patches from Greg KH:
       "Here's the big pull request for the USB driver tree for 3.20-rc1.
      
        Nothing major happening here, just lots of gadget driver updates, new
        device ids, and a bunch of cleanups.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (299 commits)
        usb: musb: fix device hotplug behind hub
        usb: dwc2: Fix a bug in reading the endpoint directions from reg.
        staging: emxx_udc: fix the build error
        usb: Retry port status check on resume to work around RH bugs
        Revert "usb: Reset USB-3 devices on USB-3 link bounce"
        uhci-hub: use HUB_CHAR_*
        usb: kconfig: replace PPC_OF with PPC
        ehci-pci: disable for Intel MID platforms (update)
        usb: gadget: Kconfig: use bool instead of boolean
        usb: musb: blackfin: remove incorrect __exit_p()
        USB: fix use-after-free bug in usb_hcd_unlink_urb()
        ehci-pci: disable for Intel MID platforms
        usb: host: pci_quirks: joing string literals
        USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
        USB: usbfs: allow URBs to be reaped after disconnection
        cdc-acm: kill unnecessary messages
        cdc-acm: add sanity checks
        usb: phy: phy-generic: Fix USB PHY gpio reset
        usb: dwc2: fix USB core dependencies
        usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel()
        ...
      e2987672
    • Linus Torvalds's avatar
      Merge branch 'for-linus-v3.20' of git://git.infradead.org/linux-ubifs · 8c988ae7
      Linus Torvalds authored
      Pull UBI and UBIFS updates from Richard Weinberger:
       - cleanups and bug fixes all over UBI and UBIFS
       - block-mq support for UBI Block
       - UBI volumes can now be renamed while they are in use
       - security.* XATTR support for UBIFS
       - a maintainer update
      
      * 'for-linus-v3.20' of git://git.infradead.org/linux-ubifs:
        UBI: block: Fix checking for NULL instead of IS_ERR()
        UBI: block: Continue creating ubiblocks after an initialization error
        UBIFS: return -EINVAL if log head is empty
        UBI: Block: Explain usage of blk_rq_map_sg()
        UBI: fix soft lockup in ubi_check_volume()
        UBI: Fastmap: Care about the protection queue
        UBIFS: add a couple of extra asserts
        UBI: do propagate positive error codes up
        UBI: clean-up printing helpers
        UBI: extend UBI layer debug/messaging capabilities - cosmetics
        UBIFS: add ubifs_err() to print error reason
        UBIFS: Add security.* XATTR support for the UBIFS
        UBIFS: Add xattr support for symlinks
        UBI: Block: Add blk-mq support
        UBI: Add initial support for scatter gather
        UBI: rename_volumes: Use UBI_METAONLY
        UBI: Implement UBI_METAONLY
        Add myself as UBI co-maintainer
      8c988ae7
  3. 14 Feb, 2015 33 commits
    • Adrien Schildknecht's avatar
      mutex: remove unused field "name" in debug mode · d347efeb
      Adrien Schildknecht authored
      This field is unused and uninitialized since commit 9a11b49a
      ("[PATCH] lockdep: better lock debugging")
      Signed-off-by: default avatarAdrien Schildknecht <adrien+dev@schischi.me>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d347efeb
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux · c833e17e
      Linus Torvalds authored
      Pull ACCESS_ONCE() rule tightening from Christian Borntraeger:
       "Tighten rules for ACCESS_ONCE
      
        This series tightens the rules for ACCESS_ONCE to only work on scalar
        types.  It also contains the necessary fixups as indicated by build
        bots of linux-next.  Now everything is in place to prevent new
        non-scalar users of ACCESS_ONCE and we can continue to convert code to
        READ_ONCE/WRITE_ONCE"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux:
        kernel: Fix sparse warning for ACCESS_ONCE
        next: sh: Fix compile error
        kernel: tighten rules for ACCESS ONCE
        mm/gup: Replace ACCESS_ONCE with READ_ONCE
        x86/spinlock: Leftover conversion ACCESS_ONCE->READ_ONCE
        x86/xen/p2m: Replace ACCESS_ONCE with READ_ONCE
        ppc/hugetlbfs: Replace ACCESS_ONCE with READ_ONCE
        ppc/kvm: Replace ACCESS_ONCE with READ_ONCE
      c833e17e
    • Jesper Nilsson's avatar
      CRIS: Whitespace cleanup · 9987c19e
      Jesper Nilsson authored
      No functional change, just clean up the most obvious.
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      9987c19e
    • Michael S. Tsirkin's avatar
      CRIS: macro whitespace fixes in uaccess.h · 83f1588e
      Michael S. Tsirkin authored
      While working on arch/cris/include/asm/uaccess.h, I noticed
      that some macros within this header are made harder to read because they
      violate a coding style rule: space is missing after comma.
      
      Fix it up.
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      83f1588e
    • Michael S. Tsirkin's avatar
      CRIS: uaccess: fix sparse errors · 458e3192
      Michael S. Tsirkin authored
      virtio wants to read bitwise types from userspace using get_user.  At the
      moment this triggers sparse errors, since the value is passed through an
      integer.
      
      Fix that up using __force.
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      458e3192
    • Masanari Iida's avatar
      CRISv32: Remove unnecessary KERN_INFO from sync_serial · 10b30976
      Masanari Iida authored
      Remove unnecessary KERN_INFO in sync_serial.c
      Signed-off-by: default avatarMasanari Iida <standby24x7@gmail.com>
      Signed-off-by: default avatarJesper Nilsson <jesper.nilsson@axis.com>
      10b30976
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · fee5429e
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "Here is the crypto update for 3.20:
      
         - Added 192/256-bit key support to aesni GCM.
         - Added MIPS OCTEON MD5 support.
         - Fixed hwrng starvation and race conditions.
         - Added note that memzero_explicit is not a subsitute for memset.
         - Added user-space interface for crypto_rng.
         - Misc fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (71 commits)
        crypto: tcrypt - do not allocate iv on stack for aead speed tests
        crypto: testmgr - limit IV copy length in aead tests
        crypto: tcrypt - fix buflen reminder calculation
        crypto: testmgr - mark rfc4106(gcm(aes)) as fips_allowed
        crypto: caam - fix resource clean-up on error path for caam_jr_init
        crypto: caam - pair irq map and dispose in the same function
        crypto: ccp - terminate ccp_support array with empty element
        crypto: caam - remove unused local variable
        crypto: caam - remove dead code
        crypto: caam - don't emit ICV check failures to dmesg
        hwrng: virtio - drop extra empty line
        crypto: replace scatterwalk_sg_next with sg_next
        crypto: atmel - Free memory in error path
        crypto: doc - remove colons in comments
        crypto: seqiv - Ensure that IV size is at least 8 bytes
        crypto: cts - Weed out non-CBC algorithms
        MAINTAINERS: add linux-crypto to hw random
        crypto: cts - Remove bogus use of seqiv
        crypto: qat - don't need qat_auth_state struct
        crypto: algif_rng - fix sparse non static symbol warning
        ...
      fee5429e
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 83e047c1
      Linus Torvalds authored
      Merge fourth set of updates from Andrew Morton:
      
       - the rest of lib/
      
       - checkpatch updates
      
       - a few misc things
      
       - kasan: kernel address sanitizer
      
       - the rtc tree
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (108 commits)
        ARM: mvebu: enable Armada 38x RTC driver in mvebu_v7_defconfig
        ARM: mvebu: add Device Tree description of RTC on Armada 38x
        MAINTAINERS: add the RTC driver for the Armada38x
        drivers/rtc/rtc-armada38x: add a new RTC driver for recent mvebu SoCs
        rtc: armada38x: add the device tree binding documentation
        rtc: rtc-ab-b5ze-s3: add sub-minute alarm support
        rtc: add support for Abracon AB-RTCMC-32.768kHz-B5ZE-S3 I2C RTC chip
        of: add vendor prefix for Abracon Corporation
        drivers/rtc/rtc-rk808.c: fix rtc time reading issue
        drivers/rtc/rtc-isl12057.c: constify struct regmap_config
        drivers/rtc/rtc-at91sam9.c: constify struct regmap_config
        drivers/rtc/rtc-imxdi.c: add more known register bits
        drivers/rtc/rtc-imxdi.c: trivial clean up code
        ARM: mvebu: ISL12057 rtc chip can now wake up RN102, RN102 and RN2120
        rtc: rtc-isl12057: add isil,irq2-can-wakeup-machine property for in-tree users
        drivers/rtc/rtc-isl12057.c: add alarm support to Intersil ISL12057 RTC driver
        drivers/rtc/rtc-pcf2123.c: add support for devicetree
        kprobes: makes kprobes/enabled works correctly for optimized kprobes.
        kprobes: set kprobes_all_disarmed earlier to enable re-optimization.
        init: remove CONFIG_INIT_FALLBACK
        ...
      83e047c1
    • Gregory CLEMENT's avatar
      ARM: mvebu: enable Armada 38x RTC driver in mvebu_v7_defconfig · a3b30e72
      Gregory CLEMENT authored
      Now that the Armada 38x RTC driver has been pushed, let's enable it in
      mvebu_v7_defconfig.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Arnaud Ebalard <arno@natisbad.org>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3b30e72
    • Gregory CLEMENT's avatar
      ARM: mvebu: add Device Tree description of RTC on Armada 38x · a73c7305
      Gregory CLEMENT authored
      The Marvell Armada 38x SoCs contains an RTC which differs from the RTC
      used in the other mvebu SoCs until now.  This commit adds the Device Tree
      description of this interface at the SoC level.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Arnaud Ebalard <arno@natisbad.org>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a73c7305
    • Gregory CLEMENT's avatar
      MAINTAINERS: add the RTC driver for the Armada38x · c6a95dbe
      Gregory CLEMENT authored
      Put it in the mvebu entry.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Arnaud Ebalard <arno@natisbad.org>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c6a95dbe
    • Gregory CLEMENT's avatar
      drivers/rtc/rtc-armada38x: add a new RTC driver for recent mvebu SoCs · a3a42806
      Gregory CLEMENT authored
      The new mvebu SoCs come with a new RTC driver. This patch adds the
      support for this new IP which is currently found in the Armada 38x
      SoCs.
      
      This RTC provides two alarms, but only the first one is used in the
      driver. The RTC also allows using periodic interrupts.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Reviewed-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3a42806
    • Gregory CLEMENT's avatar
      rtc: armada38x: add the device tree binding documentation · bb624047
      Gregory CLEMENT authored
      The Marvell Armada 38x SoCs contains an RTC which differs from the RTC
      used in the other mvebu SoCs until now.  This forth version of the patch
      set adds support for this new IP and enable it in the Device Tree of the
      Armada 38x SoC.
      
      This patch (of 5):
      
      The Armada 38x SoCs come with a new RTC which differs from the one used in
      the other mvebu SoCs until now.  This patch describes the binding of this
      RTC.
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Cc: Arnaud Ebalard <arno@natisbad.org>
      Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
      Cc: Lior Amsalem <alior@marvell.com>
      Cc: Tawfik Bayouk <tawfik@marvell.com>
      Cc: Nadav Haklai <nadavh@marvell.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bb624047
    • Arnaud Ebalard's avatar
      rtc: rtc-ab-b5ze-s3: add sub-minute alarm support · c8a1d8a5
      Arnaud Ebalard authored
      Abracon AB-RTCMC-32.768kHz-B5ZE-S3 alarm is only accurate to the minute.
      For that reason, UIE mode is currently not supported by the driver.  But
      the device provides a watchdog timer which can be coupled with the alarm
      mechanism to extend support and provide sub-minute alarm capability.
      
      This patch implements that extension.  More precisely, it makes use of the
      watchdog timer for alarms which are less that four minutes in the future
      (with second accuracy) and use standard alarm mechanism for other alarms
      (with minute accuracy).
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <robherring2@gmail.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Kumar Gala <galak@codeaurora.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c8a1d8a5
    • Arnaud Ebalard's avatar
      rtc: add support for Abracon AB-RTCMC-32.768kHz-B5ZE-S3 I2C RTC chip · 0b2f6228
      Arnaud Ebalard authored
      This patch adds support for Abracon AB-RTCMC-32.768kHz-B5ZE-S3
      RTC/Calendar module w/ I2C interface.
      
      This support includes RTC time reading and setting, Alarm (1 minute
      accuracy) reading and setting, and battery low detection.  The device also
      supports frequency adjustment and two timers but those features are
      currently not implemented in this driver.  Due to alarm accuracy
      limitation (and current lack of timer support in the driver), UIE mode is
      not supported.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <robherring2@gmail.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Kumar Gala <galak@codeaurora.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0b2f6228
    • Arnaud Ebalard's avatar
      of: add vendor prefix for Abracon Corporation · 446810f2
      Arnaud Ebalard authored
      This series adds support for Abracon AB-RTCMC-32.768kHz-B5ZE-S3 I2C RTC
      chip. Unlike many RTC chips, it includes an internal oscillator which
      spares room on the PCB. It also has some interesting features, like
      battery low detection (which the driver in this series supports). The
      only small "limitation" (mainly due to what RTC subsystem expects from
      RTC chips) is the fact that its alarm is accurate to the second. This
      series provides a solution (described below) for that limitation using
      another mechanism of the chip.
      
      I decided to split support between three different patches for
      this v0:
      
      - Patch 1/3: it simply references Abracon Corporation in vendor-prefixes
        documentation file. As Abracon has no NASDAQ ticker symbol; I have
        decided to use "abcn" (I initially started my work w/ "ab" but later
        changed for "abcn" which looked more meaningful)
      - Patch 2/3: it adds initial support for the chip and provides the
        ability to read/write time and also read/write alarm. As the alarm
        the chip provides is accurate to the minute, the support provided
        by this patch also has this limitation (e.g. UIE mode is not
        supported).
      - Patch 3/3: the chip supports a watchdog timer which can be used to
        extend the alarm mechanism in patch 2/3 in order to provide support
        for alarms under one minute (e.g. support UIE mode). In practice,
        the logic I implemented is to use the watchdog timer for alarms which
        are at most 4 minutes in the future and use the common alarm mechanism
        for alarms which are set to larger values. With that additional patch
        the device fully passes the rtctest.c program.
      
      I decided to split the driver between two patches (2 and 3 of 3) in
      order to ease review: patch 2 should be pretty straightforward to read
      for someone familiar w/ RTC subsystem. Patch 3 only extends what is in
      patch 2 regarding alarms.
      
      This patch (of 3):
      
      Documentation/devicetree/bindings/vendor-prefixes.txt: add vendor prefix
      for Abracon Corporation
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Rob Herring <robherring2@gmail.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Kumar Gala <galak@codeaurora.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      446810f2
    • Chris Zhong's avatar
      drivers/rtc/rtc-rk808.c: fix rtc time reading issue · c412c603
      Chris Zhong authored
      After we set the GET_TIME bit, the rtc time can't be read immediately.  We
      should wait up to 31.25 us, about one cycle of 32khz.  Otherwise reading
      RTC time will return a old time.  If we clear the GET_TIME bit after
      setting, the time of i2c transfer is certainly more than 31.25us.
      
      Doug said:
      
      : I think we are safe.  At 400kHz (the max speed of this part) each bit can
      : be transferred no faster than 2.5us.  In order to do a valid i2c
      : transaction we need to _at least_ write the address of the device and the
      : data onto the bus, which is 16 bits.  16 * 2.5us = 40us.  That's above the
      : 31.25us
      
      [akpm@linux-foundation.org: tweak comment per review discussion]
      Signed-off-by: default avatarChris Zhong <zyw@rock-chips.com>
      Reviewed-by: default avatarDoug Anderson <dianders@chromium.org>
      Cc: Sonny Rao <sonnyrao@chromium.org>
      Cc: Heiko Stübner <heiko@sntech.de>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c412c603
    • Krzysztof Kozlowski's avatar
      drivers/rtc/rtc-isl12057.c: constify struct regmap_config · 1ef2816f
      Krzysztof Kozlowski authored
      The regmap_config struct may be const because it is not modified by the
      driver and regmap_init() accepts pointer to const.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1ef2816f
    • Krzysztof Kozlowski's avatar
      drivers/rtc/rtc-at91sam9.c: constify struct regmap_config · bddd8ddd
      Krzysztof Kozlowski authored
      The regmap_config struct may be const because it is not modified by the
      driver and regmap_init() accepts pointer to const.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bddd8ddd
    • Juergen Borleis's avatar
      drivers/rtc/rtc-imxdi.c: add more known register bits · 46edeffa
      Juergen Borleis authored
      Intended for monitoring and controlling the security features.  These bits
      are required to bring this unit back to live after a security violation
      event was detected.  The code to bring it back to live will follow after a
      vendor clearance.
      Signed-off-by: default avatarJuergen Borleis <jbe@pengutronix.de>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      46edeffa
    • Juergen Borleis's avatar
      drivers/rtc/rtc-imxdi.c: trivial clean up code · 6df17a65
      Juergen Borleis authored
      Signed-off-by: default avatarJuergen Borleis <jbe@pengutronix.de>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6df17a65
    • Arnaud Ebalard's avatar
      ARM: mvebu: ISL12057 rtc chip can now wake up RN102, RN102 and RN2120 · 1a67e256
      Arnaud Ebalard authored
      Now that alarm support for ISL12057 chip is available w/ the specific
      "isil,irq2-can-wakeup-machine" property, let's use that feature of the
      driver dedicated to NETGEAR ReadyNAS 102, 104 and 2120 specific routing of
      RTC Alarm IRQ#2 pin; on those devices, this pin is not connected to the
      SoC but to a PMIC, which allows the device to be powered up when RTC alarm
      rings.
      
      For that to work, the chip needs to be explicitly marked as a device
      wakeup source using this "isil,irq2-can-wakeup-machine" boolean property.
      This makes 'wakealarm' sysfs entry available to configure the alarm.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Darshana Padmadas <darshanapadmadas@gmail.com>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a67e256
    • Arnaud Ebalard's avatar
      rtc: rtc-isl12057: add isil,irq2-can-wakeup-machine property for in-tree users · 298ff012
      Arnaud Ebalard authored
      Current in-tree users of ISL12057 RTC chip (NETGEAR ReadyNAS 102, 104 and
      2120) do not have the IRQ#2 pin of the chip (associated w/ the Alarm1
      mechanism) connected to their SoC, but to a PMIC (TPS65251 FWIW).  This
      specific hardware configuration allows the NAS to wake up when the alarms
      rings.
      
      Recently introduced alarm support for ISL12057 relies on the provision of
      an "interrupts" property in system .dts file, which previous three users
      will never get.  For that reason, alarm support on those devices is not
      function.  To support this use case, this patch adds a new DT property for
      ISL12057 (isil,irq2-can-wakeup-machine) to indicate that the chip is
      capable of waking up the device using its IRQ#2 pin (even though it does
      not have its IRQ#2 pin connected directly to the SoC).
      
      This specific configuration was tested on a ReadyNAS 102 by setting an
      alarm, powering off the device and see it reboot as expected when the
      alarm rang w/:
      
        # echo `date '+%s' -d '+ 1 minutes'` > /sys/class/rtc/rtc0/wakealarm
        # shutdown -h now
      
      As a side note, the ISL12057 remains in the list of trivial devices,
      because the property is not per se required by the device to work but can
      help handle system w/ specific requirements.  In exchange, the new feature
      is described in details in a specific documentation file.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Darshana Padmadas <darshanapadmadas@gmail.com>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: Pawel Moll <pawel.moll@arm.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Cc: Kumar Gala <galak@codeaurora.org>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      298ff012
    • Arnaud Ebalard's avatar
      drivers/rtc/rtc-isl12057.c: add alarm support to Intersil ISL12057 RTC driver · fd71493d
      Arnaud Ebalard authored
      This patch adds alarm support to Intersil ISL12057 driver.  This allows to
      configure the chip to generate an interrupt when the alarm matches current
      time value.  Alarm can be programmed up to one month in the future and is
      accurate to the second.
      
      The patch was developed to support two different configurations: systems
      w/ and w/o RTC chip IRQ line connected to the main CPU.
      
      The latter is the one found on current 3 kernel users of the chip for
      which support was initially developed (Netgear ReadyNAS 102, 104 and 2120
      NAS).  On those devices, the IRQ#2 pin of the chip is not connected to the
      SoC but to a PMIC.  This allows setting an alarm, powering off the device
      and have it wake up when the alarm rings.  To support that configuration
      the driver does the following:
      
       1. it has alarm_irq_enable() function returns -ENOTTY when no IRQ
          is passed to the driver.
       2. it marks the device as a wakeup source in all cases (whether an
          IRQ is passed to the driver or not) to have 'wakealarm' sysfs
          entry created.
       3. it marks the device has not supporting UIE mode when no IRQ is
          passed to the driver (see the commmit message of c9f5c7e7)
      
      This specific configuration was tested on a ReadyNAS 102 by setting an
      alarm, powering off the device and see it reboot as expected when the
      alarm rang.
      
      The former configuration was tested on a Netgear ReadyNAS 102 after some
      soldering of the IRQ#2 pin of the RTC chip to a MPP line of the SoC (the
      one used usually handles the reset button).  The test was performed using
      a modified .dts file reflecting this change (see below) and rtc-test.c
      program available in Documentation/rtc.txt.  This test program ran as
      expected, which validates alarm supports, including interrupt support.
      
      As a side note, the ISL12057 remains in the list of trivial devices, i.e.
      no specific DT binding being added by this patch: i2c core automatically
      handles extraction of IRQ line info from .dts file.  For instance, if one
      wants to reference the interrupt line for the alarm in its .dts file,
      adding interrupt and interrupt-parent properties works as expected:
      
                isl12057: isl12057@68 {
                        compatible =3D "isil,isl12057";
                        interrupt-parent =3D <&gpio0>;
                        interrupts =3D <6 IRQ_TYPE_EDGE_FALLING>;
                        reg =3D <0x68>;
                };
      
      FWIW, if someone is looking for a way to test alarm support on a system on
      which the chip IRQ line has the ability to boot the system (e.g.  ReadyNAS
      102, 104, etc):
      
          # echo 0 > /sys/class/rtc/rtc0/wakealarm
          # echo `date '+%s' -d '+ 1 minutes'` > /sys/class/rtc/rtc0/wakealarm
          # shutdown -h now
      
      With the commands above, after a minute, the system comes back to life.
      Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Peter Huewe <peter.huewe@infineon.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fd71493d
    • Joshua Clayton's avatar
      drivers/rtc/rtc-pcf2123.c: add support for devicetree · 3fc70077
      Joshua Clayton authored
      Add compatible string "nxp,rtc-pcf2123"
      Document the binding
      Signed-off-by: default avatarJoshua Clayton <stillcompiling@gmail.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Grant Likely <grant.likely@linaro.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3fc70077
    • Wang Nan's avatar
      kprobes: makes kprobes/enabled works correctly for optimized kprobes. · 69d54b91
      Wang Nan authored
      debugfs/kprobes/enabled doesn't work correctly on optimized kprobes.
      Masami Hiramatsu has a test report on x86_64 platform:
      
      https://lkml.org/lkml/2015/1/19/274
      
      This patch forces it to unoptimize kprobe if kprobes_all_disarmed is set.
      It also checks the flag in unregistering path for skipping unneeded
      disarming process when kprobes globally disarmed.
      Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
      Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      69d54b91
    • Wang Nan's avatar
      kprobes: set kprobes_all_disarmed earlier to enable re-optimization. · 977ad481
      Wang Nan authored
      In original code, the probed instruction doesn't get optimized after
      
      echo 0 > /sys/kernel/debug/kprobes/enabled
      echo 1 > /sys/kernel/debug/kprobes/enabled
      
      This is because original code checks kprobes_all_disarmed in
      optimize_kprobe(), but this flag is turned off after calling that
      function.  Therefore, optimize_kprobe() will see kprobes_all_disarmed ==
      true and doesn't do the optimization.
      
      This patch simply turns off kprobes_all_disarmed earlier to enable
      optimization.
      Signed-off-by: default avatarWang Nan <wangnan0@huawei.com>
      Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      977ad481
    • Andy Lutomirski's avatar
      init: remove CONFIG_INIT_FALLBACK · 5125991c
      Andy Lutomirski authored
      CONFIG_INIT_FALLBACK adds config bloat without an obvious use case that
      makes it worth keeping around.  Delete it.
      Signed-off-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Chuck Ebbert <cebbert.lkml@gmail.com>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Cc: Rob Landley <rob@landley.net>
      Cc: Shuah Khan <shuah.kh@samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5125991c
    • Andrey Ryabinin's avatar
      kasan: enable instrumentation of global variables · bebf56a1
      Andrey Ryabinin authored
      This feature let us to detect accesses out of bounds of global variables.
      This will work as for globals in kernel image, so for globals in modules.
      Currently this won't work for symbols in user-specified sections (e.g.
      __init, __read_mostly, ...)
      
      The idea of this is simple.  Compiler increases each global variable by
      redzone size and add constructors invoking __asan_register_globals()
      function.  Information about global variable (address, size, size with
      redzone ...) passed to __asan_register_globals() so we could poison
      variable's redzone.
      
      This patch also forces module_alloc() to return 8*PAGE_SIZE aligned
      address making shadow memory handling (
      kasan_module_alloc()/kasan_module_free() ) more simple.  Such alignment
      guarantees that each shadow page backing modules address space correspond
      to only one module_alloc() allocation.
      Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Dmitry Chernenkov <dmitryc@google.com>
      Signed-off-by: default avatarAndrey Konovalov <adech.fo@gmail.com>
      Cc: Yuri Gribov <tetra2005@gmail.com>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bebf56a1
    • Andrey Ryabinin's avatar
      module: fix types of device tables aliases · 6301939d
      Andrey Ryabinin authored
      MODULE_DEVICE_TABLE() macro used to create aliases to device tables.
      Normally alias should have the same type as aliased symbol.
      
      Device tables are arrays, so they have 'struct type##_device_id[x]'
      types. Alias created by MODULE_DEVICE_TABLE() will have non-array type -
      	'struct type##_device_id'.
      
      This inconsistency confuses compiler, it could make a wrong assumption
      about variable's size which leads KASan to produce a false positive report
      about out of bounds access.
      
      For every global variable compiler calls __asan_register_globals() passing
      information about global variable (address, size, size with redzone, name
      ...) __asan_register_globals() poison symbols redzone to detect possible
      out of bounds accesses.
      
      When symbol has an alias __asan_register_globals() will be called as for
      symbol so for alias.  Compiler determines size of variable by size of
      variable's type.  Alias and symbol have the same address, so if alias have
      the wrong size part of memory that actually belongs to the symbol could be
      poisoned as redzone of alias symbol.
      
      By fixing type of alias symbol we will fix size of it, so
      __asan_register_globals() will not poison valid memory.
      Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Dmitry Chernenkov <dmitryc@google.com>
      Signed-off-by: default avatarAndrey Konovalov <adech.fo@gmail.com>
      Cc: Yuri Gribov <tetra2005@gmail.com>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6301939d
    • Andrey Ryabinin's avatar
      kernel: add support for .init_array.* constructors · 9ddf8252
      Andrey Ryabinin authored
      KASan uses constructors for initializing redzones for global variables.
      Globals instrumentation in GCC 4.9.2 produces constructors with priority
      (.init_array.00099)
      
      Currently kernel ignores such constructors.  Only constructors with
      default priority supported (.init_array)
      
      This patch adds support for constructors with priorities.  For kernel
      image we put pointers to constructors between __ctors_start/__ctors_end
      and do_ctors() will call them on start up.  For modules we merge
      .init_array.* sections into resulting .init_array.  Module code properly
      handles constructors in .init_array section.
      Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Dmitry Chernenkov <dmitryc@google.com>
      Signed-off-by: default avatarAndrey Konovalov <adech.fo@gmail.com>
      Cc: Yuri Gribov <tetra2005@gmail.com>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9ddf8252
    • Andrey Ryabinin's avatar
      mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() · cb9e3c29
      Andrey Ryabinin authored
      For instrumenting global variables KASan will shadow memory backing memory
      for modules.  So on module loading we will need to allocate memory for
      shadow and map it at address in shadow that corresponds to the address
      allocated in module_alloc().
      
      __vmalloc_node_range() could be used for this purpose, except it puts a
      guard hole after allocated area.  Guard hole in shadow memory should be a
      problem because at some future point we might need to have a shadow memory
      at address occupied by guard hole.  So we could fail to allocate shadow
      for module_alloc().
      
      Now we have VM_NO_GUARD flag disabling guard page, so we need to pass into
      __vmalloc_node_range().  Add new parameter 'vm_flags' to
      __vmalloc_node_range() function.
      Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Dmitry Chernenkov <dmitryc@google.com>
      Signed-off-by: default avatarAndrey Konovalov <adech.fo@gmail.com>
      Cc: Yuri Gribov <tetra2005@gmail.com>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb9e3c29
    • Andrey Ryabinin's avatar
      mm: vmalloc: add flag preventing guard hole allocation · 71394fe5
      Andrey Ryabinin authored
      For instrumenting global variables KASan will shadow memory backing memory
      for modules.  So on module loading we will need to allocate memory for
      shadow and map it at address in shadow that corresponds to the address
      allocated in module_alloc().
      
      __vmalloc_node_range() could be used for this purpose, except it puts a
      guard hole after allocated area.  Guard hole in shadow memory should be a
      problem because at some future point we might need to have a shadow memory
      at address occupied by guard hole.  So we could fail to allocate shadow
      for module_alloc().
      
      Add a new vm_struct flag 'VM_NO_GUARD' indicating that vm area doesn't
      have a guard hole.
      Signed-off-by: default avatarAndrey Ryabinin <a.ryabinin@samsung.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Konstantin Serebryany <kcc@google.com>
      Cc: Dmitry Chernenkov <dmitryc@google.com>
      Signed-off-by: default avatarAndrey Konovalov <adech.fo@gmail.com>
      Cc: Yuri Gribov <tetra2005@gmail.com>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      71394fe5