1. 13 Jun, 2016 6 commits
    • Paul Gortmaker's avatar
      pinctrl: digicolor: make it explicitly non-modular · 546c6d79
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      drivers/pinctrl/Kconfig:config PINCTRL_DIGICOLOR
      drivers/pinctrl/Kconfig:        bool
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      We explicitly disallow a driver unbind, since that doesn't have a
      sensible use case anyway, and it allows us to drop the ".remove"
      code for non-modular drivers.
      
      Since module_platform_driver() uses the same init level priority as
      builtin_platform_driver() the init ordering remains unchanged with
      this commit.
      
      Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      546c6d79
    • Paul Gortmaker's avatar
      pinctrl: zynq: make it explicitly non-modular · 4c3deee9
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      config PINCTRL_ZYNQ
              bool "Pinctrl driver for Xilinx Zynq"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      Since module_platform_driver() uses the same init level priority as
      builtin_platform_driver() the init ordering remains unchanged with
      this commit.
      
      Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is already contained at the top of the file in the comments.
      
      Cc: Michal Simek <michal.simek@xilinx.com>
      Cc: Sören Brinkmann" <soren.brinkmann@xilinx.com>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      4c3deee9
    • Paul Gortmaker's avatar
      pinctrl: amd: make it explicitly non-modular · b8c2b10a
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      config PINCTRL_AMD
              bool "AMD GPIO pin control"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      We explicitly disallow a driver unbind, since that doesn't have a
      sensible use case anyway, and it allows us to drop the ".remove"
      code for non-modular drivers.
      
      Since module_platform_driver() uses the same init level priority as
      builtin_platform_driver() the init ordering remains unchanged with
      this commit.
      
      Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is already contained at the top of the file in the comments.
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-gpio@vger.kernel.org
      Cc: Ken Xue <Ken.Xue@amd.com>
      Cc: Jeff Wu <Jeff.Wu@amd.com>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      b8c2b10a
    • Paul Gortmaker's avatar
      pinctrl: lpc18xx: make it explicitly non-modular · 82359b0a
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      config PINCTRL_LPC18XX
              bool "NXP LPC18XX/43XX SCU pinctrl driver"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      We explicitly disallow a driver unbind, since that doesn't have a
      sensible use case anyway, and it allows us to drop the ".remove"
      code for non-modular drivers.
      
      Since module_platform_driver() uses the same init level priority as
      builtin_platform_driver() the init ordering remains unchanged with
      this commit.
      
      Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is already contained at the top of the file in the comments.
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Joachim Eastwood <manabian@gmail.com>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      82359b0a
    • Paul Gortmaker's avatar
      pinctrl: at91: make it explicitly non-modular · eaa864a1
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      drivers/pinctrl/Kconfig:config PINCTRL_AT91
      drivers/pinctrl/Kconfig:        bool "AT91 pinctrl driver"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      Since module_init was not being used in this driver, we don't need
      to be concerned with initcall ordering changes when removing it.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is already contained at the top of the file in the comments.
      
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      eaa864a1
    • Paul Gortmaker's avatar
      pinctrl: baytrail: make it explicitly non-modular · 360943a8
      Paul Gortmaker authored
      The Kconfig currently controlling compilation of this code is:
      
      config PINCTRL_BAYTRAIL
              bool "Intel Baytrail GPIO pin control"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      We explicitly disallow a driver unbind, since that doesn't have a
      sensible use case anyway, and it allows us to drop the ".remove"
      code for non-modular drivers.
      
      Since module_init() was already not in use in this driver, we don't
      have any concerns with init ordering changes here.
      
      Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      We also delete the MODULE_LICENSE tag etc. since all that information
      is already contained at the top of the file in the comments.
      
      Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
      Cc: linux-gpio@vger.kernel.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      360943a8
  2. 08 Jun, 2016 4 commits
  3. 31 May, 2016 29 commits
  4. 30 May, 2016 1 commit
    • Krzysztof Kozlowski's avatar
      pinctrl: samsung: Suppress unbinding to prevent theoretical attacks · a0ee2ac0
      Krzysztof Kozlowski authored
      Although unbinding a pinctrl driver requires root privileges but it
      still might be used theoretically in certain attacks (by triggering NULL
      pointer exception or memory corruption).
      
      Samsung pincontrol drivers are essential for system operation so their
      removal is not expected. They do not implement remove() driver callback
      and they are not buildable as modules.
      
      Suppression of the unbinding will prevent triggering NULL pointer
      exception like this (Odroid XU3):
      
        $ echo 13400000.pinctrl > /sys/bus/platform/drivers/samsung-pinctrl/unbind
        $ cat /sys/kernel/debug/gpio
      
        Unable to handle kernel NULL pointer dereference at virtual address 00000c44
        pgd = ec41c000
        [00000c44] *pgd=6d448835, *pte=00000000, *ppte=00000000
        Internal error: Oops: 17 [#1] PREEMPT SMP ARM
          (samsung_gpio_get) from [<c034f9a0>] (gpiolib_seq_show+0x1b0/0x26c)
          (gpiolib_seq_show) from [<c01fb8c0>] (seq_read+0x304/0x4b8)
          (seq_read) from [<c02dbc78>] (full_proxy_read+0x4c/0x64)
          (full_proxy_read) from [<c01d9fb0>] (__vfs_read+0x2c/0x110)
          (__vfs_read) from [<c01db400>] (vfs_read+0x8c/0x110)
          (vfs_read) from [<c01db4c4>] (SyS_read+0x40/0x8c)
          (SyS_read) from [<c01078c0>] (ret_fast_syscall+0x0/0x3c)
      Suggested-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Reviewed-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      a0ee2ac0