1. 22 Jan, 2016 1 commit
    • Gavin Guo's avatar
      sched/numa: Fix use-after-free bug in the task_numa_compare · 1dff76b9
      Gavin Guo authored
      The following message can be observed on the Ubuntu v3.13.0-65 with KASan
      backported:
      
        ==================================================================
        BUG: KASan: use after free in task_numa_find_cpu+0x64c/0x890 at addr ffff880dd393ecd8
        Read of size 8 by task qemu-system-x86/3998900
        =============================================================================
        BUG kmalloc-128 (Tainted: G    B        ): kasan: bad access detected
        -----------------------------------------------------------------------------
      
        INFO: Allocated in task_numa_fault+0xc1b/0xed0 age=41980 cpu=18 pid=3998890
      	__slab_alloc+0x4f8/0x560
      	__kmalloc+0x1eb/0x280
      	task_numa_fault+0xc1b/0xed0
      	do_numa_page+0x192/0x200
      	handle_mm_fault+0x808/0x1160
      	__do_page_fault+0x218/0x750
      	do_page_fault+0x1a/0x70
      	page_fault+0x28/0x30
      	SyS_poll+0x66/0x1a0
      	system_call_fastpath+0x1a/0x1f
        INFO: Freed in task_numa_free+0x1d2/0x200 age=62 cpu=18 pid=0
      	__slab_free+0x2ab/0x3f0
      	kfree+0x161/0x170
      	task_numa_free+0x1d2/0x200
      	finish_task_switch+0x1d2/0x210
      	__schedule+0x5d4/0xc60
      	schedule_preempt_disabled+0x40/0xc0
      	cpu_startup_entry+0x2da/0x340
      	start_secondary+0x28f/0x360
        Call Trace:
         [<ffffffff81a6ce35>] dump_stack+0x45/0x56
         [<ffffffff81244aed>] print_trailer+0xfd/0x170
         [<ffffffff8124ac36>] object_err+0x36/0x40
         [<ffffffff8124cbf9>] kasan_report_error+0x1e9/0x3a0
         [<ffffffff8124d260>] kasan_report+0x40/0x50
         [<ffffffff810dda7c>] ? task_numa_find_cpu+0x64c/0x890
         [<ffffffff8124bee9>] __asan_load8+0x69/0xa0
         [<ffffffff814f5c38>] ? find_next_bit+0xd8/0x120
         [<ffffffff810dda7c>] task_numa_find_cpu+0x64c/0x890
         [<ffffffff810de16c>] task_numa_migrate+0x4ac/0x7b0
         [<ffffffff810de523>] numa_migrate_preferred+0xb3/0xc0
         [<ffffffff810e0b88>] task_numa_fault+0xb88/0xed0
         [<ffffffff8120ef02>] do_numa_page+0x192/0x200
         [<ffffffff81211038>] handle_mm_fault+0x808/0x1160
         [<ffffffff810d7dbd>] ? sched_clock_cpu+0x10d/0x160
         [<ffffffff81068c52>] ? native_load_tls+0x82/0xa0
         [<ffffffff81a7bd68>] __do_page_fault+0x218/0x750
         [<ffffffff810c2186>] ? hrtimer_try_to_cancel+0x76/0x160
         [<ffffffff81a6f5e7>] ? schedule_hrtimeout_range_clock.part.24+0xf7/0x1c0
         [<ffffffff81a7c2ba>] do_page_fault+0x1a/0x70
         [<ffffffff81a772e8>] page_fault+0x28/0x30
         [<ffffffff8128cbd4>] ? do_sys_poll+0x1c4/0x6d0
         [<ffffffff810e64f6>] ? enqueue_task_fair+0x4b6/0xaa0
         [<ffffffff810233c9>] ? sched_clock+0x9/0x10
         [<ffffffff810cf70a>] ? resched_task+0x7a/0xc0
         [<ffffffff810d0663>] ? check_preempt_curr+0xb3/0x130
         [<ffffffff8128b5c0>] ? poll_select_copy_remaining+0x170/0x170
         [<ffffffff810d3bc0>] ? wake_up_state+0x10/0x20
         [<ffffffff8112a28f>] ? drop_futex_key_refs.isra.14+0x1f/0x90
         [<ffffffff8112d40e>] ? futex_requeue+0x3de/0xba0
         [<ffffffff8112e49e>] ? do_futex+0xbe/0x8f0
         [<ffffffff81022c89>] ? read_tsc+0x9/0x20
         [<ffffffff8111bd9d>] ? ktime_get_ts+0x12d/0x170
         [<ffffffff8108f699>] ? timespec_add_safe+0x59/0xe0
         [<ffffffff8128d1f6>] SyS_poll+0x66/0x1a0
         [<ffffffff81a830dd>] system_call_fastpath+0x1a/0x1f
      
      As commit 1effd9f1 ("sched/numa: Fix unsafe get_task_struct() in
      task_numa_assign()") points out, the rcu_read_lock() cannot protect the
      task_struct from being freed in the finish_task_switch(). And the bug
      happens in the process of calculation of imp which requires the access of
      p->numa_faults being freed in the following path:
      
      do_exit()
              current->flags |= PF_EXITING;
          release_task()
              ~~delayed_put_task_struct()~~
          schedule()
          ...
          ...
      rq->curr = next;
          context_switch()
              finish_task_switch()
                  put_task_struct()
                      __put_task_struct()
      		    task_numa_free()
      
      The fix here to get_task_struct() early before end of dst_rq->lock to
      protect the calculation process and also put_task_struct() in the
      corresponding point if finally the dst_rq->curr somehow cannot be
      assigned.
      
      Additional credit to Liang Chen who helped fix the error logic and add the
      put_task_struct() to the place it missed.
      Signed-off-by: default avatarGavin Guo <gavin.guo@canonical.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: jay.vosburgh@canonical.com
      Cc: liang.chen@canonical.com
      Link: http://lkml.kernel.org/r/1453264618-17645-1-git-send-email-gavin.guo@canonical.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1dff76b9
  2. 19 Jan, 2016 1 commit
  3. 14 Jan, 2016 38 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 10a0c0f0
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Misc changes:
         - fix lguest bug
         - fix /proc/meminfo output on certain configs
         - fix pvclock bug
         - fix reboot on certain iMacs by adding new reboot quirk
         - fix bootup crash
         - fix FPU boot line option parsing
         - add more x86 self-tests
         - small cleanups, documentation improvements, etc"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu/amd: Remove an unneeded condition in srat_detect_node()
        x86/vdso/pvclock: Protect STABLE check with the seqcount
        x86/mm: Improve switch_mm() barrier comments
        selftests/x86: Test __kernel_sigreturn and __kernel_rt_sigreturn
        x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[]
        lguest: Map switcher text R/O
        x86/boot: Hide local labels in verify_cpu()
        x86/fpu: Disable AVX when eagerfpu is off
        x86/fpu: Disable MPX when eagerfpu is off
        x86/fpu: Disable XGETBV1 when no XSAVE
        x86/fpu: Fix early FPU command-line parsing
        x86/mm: Use PAGE_ALIGNED instead of IS_ALIGNED
        selftests/x86: Disable the ldt_gdt_64 test for now
        x86/mm/pat: Make split_page_count() check for empty levels to fix /proc/meminfo output
        x86/boot: Double BOOT_HEAP_SIZE to 64KB
        x86/mm: Add barriers and document switch_mm()-vs-flush synchronization
      10a0c0f0
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dcd1bfd5
      Linus Torvalds authored
      Pull timer fixes from Ingo Molnar:
       "Three clocksource driver fixes"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/vt8500: Increase the minimum delta
        clocksource/drivers/fsl_ftm_timer: Fix CLKSRC_MMIO dependency
        clocksource/drivers: Fix dependencies for !HAS_IOMEM archs
      dcd1bfd5
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 747a9b0a
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Tooling fixes, the biggest patch is one that decouples the kernel's
        list.h from tooling list.h"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        perf tools: Fallback to srcdir/Documentation/tips.txt
        perf ui/tui: Print helpline message as is
        perf tools: Set and pass DOCDIR to builtin-report.c
        perf tools: Add file_only config option to strlist
        perf tools: Add more usage tips
        perf record: Add --buildid-all option
        tools subcmd: Add missing NORETURN define for parse-options.h
        tools: Fix formatting of the "make -C tools" help message
        tools: Make list.h self-sufficient
        perf tools: Fix mmap2 event allocation in synthesize code
        perf stat: Fix recort_usage typo
        perf test: Reset err after using it hold errcode in hist testcases
        perf test: Fix false TEST_OK result for 'perf test hist'
        tools build: Add BPF feature check to test-all
        perf bpf: Fix build breakage due to libbpf
        tools: Move Makefile.arch from perf/config to tools/scripts
        perf tools: Fix PowerPC native building
        perf tools: Fix phony build target for build-test
        perf tools: Add -lutil in python lib list for broken python-config
        perf tools: Add missing sources to perf's MANIFEST
        ...
      747a9b0a
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 32250e4a
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Quite some driver updates:
         - piix4 can now handle multiplexed adapters
         - brcmstb, xlr, eg20t, designware drivers support more SoCs
         - emev2 gained i2c slave support
         - img-scb and rcar got bigger refactoring to remove issues
         - lots of common driver updates
      
        i2c core changes:
         - new quirk flag when an adapter does not support clock stretching,
           so clients can be configured to avoid that if possible
         - added a helper function to retrieve timing parameters from firmware
           (with rcar being the first user)
         - "multi-master" DT binding added so drivers can adapt to this
           setting (like disabling PM to keep arbitration working)
         - RuntimePM for the logical adapter device is now always enabled by
           the core to ensure propagation from childs to the parent (the HW
           device)
         - new macro builtin_i2c_driver to reduce boilerplate"
      
      * 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (70 commits)
        i2c: create builtin_i2c_driver to avoid registration boilerplate
        i2c: imx: fix i2c resource leak with dma transfer
        dt-bindings: i2c: eeprom: add another EEPROM device
        dt-bindings: move I2C eeprom descriptions to the proper file
        i2c: designware: Do not require clock when SSCN and FFCN are provided
        DT: i2c: trivial-devices: Add Epson RX8010 and MPL3115
        i2c: s3c2410: remove superfluous runtime PM calls
        i2c: always enable RuntimePM for the adapter device
        i2c: designware: retry transfer on transient failure
        i2c: ibm_iic: rename i2c_timings struct due to clash with generic version
        i2c: designware: Add support for AMD Seattle I2C
        i2c: imx: Remove unneeded comments
        i2c: st: use to_platform_device()
        i2c: designware: use to_pci_dev()
        i2c: brcmstb: Adding support for CM and DSL SoCs
        i2c: mediatek: fix i2c multi transfer issue in high speed mode
        i2c: imx: improve code readability
        i2c: imx: Improve message log when DMA is not used
        i2c: imx: add runtime pm support to improve the performance
        i2c: imx: init bus recovery info before adding i2c adapter
        ...
      32250e4a
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 5339f9d4
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
      
       - Rework and export the changeset API to make it available to users
         other than DT overlays
      
       - ARM secure devices binding
      
       - OCTEON USB binding
      
       - Clean-up of various SRAM binding docs
      
       - Various other binding doc updates
      
      * tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (21 commits)
        drivers/of: Export OF changeset functions
        Fix documentation for adp1653 DT
        ARM: psci: Fix indentation in DT bindings
        of/platform: export of_default_bus_match_table
        of/unittest: Show broken behaviour in the platform bus
        of: fix declaration of of_io_request_and_map
        of/address: replace printk(KERN_ERR ...) with pr_err(...)
        of/irq: optimize device node matching loop in of_irq_init()
        dt-bindings: tda998x: Document the required 'port' node.
        net/macb: bindings doc: Merge cdns-emac to macb
        dt-bindings: Misc fix for the ATH79 DDR controllers
        dt-bindings: Misc fix for the ATH79 MISC interrupt controllers
        Documentation: dt: Add bindings for Secure-only devices
        dt-bindings: ARM: add arm,cortex-a72 compatible string
        ASoC: Atmel: ClassD: add GCK's parent clock in DT binding
        DT: add Olimex to vendor prefixes
        Documentation: fsl-quadspi: Add fsl,ls1021-qspi compatible string
        Documentation/devicetree: document OCTEON USB bindings
        usb: misc: usb3503: Describe better how to bind clock to the hub
        dt-bindings: Consolidate SRAM bindings from all vendors
        ...
      5339f9d4
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · cf8d7e38
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Device Support:
         - Add support for s2mps15; sec-core
         - Add support for Lewisburg; lpc_ich
         - Add support for cs47l24 and wm1831; arizona
      
        New Functionality:
         - Allow user to select syscon register width; syscon
      
        Fix-ups:
         - Lots of Checkpatch fixes
         - Rename -pmic/-regulator; s2mps11
         - Build driver components into a single module; wm8994-*
         - Better handing of IRQ during suspend/resume; as3722
         - Constify things; da903x
         - Remove unused code; ab8500-core
         - Improve error handing; qcom_rpm
         - Simplify code: wm831x-otp, sta2x11-mfd
         - Improve locking; cros_ec_spi
         - Fix incorrect DT binding filename reference; arizona, palmas,
           snps-dwapb-gpio, wm8994
      
        Bug Fixes:
         - Fix broken SYSFS 'show ID' call; wm831x-otp
         - Protect reads from non-existent registers; qcom-spmi-pmic
         - Repair build warnings; as3722
         - Fix IRQ request ordering; arizona-irq
         - Ensure return value is boolean; ucb1x00-core, tps65010, tc6393xb,
           htc-egpio, dm355evm_msp, asic3"
      
      * tag 'mfd-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (58 commits)
        mfd: davinci_voicecodec: Remove pointless 'out of memory' error message
        mfd: da9052-irq: Fix trivial 'space before comma' error
        mfd: da9052-i2c: Fix tabbing/whitespace issue
        mfd: da903x: Fix white space and split string issues
        mfd: cs5535-mfd: Add missing line spacing and make local array static
        mfd: cros_ec_spi: Repair comparison ordering issue
        mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue.
        mfd: asic3: Fix a plethora of Checkpatch errors and warnings
        mfd: as3711: Repair OOM and 'line over 80 chars' formatting warnings
        mfd: arizona-i2c: Add blank line formatting after declaration
        mfd: arizona-core: msleep() is unreliable for anything <20ms use usleep_range() instead
        mfd: adp5520: Some trivial 'no space before tab' fixes
        mfd: ab8500-sysctrl: Fix Constify, printk => pr_info and formatting issues
        mfd: ab8500-gpadc: Squash a whole bunch of Checkpatch warnings and one error
        mfd: ab8500-debugfs: Clean-up non-conforming commenting and print formatting
        mfd: ab8500-core: Fix many warnings reported by Checkpatch
        mfd: ab2100-otp: Remove pointless 'out of memory' error message
        mfd: ab3100-core.c: Fix multiple warnings reported by Checkpatch
        mfd: aat2870-core: Remove unnecessary 'out of memory' message
        mfd: 88pm860x-core: Fix commenting and declaration spacing
        ...
      cf8d7e38
    • Linus Torvalds's avatar
      Merge tag 'for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 5c43019f
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "I have mostly fixes in the power-supply tree for the 4.5 kernel.  I
        should mention, that the top-most commit has not been in next, but
        it's a fix changing only a single register offset.
      
        Summary:
      
         - uncouple CONFIG_POWER_RESET from CONFIG_POWER_SUPPLY
      
         - misc fixes"
      
      * tag 'for-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        power: bq27xxx_battery: Fix bq27541 AveragePower register address
        power: test_power: correctly handle empty writes
        power: generic-adc-battery: use to_delayed_work
        power: isp1704_charger: Fix isp1704_write() definition
        power: bq27xxx: fix register numbers of bq27500
        power: bq27xxx: fix reading for bq27000 and bq27010
        power: Fix unmet dependency on POWER_SUPPLY by POWER_RESET by uncoupling them
        power: bq27xxx_battery: Reorganize I2C into a module
        power: bq27xxx: don't fill system log by missing battery
        power: max8903_charger: set IRQF_ONESHOT if no primary handler is specified
        power/reset: at91-reset: add missing of_node_put
        power: ds2782_battery: constify ds278x_battery_ops structure
        power: bq2415x_charger: Delete unnecessary checks before the function call "of_node_put"
      5c43019f
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · c25949d4
      Linus Torvalds authored
      Pull HSI updates from Sebastian Reichel:
       "Misc fixes"
      
      * tag 'hsi-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: omap_ssi_port: fix handling of_get_named_gpio result
        HSI: omap_ssi: fix handling ida_simple_get result
        HSI: Remove struct hsi_client private fields from kernel-doc
      c25949d4
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · b14bf630
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
        Fix-ups:
         - Take heed of GPIO default-on requests; gpio_backlight
         - Enable DT probing; tps65217_bl
      
        Bug Fixes:
         - Free resources in error path; pwm_bl
         - Fix uninitialised variable warning; adp8860_bl, adp8870_bl
         - Protect unconditional DT look-ups from non-DT platforms; pwm_bl
         - Fix backlight flicker; pwm_bl
      
      * tag 'backlight-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: pwm_bl: Free PWM requested by legacy API on error path
        backlight: adp8860: Fix another uninitialized variable use
        backlight: gpio-backlight: Use default-on on GPIO request
        backlight: pwm_bl: Fix broken PWM backlight for non-dt platforms
        backlight: tps65217_bl: Add MODULE_DEVICE_TABLE
        backlight: pwm_bl: Avoid backlight flicker when probed from DT
        backlight: adp88x0: Fix uninitialized variable use
      b14bf630
    • Dan Carpenter's avatar
      x86/cpu/amd: Remove an unneeded condition in srat_detect_node() · 7030a7e9
      Dan Carpenter authored
      Originally we calculated ht_nodeid as "ht_nodeid = apicid -
      boot_cpu_id;" so presumably it could be negative.
      
      But after commit:
      
        01aaea1a ('x86: introduce initial apicid')
      
      we use c->initial_apicid which is an unsigned short and thus always >= 0.
      
      It causes a static checker warning to test for impossible
      conditions so let's remove it.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Hector Marco-Gisbert <hecmargi@upv.es>
      Cc: Huang Rui <ray.huang@amd.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      Link: http://lkml.kernel.org/r/20160113123940.GE19993@mwandaSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      7030a7e9
    • Lee Jones's avatar
      mfd: davinci_voicecodec: Remove pointless 'out of memory' error message · 9fb41166
      Lee Jones authored
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!davinci_vc) {
      +               dev_dbg(&pdev->dev,
      
      total: 0 errors, 1 warnings, 154 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      9fb41166
    • Lee Jones's avatar
      mfd: da9052-irq: Fix trivial 'space before comma' error · 997eea46
      Lee Jones authored
      ERROR: space prohibited before that ',' (ctx:WxW)
      +       da9052_free_irq(da9052, DA9052_IRQ_ADC_EOM , da9052);
      
      total: 1 errors, 0 warnings, 290 lines checked
      
      Cc: Support Opensource <support.opensource@diasemi.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      997eea46
    • Lee Jones's avatar
      mfd: da9052-i2c: Fix tabbing/whitespace issue · 5b7b2ac1
      Lee Jones authored
      WARNING: suspect code indent for conditional statements (8, 24)
      +       if (!i2c_safe_reg(reg))
      +                       return regmap_read(da9052->regmap,
      
      total: 0 errors, 1 warnings, 226 lines checked
      
      Cc: Support Opensource <support.opensource@diasemi.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      5b7b2ac1
    • Lee Jones's avatar
      mfd: da903x: Fix white space and split string issues · 8b277578
      Lee Jones authored
      While we're at it, let's also match the MODULE_LICENSE with the header.
      
      WARNING: please, no space before tabs
      + * ^IMike Rapoport <mike@compulab.co.il>$
      
      WARNING: please, no space before tabs
      + * ^IEric Miao <eric.miao@marvell.com>$
      
      WARNING: quoted string split across lines
      +MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>"
      +             "Mike Rapoport <mike@compulab.co.il>");
      
      total: 0 errors, 3 warnings, 574 lines checked
      
      Cc: Support Opensource <support.opensource@diasemi.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      8b277578
    • Lee Jones's avatar
      mfd: cs5535-mfd: Add missing line spacing and make local array static · 740c1989
      Lee Jones authored
      WARNING: Missing a blank line after declarations
      +       struct resource *res;
      +       res = platform_get_resource(pdev, IORESOURCE_IO, 0);
      
      WARNING: char * array declaration might be better as static const
      +       const char *acpi_clones[] = { "olpc-xo1-pm-acpi", "olpc-xo1-sci-acpi" };
      
      total: 0 errors, 2 warnings, 192 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      740c1989
    • Lee Jones's avatar
      mfd: cros_ec_spi: Repair comparison ordering issue · 8827a642
      Lee Jones authored
      WARNING: Comparisons should place the constant on the right side of the test
      +       BUG_ON(EC_MSG_PREAMBLE_COUNT > ec_dev->din_size);
      
      WARNING: Comparisons should place the constant on the right side of the test
      +       BUG_ON(EC_MSG_PREAMBLE_COUNT > ec_dev->din_size);
      
      total: 0 errors, 2 warnings, 731 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      8827a642
    • Lee Jones's avatar
      mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue. · 2756db6c
      Lee Jones authored
      ERROR: code indent should use tabs where possible
      + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$
      
      WARNING: please, no space before tabs
      + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$
      
      WARNING: please, no spaces at the start of a line
      + ^Iec_dev = devm_kzalloc(dev, sizeof(*ec_dev), GFP_KERNEL);$
      
      total: 1 errors, 2 warnings, 366 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      2756db6c
    • Lee Jones's avatar
      mfd: asic3: Fix a plethora of Checkpatch errors and warnings · d43c4290
      Lee Jones authored
      ERROR: Macros with complex values should be enclosed in parentheses
      +#define INIT_CDEX(_name, _rate)        \
      +       [ASIC3_CLOCK_##_name] = {               \
      +               .cdex = CLOCK_CDEX_##_name,     \
      +               .rate = _rate,                  \
      +       }
      
      WARNING: line over 80 characters
      +                                                           ASIC3_GPIO_INT_STATUS);
      
      WARNING: void function return statements are not generally useful
      +       return;
      +}
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +       msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +               msleep(1);
      WARNING: line over 80 characters
      +               asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) +
      
      WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then p
      r_err(...  to printk(KERN_ERR ...
      +               printk(KERN_ERR "kzalloc failed\n");
      
      WARNING: Possible unnecessary 'out of memory' message
      +       if (asic == NULL) {
      +               printk(KERN_ERR "kzalloc failed\n");
      
      WARNING: Missing a blank line after declarations
      +       int retval = 0;
      +       retval = platform_driver_probe(&asic3_device_driver, asic3_probe);
      
      total: 1 errors, 13 warnings, 1081 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      d43c4290
    • Lee Jones's avatar
      mfd: as3711: Repair OOM and 'line over 80 chars' formatting warnings · ae487ae2
      Lee Jones authored
      WARNING: Possible unnecessary 'out of memory' message
      +               if (!pdata) {
      +                       dev_err(&client->dev, "Failed to allocate pdata\n");
      
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!as3711) {
      +               dev_err(&client->dev, "Memory allocation failed\n");
      
      WARNING: line over 80 characters
      +               dev_err(&client->dev, "regmap initialization failed: %d\n", ret);
      
      WARNING: line over 80 characters
      +       /* We can reuse as3711_subdevs[], it will be copied in mfd_add_devices() */
      
      WARNING: line over 80 characters
      +               as3711_subdevs[AS3711_REGULATOR].platform_data = &pdata->regulator;
      
      WARNING: line over 80 characters
      +               as3711_subdevs[AS3711_REGULATOR].pdata_size = sizeof(pdata->regulator);
      
      WARNING: line over 80 characters
      +               as3711_subdevs[AS3711_BACKLIGHT].platform_data = &pdata->backlight;
      
      WARNING: line over 80 characters
      +               as3711_subdevs[AS3711_BACKLIGHT].pdata_size = sizeof(pdata->backlight);
      
      total: 0 errors, 8 warnings, 236 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      ae487ae2
    • Lee Jones's avatar
      mfd: arizona-i2c: Add blank line formatting after declaration · 9f6e872a
      Lee Jones authored
      WARNING: Missing a blank line after declarations
      +       struct arizona *arizona = dev_get_drvdata(&i2c->dev);
      +       arizona_dev_exit(arizona);
      
      total: 0 errors, 1 warnings, 120 lines checked
      
      Cc: patches@opensource.wolfsonmicro.com
      Acked-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      9f6e872a
    • Lee Jones's avatar
      mfd: arizona-core: msleep() is unreliable for anything <20ms use usleep_range() instead · b79a980f
      Lee Jones authored
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +               msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +                       msleep(5);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +               msleep(1);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +               msleep(1);
      
      total: 0 errors, 4 warnings, 1407 lines checked
      
      Cc: patches@opensource.wolfsonmicro.com
      Acked-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      b79a980f
    • Lee Jones's avatar
      mfd: adp5520: Some trivial 'no space before tab' fixes · 3103d44e
      Lee Jones authored
      WARNING: please, no space before tabs
      + * ^IMike Rapoport <mike@compulab.co.il>$
      
      WARNING: please, no space before tabs
      + * ^IEric Miao <eric.miao@marvell.com>$
      
      WARNING: please, no space before tabs
      +^I.id_table ^I= adp5520_id,$
      
      total: 0 errors, 3 warnings, 365 lines checked
      
      Cc: Michael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      3103d44e
    • Lee Jones's avatar
      mfd: ab8500-sysctrl: Fix Constify, printk => pr_info and formatting issues · 63b4fd75
      Lee Jones authored
      WARNING: char * array declaration might be better as static const
      +       static char *pss[] = {"ab8500_ac", "pm2301", "ab8500_usb"};
      
      WARNING: Prefer [subsystem eg: netdev]_info([subsystem]dev, ... then dev_info(dev, ... then
       pr_info(...  to printk(KERN_INFO ...
      +                       printk(KERN_INFO
      
      WARNING: quoted string split across lines
      +                              "Charger \"%s\" is connected with known battery."
      +                              " Rebooting.\n",
      
      WARNING: quoted string split across lines
      +                                       "unable to set sysClkReq%dRfClkBuf: "
      +                                       "%d\n", j + 1, ret);
      
      total: 0 errors, 4 warnings, 199 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      63b4fd75
    • Lee Jones's avatar
      mfd: ab8500-gpadc: Squash a whole bunch of Checkpatch warnings and one error · df36442c
      Lee Jones authored
      WARNING: line over 80 characters
      +#define ADC_CH_IBAT_MIN                        (-6000) /* mA range measured by ADC for ib
      t*/
      
      WARNING: line over 80 characters
      +#define ADC_CH_IBAT_MIN_V              (-60)   /* mV range measured by ADC for ibat*/
      
      WARNING: suspect code indent for conditional statements (16, 20)
      +               if (!strcmp(name, dev_name(gpadc->dev)))
      +                   return gpadc;
      
      WARNING: suspect code indent for conditional statements (0, 16)
      +if (ad_value < 0) {
      +               dev_err(gpadc->dev, "GPADC raw value failed ch: %d\n",
      
      WARNING: quoted string split across lines
      +               dev_err(gpadc->dev, "GPADC to voltage conversion failed ch:"
      +                       " %d AD: 0x%x\n", channel, ad_value);
      
      WARNING: Missing a blank line after declarations
      +       int raw_data;
      +       raw_data = ab8500_gpadc_double_read_raw(gpadc, channel,
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      +               msleep(10);
      
      ERROR: else should follow close brace '}'
      +       }
      +       else
      
      WARNING: line over 80 characters
      +                       delay_max = 10000; /* large range to optimise sleep mode */
      
      WARNING: line over 80 characters
      +                       gpadc->cal_data[ADC_INPUT_IBAT].gain = V_gain * V2A_gain;
      
      WARNING: line over 80 characters
      +       gpadc = devm_kzalloc(&pdev->dev, sizeof(struct ab8500_gpadc), GFP_KERNEL);
      
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!gpadc) {
      +               dev_err(&pdev->dev, "Error: No memory\n");
      
      WARNING: space prohibited before semicolon
      +       return ;
      
      WARNING: void function return statements are not generally useful
      +       return ;
      +}
      
      WARNING: quoted string split across lines
      +MODULE_AUTHOR("Arun R Murthy, Daniel Willerud, Johan Palsson,"
      +               "M'boumba Cedric Madianga");
      
      total: 1 errors, 14 warnings, 1089 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      df36442c
    • Lee Jones's avatar
      mfd: ab8500-debugfs: Clean-up non-conforming commenting and print formatting · de6a7693
      Lee Jones authored
      WARNING: Block comments use a trailing */ on a separate line
      +                        * not be accessed from here */
      
      WARNING: Block comments use a trailing */ on a separate line
      +                        * not be accessed from here */
      
      WARNING: Block comments use a trailing */ on a separate line
      +                                * the output is wanted in any case */
      
      WARNING: Consecutive strings are generally better as a single string
      +               "  addr=0x%08X, mask=0x%X, shift=%d" "value=0x%X\n",
      
      total: 0 errors, 4 warnings, 3331 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      de6a7693
    • Lee Jones's avatar
      mfd: ab8500-core: Fix many warnings reported by Checkpatch · 500e69a1
      Lee Jones authored
      WARNING: Block comments use a trailing */ on a separate line
      +        * */
      
      WARNING: Block comments use a trailing */ on a separate line
      +        * bank on higher 8 bits and reg in lower */
      
      WARNING: Block comments use a trailing */ on a separate line
      +        * bank on higher 8 bits and reg in lower */
      
      WARNING: suspect code indent for conditional statements (8, 24)
      +       if (unlikely(*offset == 17))
      +                       *offset = 24;
      
      WARNING: suspect code indent for conditional statements (8, 24)
      +       if (unlikely(*offset == 16))
      +                       *offset = 25;
      
      WARNING: suspect code indent for conditional statements (8, 24)
      +       if ((i == 3) && (*offset >= 24))
      +                       *offset += 2;
      
      WARNING: ENOSYS means 'invalid syscall nr' and nothing else
      +               return -ENOSYS;
      
      WARNING: static const char * array should probably be static const char * const
      +       static const char *switch_off_status[] = {
      
      WARNING: static const char * array should probably be static const char * const
      +       static const char *turn_on_status[] = {
      
      total: 0 errors, 9 warnings, 1867 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      500e69a1
    • Lee Jones's avatar
      mfd: ab2100-otp: Remove pointless 'out of memory' error message · 845b76f8
      Lee Jones authored
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!otp) {
      +               dev_err(&pdev->dev, "could not allocate AB3100 OTP device\n");
      
      total: 0 errors, 1 warnings, 250 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      845b76f8
    • Lee Jones's avatar
      mfd: ab3100-core.c: Fix multiple warnings reported by Checkpatch · 15544cab
      Lee Jones authored
      WARNING: Missing a blank line after declarations
      +       struct ab3100 *ab3100 = dev_get_drvdata(dev->parent);
      +       if (!ab3100->startup_events_read)
      
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!ab3100) {
      +               dev_err(&client->dev, "could not allocate AB3100 device\n");
      
      WARNING: else is not generally useful after a break or return
      +                               break;
      +                       } else {
      
      total: 0 errors, 3 warnings, 996 lines checked
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      15544cab
    • Lee Jones's avatar
      mfd: aat2870-core: Remove unnecessary 'out of memory' message · 4374b20c
      Lee Jones authored
      WARNING: Possible unnecessary 'out of memory' message
      +       if (!aat2870) {
      +               dev_err(&client->dev,
      
      total: 0 errors, 1 warnings, 524 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      4374b20c
    • Lee Jones's avatar
      mfd: 88pm860x-core: Fix commenting and declaration spacing · f90dff44
      Lee Jones authored
      Checkpatch output:
      
      WARNING: Block comments use a trailing */ on a separate line
      +        * - turn off */
      
      WARNING: Missing a blank line after declarations
      +       int ret;
      +       ret = i2c_add_driver(&pm860x_driver);
      
      total: 0 errors, 2 warnings, 1283 lines checked
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      f90dff44
    • Charles Keepax's avatar
      mfd: arizona: Add device tree binding documentation for new clock driver · 0b819951
      Charles Keepax authored
      Specify the device tree binding for the input clocks to Arizona devices.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      0b819951
    • Geliang Tang's avatar
      1b5420e1
    • Krzysztof Kozlowski's avatar
      dt-bindings: regulator/mfd: Reorganize S2MPA01 bindings · 5d1d147f
      Krzysztof Kozlowski authored
      The mfd/s2mpa01.txt duplicates some of the information about bindings
      with old mfd/s2mps11.txt. Now common part exists entirely in
      mfd/samsung,sec-core.txt so:
       - add company prefix to file name (regulator/samsung,s2mpa01.txt),
       - remove duplicated information,
       - reorganize the contents to match style of
         regulator/samsung,s2mps11.txt.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      5d1d147f
    • Krzysztof Kozlowski's avatar
      dt-bindings: regulator/mfd: Reorganize S5M8767 bindings · 27383ca9
      Krzysztof Kozlowski authored
      The regulator/s5m8767-regulator.txt duplicates some of the information
      about bindings with old mfd/s2mps11.txt. Now common part exists entirely
      in mfd/samsung,sec-core.txt so:
       - add company prefix to file name (regulator/samsung,s5m8767.txt),
       - remove duplicated information,
       - reorganize the contents to match style of
         regulator/samsung,s2mps11.txt.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      27383ca9
    • Krzysztof Kozlowski's avatar
      dt-bindings: regulator/clock/mfd: Reorganize S2MPS-family bindings · a13c7c51
      Krzysztof Kozlowski authored
      Bindings for Samsung S2M and S5M family PMICs are in mess. They are
      spread over different files and subdirectories in a non-consistent way.
      The devices and respective drivers for them share a lot in common so
      everything could be organized in a more readable way.
      
      Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
      drivers for this family of devices:
       - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
         driver (common for entire family),
       - split clock block to clock/samsung,s2mps11.txt,
       - split regulator block to regulator/samsung,s2mps11.txt.
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Acked-by: default avatarMichael Turquette <mturquette@baylibre.com>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      a13c7c51
    • Linus Walleij's avatar
      mfd: asic3: Be sure to clamp return value · f8e3a514
      Linus Walleij authored
      As we want gpio_chip .get() calls to be able to return negative
      error codes and propagate to drivers, we need to go over all
      drivers and make sure their return values are clamped to [0,1].
      We do this by using the ret = !!(val) design pattern.
      
      Cc: Paul Parsons <lost.distance@yahoo.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      f8e3a514
    • Linus Walleij's avatar
      mfd: dm355evm_mps: Be sure to clamp return value · fe0b4867
      Linus Walleij authored
      As we want gpio_chip .get() calls to be able to return negative
      error codes and propagate to drivers, we need to go over all
      drivers and make sure their return values are clamped to [0,1].
      We do this by using the ret = !!(val) design pattern.
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      fe0b4867
    • Linus Walleij's avatar
      mfd: htc-egpio: Be sure to clamp return value · f7d62366
      Linus Walleij authored
      As we want gpio_chip .get() calls to be able to return negative
      error codes and propagate to drivers, we need to go over all
      drivers and make sure their return values are clamped to [0,1].
      We do this by using the ret = !!(val) design pattern.
      
      Cc: Philipp Zabel <philipp.zabel@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      f7d62366