08 Apr, 2018

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Notable changes:

    - Support for 4PB user address space on 64-bit, opt-in via mmap().

    - Removal of POWER4 support, which was accidentally broken in 2016
    and no one noticed, and blocked use of some modern instructions.

    - Workarounds so that the hypervisor can enable Transactional Memory
    on Power9.

    - A series to disable the DAWR (Data Address Watchpoint Register) on
    Power9.

    - More information displayed in the meltdown/spectre_v1/v2 sysfs
    files.

    - A vpermxor (Power8 Altivec) implementation for the raid6 Q
    Syndrome.

    - A big series to make the allocation of our pacas (per cpu area),
    kernel page tables, and per-cpu stacks NUMA aware when using the
    Radix MMU on Power9.

    And as usual many fixes, reworks and cleanups.

    Thanks to: Aaro Koskinen, Alexandre Belloni, Alexey Kardashevskiy,
    Alistair Popple, Andy Shevchenko, Aneesh Kumar K.V, Anshuman Khandual,
    Balbir Singh, Benjamin Herrenschmidt, Christophe Leroy, Christophe
    Lombard, Cyril Bur, Daniel Axtens, Dave Young, Finn Thain, Frederic
    Barrat, Gustavo Romero, Horia Geantă, Jonathan Neuschäfer, Kees Cook,
    Larry Finger, Laurent Dufour, Laurent Vivier, Logan Gunthorpe,
    Madhavan Srinivasan, Mark Greer, Mark Hairgrove, Markus Elfring,
    Mathieu Malaterre, Matt Brown, Matt Evans, Mauricio Faria de Oliveira,
    Michael Neuling, Naveen N. Rao, Nicholas Piggin, Paul Mackerras,
    Philippe Bergheaud, Ram Pai, Rob Herring, Sam Bobroff, Segher
    Boessenkool, Simon Guo, Simon Horman, Stewart Smith, Sukadev
    Bhattiprolu, Suraj Jitindar Singh, Thiago Jung Bauermann, Vaibhav
    Jain, Vaidyanathan Srinivasan, Vasant Hegde, Wei Yongjun"

    * tag 'powerpc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (207 commits)
    powerpc/64s/idle: Fix restore of AMOR on POWER9 after deep sleep
    powerpc/64s: Fix POWER9 DD2.2 and above in cputable features
    powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit
    powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits
    Revert "powerpc/64s/idle: POWER9 ESL=0 stop avoid save/restore overhead"
    powerpc: iomap.c: introduce io{read|write}64_{lo_hi|hi_lo}
    powerpc: io.h: move iomap.h include so that it can use readq/writeq defs
    cxl: Fix possible deadlock when processing page faults from cxllib
    powerpc/hw_breakpoint: Only disable hw breakpoint if cpu supports it
    powerpc/mm/radix: Update command line parsing for disable_radix
    powerpc/mm/radix: Parse disable_radix commandline correctly.
    powerpc/mm/hugetlb: initialize the pagetable cache correctly for hugetlb
    powerpc/mm/radix: Update pte fragment count from 16 to 256 on radix
    powerpc/mm/keys: Update documentation and remove unnecessary check
    powerpc/64s/idle: POWER9 ESL=0 stop avoid save/restore overhead
    powerpc/64s/idle: Consolidate power9_offline_stop()/power9_idle_stop()
    powerpc/powernv: Always stop secondaries before reboot/shutdown
    powerpc: hard disable irqs in smp_send_stop loop
    powerpc: use NMI IPI for smp_send_stop
    powerpc/powernv: Fix SMT4 forcing idle code
    ...

    Linus Torvalds
     

30 Mar, 2018

2 commits

  • We should zero an array using sizeof instead of number of elements.

    Fixes the following compiler (GCC 7.3.0) warnings:

    drivers/macintosh/rack-meter.c: In function 'rackmeter_do_pause':
    drivers/macintosh/rack-meter.c:157:2: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
    drivers/macintosh/rack-meter.c:158:2: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]

    Fixes: 4f7bef7a9f69 ("drivers: macintosh: rack-meter: fix bogus memsets")
    Reported-by: Stephen Rothwell
    Signed-off-by: Aaro Koskinen
    Signed-off-by: Michael Ellerman

    Aaro Koskinen
     
  • No change to object files.

    Cc: Benjamin Herrenschmidt
    Signed-off-by: Finn Thain
    Signed-off-by: Michael Ellerman

    Finn Thain
     

20 Mar, 2018

1 commit


19 Mar, 2018

1 commit

  • The PMU watchdog will power down the system if the kernel is slow
    to start up, e.g. due to unpacking a large initrd. The powerpc
    version of this driver (via-pmu.c) has a solution for the same
    problem. It uses this call sequence:

    setup_arch
    find_via_pmu
    init_pmu
    ...
    arch_initcall
    via_pmu_start

    Bring via-pmu68k.c into line with via-pmu.c to fix this issue.

    Cc: Geert Uytterhoeven
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

13 Mar, 2018

2 commits

  • Make the struct via_pmu_driver const to avoid following warning:

    WARNING: vmlinux.o(.data+0x4739c): Section mismatch in reference from the variable via_pmu_driver to the function .init.text:pmu_init()
    The variable via_pmu_driver references
    the function __init pmu_init()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

    Signed-off-by: Mathieu Malaterre
    Suggested-by: Laurent Vivier
    Reviewed-by: Laurent Vivier
    Signed-off-by: Michael Ellerman

    Mathieu Malaterre
     
  • In kernel 4.15, the modprobe step on my PowerBook G4 started complaining that
    there was no module license for ans-lcd.

    Signed-off-by: Larry Finger
    Signed-off-by: Michael Ellerman

    Larry Finger
     

14 Feb, 2018

1 commit

  • We have expected busses to set up a coherent mask to properly use the
    common dma mapping code for a long time, and now that I've added a warning
    macio turned out to not set one up yet. This sets it to the same value
    as the dma_mask, which seems to be what the drivers expect.

    Reported-by: Mathieu Malaterre
    Tested-by: Mathieu Malaterre
    Reported-by: Meelis Roos
    Tested-by: Meelis Roos
    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     

12 Feb, 2018

1 commit

  • This is the mindless scripted replacement of kernel use of POLL*
    variables as described by Al, done by this script:

    for V in IN OUT PRI ERR RDNORM RDBAND WRNORM WRBAND HUP RDHUP NVAL MSG; do
    L=`git grep -l -w POLL$V | grep -v '^t' | grep -v /um/ | grep -v '^sa' | grep -v '/poll.h$'|grep -v '^D'`
    for f in $L; do sed -i "-es/^\([^\"]*\)\(\\)/\\1E\\2/" $f; done
    done

    with de-mangling cleanups yet to come.

    NOTE! On almost all architectures, the EPOLL* constants have the same
    values as the POLL* constants do. But they keyword here is "almost".
    For various bad reasons they aren't the same, and epoll() doesn't
    actually work quite correctly in some cases due to this on Sparc et al.

    The next patch from Al will sort out the final differences, and we
    should be all done.

    Scripted-by: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

07 Feb, 2018

1 commit

  • Pull PCI updates from Bjorn Helgaas:

    - skip AER driver error recovery callbacks for correctable errors
    reported via ACPI APEI, as we already do for errors reported via the
    native path (Tyler Baicar)

    - fix DPC shared interrupt handling (Alex Williamson)

    - print full DPC interrupt number (Keith Busch)

    - enable DPC only if AER is available (Keith Busch)

    - simplify DPC code (Bjorn Helgaas)

    - calculate ASPM L1 substate parameter instead of hardcoding it (Bjorn
    Helgaas)

    - enable Latency Tolerance Reporting for ASPM L1 substates (Bjorn
    Helgaas)

    - move ASPM internal interfaces out of public header (Bjorn Helgaas)

    - allow hot-removal of VGA devices (Mika Westerberg)

    - speed up unplug and shutdown by assuming Thunderbolt controllers
    don't support Command Completed events (Lukas Wunner)

    - add AtomicOps support for GPU and Infiniband drivers (Felix Kuehling,
    Jay Cornwall)

    - expose "ari_enabled" in sysfs to help NIC naming (Stuart Hayes)

    - clean up PCI DMA interface usage (Christoph Hellwig)

    - remove PCI pool API (replaced with DMA pool) (Romain Perier)

    - deprecate pci_get_bus_and_slot(), which assumed PCI domain 0 (Sinan
    Kaya)

    - move DT PCI code from drivers/of/ to drivers/pci/ (Rob Herring)

    - add PCI-specific wrappers for dev_info(), etc (Frederick Lawler)

    - remove warnings on sysfs mmap failure (Bjorn Helgaas)

    - quiet ROM validation messages (Alex Deucher)

    - remove redundant memory alloc failure messages (Markus Elfring)

    - fill in types for compile-time VGA and other I/O port resources
    (Bjorn Helgaas)

    - make "pci=pcie_scan_all" work for Root Ports as well as Downstream
    Ports to help AmigaOne X1000 (Bjorn Helgaas)

    - add SPDX tags to all PCI files (Bjorn Helgaas)

    - quirk Marvell 9128 DMA aliases (Alex Williamson)

    - quirk broken INTx disable on Ceton InfiniTV4 (Bjorn Helgaas)

    - fix CONFIG_PCI=n build by adding dummy pci_irqd_intx_xlate() (Niklas
    Cassel)

    - use DMA API to get MSI address for DesignWare IP (Niklas Cassel)

    - fix endpoint-mode DMA mask configuration (Kishon Vijay Abraham I)

    - fix ARTPEC-6 incorrect IS_ERR() usage (Wei Yongjun)

    - add support for ARTPEC-7 SoC (Niklas Cassel)

    - add endpoint-mode support for ARTPEC (Niklas Cassel)

    - add Cadence PCIe host and endpoint controller driver (Cyrille
    Pitchen)

    - handle multiple INTx status bits being set in dra7xx (Vignesh R)

    - translate dra7xx hwirq range to fix INTD handling (Vignesh R)

    - remove deprecated Exynos PHY initialization code (Jaehoon Chung)

    - fix MSI erratum workaround for HiSilicon Hip06/Hip07 (Dongdong Liu)

    - fix NULL pointer dereference in iProc BCMA driver (Ray Jui)

    - fix Keystone interrupt-controller-node lookup (Johan Hovold)

    - constify qcom driver structures (Julia Lawall)

    - rework Tegra config space mapping to increase space available for
    endpoints (Vidya Sagar)

    - simplify Tegra driver by using bus->sysdata (Manikanta Maddireddy)

    - remove PCI_REASSIGN_ALL_BUS usage on Tegra (Manikanta Maddireddy)

    - add support for Global Fabric Manager Server (GFMS) event to
    Microsemi Switchtec switch driver (Logan Gunthorpe)

    - add IDs for Switchtec PSX 24xG3 and PSX 48xG3 (Kelvin Cao)

    * tag 'pci-v4.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
    PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe endpoint controller
    PCI: endpoint: Fix EPF device name to support multi-function devices
    PCI: endpoint: Add the function number as argument to EPC ops
    PCI: cadence: Add host driver for Cadence PCIe controller
    dt-bindings: PCI: cadence: Add DT bindings for Cadence PCIe host controller
    PCI: Add vendor ID for Cadence
    PCI: Add generic function to probe PCI host controllers
    PCI: generic: fix missing call of pci_free_resource_list()
    PCI: OF: Add generic function to parse and allocate PCI resources
    PCI: Regroup all PCI related entries into drivers/pci/Makefile
    PCI/DPC: Reformat DPC register definitions
    PCI/DPC: Add and use DPC Status register field definitions
    PCI/DPC: Squash dpc_rp_pio_get_info() into dpc_process_rp_pio_error()
    PCI/DPC: Remove unnecessary RP PIO register structs
    PCI/DPC: Push dpc->rp_pio_status assignment into dpc_rp_pio_get_info()
    PCI/DPC: Squash dpc_rp_pio_print_error() into dpc_rp_pio_get_info()
    PCI/DPC: Make RP PIO log size check more generic
    PCI/DPC: Rename local "status" to "dpc_status"
    PCI/DPC: Squash dpc_rp_pio_print_tlp_header() into dpc_rp_pio_print_error()
    ...

    Linus Torvalds
     

03 Feb, 2018

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Highlights:

    - Enable support for memory protection keys aka "pkeys" on Power7/8/9
    when using the hash table MMU.

    - Extend our interrupt soft masking to support masking PMU interrupts
    as well as "normal" interrupts, and then use that to implement
    local_t for a ~4x speedup vs the current atomics-based
    implementation.

    - A new driver "ocxl" for "Open Coherent Accelerator Processor
    Interface (OpenCAPI)" devices.

    - Support for new device tree properties on PowerVM to describe
    hotpluggable memory and devices.

    - Add support for CLOCK_{REALTIME/MONOTONIC}_COARSE to the 64-bit
    VDSO.

    - Freescale updates from Scott: fixes for CPM GPIO and an FSL PCI
    erratum workaround, plus a minor cleanup patch.

    As well as quite a lot of other changes all over the place, and small
    fixes and cleanups as always.

    Thanks to: Alan Modra, Alastair D'Silva, Alexey Kardashevskiy,
    Alistair Popple, Andreas Schwab, Andrew Donnellan, Aneesh Kumar K.V,
    Anju T Sudhakar, Anshuman Khandual, Anton Blanchard, Arnd Bergmann,
    Balbir Singh, Benjamin Herrenschmidt, Bhaktipriya Shridhar, Bryant G.
    Ly, Cédric Le Goater, Christophe Leroy, Christophe Lombard, Cyril Bur,
    David Gibson, Desnes A. Nunes do Rosario, Dmitry Torokhov, Frederic
    Barrat, Geert Uytterhoeven, Guilherme G. Piccoli, Gustavo A. R. Silva,
    Gustavo Romero, Ivan Mikhaylov, Joakim Tjernlund, Joe Perches, Josh
    Poimboeuf, Juan J. Alvarez, Julia Cartwright, Kamalesh Babulal,
    Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael
    Bringmann, Michael Hanselmann, Michael Neuling, Nathan Fontenot,
    Naveen N. Rao, Nicholas Piggin, Paul Mackerras, Philippe Bergheaud,
    Ram Pai, Russell Currey, Santosh Sivaraj, Scott Wood, Seth Forshee,
    Simon Guo, Stewart Smith, Sukadev Bhattiprolu, Thiago Jung Bauermann,
    Vaibhav Jain, Vasyl Gomonovych"

    * tag 'powerpc-4.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (199 commits)
    powerpc/mm/radix: Fix build error when RADIX_MMU=n
    macintosh/ams-input: Use true and false for boolean values
    macintosh: change some data types from int to bool
    powerpc/watchdog: Print the NIP in soft_nmi_interrupt()
    powerpc/watchdog: regs can't be null in soft_nmi_interrupt()
    powerpc/watchdog: Tweak watchdog printks
    powerpc/cell: Remove axonram driver
    rtc-opal: Fix handling of firmware error codes, prevent busy loops
    powerpc/mpc52xx_gpt: make use of raw_spinlock variants
    macintosh/adb: Properly mark continued kernel messages
    powerpc/pseries: Fix cpu hotplug crash with memoryless nodes
    powerpc/numa: Ensure nodes initialized for hotplug
    powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes
    powerpc/kernel: Block interrupts when updating TIDR
    powerpc/powernv/idoa: Remove unnecessary pcidev from pci_dn
    powerpc/mm/nohash: do not flush the entire mm when range is a single page
    powerpc/pseries: Add Initialization of VF Bars
    powerpc/pseries/pci: Associate PEs to VFs in configure SR-IOV
    powerpc/eeh: Add EEH notify resume sysfs
    powerpc/eeh: Add EEH operations to notify resume
    ...

    Linus Torvalds
     

28 Jan, 2018

2 commits


27 Jan, 2018

1 commit


21 Jan, 2018

1 commit

  • Fix warning:

    drivers/macintosh/via-pmu-backlight.c: In function ‘pmu_backlight_init’:
    drivers/macintosh/via-pmu-backlight.c:140:13: warning: old-style function definition [-Wold-style-definition]
    void __init pmu_backlight_init()
    ^~~~~~~~~~~~~~~~~~

    Signed-off-by: Mathieu Malaterre
    Acked-by: Daniel Thompson
    Signed-off-by: Michael Ellerman

    Mathieu Malaterre
     

17 Jan, 2018

1 commit

  • pci_get_bus_and_slot() is restrictive such that it assumes domain=0 as
    where a PCI device is present. This restricts the device drivers to be
    reused for other domain numbers.

    Getting ready to remove pci_get_bus_and_slot() function in favor of
    pci_get_domain_bus_and_slot().

    Hard-code the domain number as 0 to match the previous behavior.

    Signed-off-by: Sinan Kaya
    Signed-off-by: Bjorn Helgaas

    Sinan Kaya
     

29 Nov, 2017

1 commit


14 Nov, 2017

2 commits

  • Pull timer updates from Thomas Gleixner:
    "Yet another big pile of changes:

    - More year 2038 work from Arnd slowly reaching the point where we
    need to think about the syscalls themself.

    - A new timer function which allows to conditionally (re)arm a timer
    only when it's either not running or the new expiry time is sooner
    than the armed expiry time. This allows to use a single timer for
    multiple timeout requirements w/o caring about the first expiry
    time at the call site.

    - A new NMI safe accessor to clock real time for the printk timestamp
    work. Can be used by tracing, perf as well if required.

    - A large number of timer setup conversions from Kees which got
    collected here because either maintainers requested so or they
    simply got ignored. As Kees pointed out already there are a few
    trivial merge conflicts and some redundant commits which was
    unavoidable due to the size of this conversion effort.

    - Avoid a redundant iteration in the timer wheel softirq processing.

    - Provide a mechanism to treat RTC implementations depending on their
    hardware properties, i.e. don't inflict the write at the 0.5
    seconds boundary which originates from the PC CMOS RTC to all RTCs.
    No functional change as drivers need to be updated separately.

    - The usual small updates to core code clocksource drivers. Nothing
    really exciting"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (111 commits)
    timers: Add a function to start/reduce a timer
    pstore: Use ktime_get_real_fast_ns() instead of __getnstimeofday()
    timer: Prepare to change all DEFINE_TIMER() callbacks
    netfilter: ipvs: Convert timers to use timer_setup()
    scsi: qla2xxx: Convert timers to use timer_setup()
    block/aoe: discover_timer: Convert timers to use timer_setup()
    ide: Convert timers to use timer_setup()
    drbd: Convert timers to use timer_setup()
    mailbox: Convert timers to use timer_setup()
    crypto: Convert timers to use timer_setup()
    drivers/pcmcia: omap1: Fix error in automated timer conversion
    ARM: footbridge: Fix typo in timer conversion
    drivers/sgi-xp: Convert timers to use timer_setup()
    drivers/pcmcia: Convert timers to use timer_setup()
    drivers/memstick: Convert timers to use timer_setup()
    drivers/macintosh: Convert timers to use timer_setup()
    hwrng/xgene-rng: Convert timers to use timer_setup()
    auxdisplay: Convert timers to use timer_setup()
    sparc/led: Convert timers to use timer_setup()
    mips: ip22/32: Convert timers to use timer_setup()
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:

    - more printk modernization

    - various cleanups and fixes (incl. a race condition) for Mac

    - defconfig updates

    * tag 'm68k-for-v4.15-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/defconfig: Update defconfigs for v4.14-rc7
    m68k/mac: Add mutual exclusion for IOP interrupt polling
    m68k/mac: Disentangle VIA/RBV and NuBus initialization
    m68k/mac: Disentangle VIA and OSS initialization
    m68k/mac: More printk modernization

    Linus Torvalds
     

10 Nov, 2017

1 commit

  • The IOP interrupt handler iop_ism_irq() is used by the adb-iop
    driver to poll for ADB request completion. Unfortunately, it is not
    re-entrant. Fix the race condition by adding an iop_ism_irq_poll()
    function with suitable mutual exclusion.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Cc: Benjamin Herrenschmidt
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

03 Nov, 2017

1 commit


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

01 Sep, 2017

2 commits

  • The wf_sensor_ops structures are only stored in the ops field of a
    wf_sensor structure, which is declared as const. Thus the
    wf_sensor_ops structures themselves can be const.

    Done with the help of Coccinelle.

    //
    @r disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct wf_sensor_ops i@p = { ... };

    @ok1@
    identifier r.i;
    struct wf_sensor s;
    position p;
    @@
    s.ops = &i@p

    @ok2@
    identifier r.i;
    struct wf_sat_sensor s;
    position p;
    @@
    s.sens.ops = &i@p

    @bad@
    position p != {r.p,ok1.p,ok2.p};
    identifier r.i;
    struct wf_sensor_ops e;
    @@
    e@i@p

    @depends on !bad disable optional_qualifier@
    identifier r.i;
    @@
    static
    +const
    struct wf_sensor_ops i = { ... };
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Michael Ellerman

    Julia Lawall
     
  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    [mpe: Also convert the two cases inside #if 0]
    Signed-off-by: Michael Ellerman

    Rob Herring
     

21 Aug, 2017

1 commit

  • of_device_ids are not supposed to change at runtime. All functions
    working with of_device_ids provided by work with const
    of_device_ids. So mark the non-const structs as const.

    File size before:
    text data bss dec hex filename
    407 576 0 983 3d7 drivers/macintosh/rack-meter.o

    File size after constify rackmeter_match.
    text data bss dec hex filename
    807 176 0 983 3d7 drivers/macintosh/rack-meter.o

    Signed-off-by: Arvind Yadav
    Signed-off-by: Michael Ellerman

    Arvind Yadav
     

14 Aug, 2017

1 commit


06 Jul, 2017

1 commit

  • Pull misc user access cleanups from Al Viro:
    "The first pile is assorted getting rid of cargo-culted access_ok(),
    cargo-culted set_fs() and field-by-field copyouts.

    The same description applies to a lot of stuff in other branches -
    this is just the stuff that didn't fit into a more specific topical
    branch"

    * 'work.misc-set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    Switch flock copyin/copyout primitives to copy_{from,to}_user()
    fs/fcntl: return -ESRCH in f_setown when pid/pgid can't be found
    fs/fcntl: f_setown, avoid undefined behaviour
    fs/fcntl: f_setown, allow returning error
    lpfc debugfs: get rid of pointless access_ok()
    adb: get rid of pointless access_ok()
    isdn: get rid of pointless access_ok()
    compat statfs: switch to copy_to_user()
    fs/locks: don't mess with the address limit in compat_fcntl64
    nfsd_readlink(): switch to vfs_get_link()
    drbd: ->sendpage() never needed set_fs()
    fs/locks: pass kernel struct flock to fcntl_getlk/setlk
    fs: locks: Fix some troubles at kernel-doc comments

    Linus Torvalds
     

09 Jun, 2017

1 commit


05 Jun, 2017

1 commit


06 May, 2017

1 commit

  • Pull DeviceTree updates from Rob Herring:

    - fix sparse warnings in drivers/of/

    - add more overlay unittests

    - update dtc to v1.4.4-8-g756ffc4f52f6. This adds more checks on dts
    files such as unit-address formatting and stricter character sets for
    node and property names

    - add a common DT modalias function

    - move trivial-devices.txt up and out of i2c dir

    - ARM NVIC interrupt controller binding

    - vendor prefixes for Sensirion, Dioo, Nordic, ROHM

    - correct some binding file locations

    * tag 'devicetree-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (24 commits)
    of: fix sparse warnings in fdt, irq, reserved mem, and resolver code
    of: fix sparse warning in of_pci_range_parser_one
    of: fix sparse warnings in of_find_next_cache_node
    of/unittest: Missing unlocks on error
    of: fix uninitialized variable warning for overlay test
    of: fix unittest build without CONFIG_OF_OVERLAY
    of: Add unit tests for applying overlays
    of: per-file dtc compiler flags
    fpga: region: add missing DT documentation for config complete timeout
    of: Add vendor prefix for ROHM Semiconductor
    of: fix "/cpus" reference leak in of_numa_parse_cpu_nodes()
    of: Add vendor prefix for Nordic Semiconductor
    dt-bindings: arm,nvic: Binding for ARM NVIC interrupt controller on Cortex-M
    dtc: update warning settings for new bus and node/property name checks
    scripts/dtc: Update to upstream version v1.4.4-8-g756ffc4f52f6
    scripts/dtc: automate getting dtc version and log in update script
    of: Add function for generating a DT modalias with a newline
    of: fix of_device_get_modalias returned length when truncating buffers
    Documentation: devicetree: move trivial-devices out of I2C realm
    dt-bindings: add vendor prefix for Dioo
    ..

    Linus Torvalds
     

24 Mar, 2017

1 commit


23 Mar, 2017

1 commit

  • The modalias sysfs attr is lacking a newline for DT aliases on platform
    devices. The macio and ibmebus correctly add the newline, but open code it.
    Introduce a new function, of_device_modalias(), that fills the buffer with
    the modalias including the newline and update users of the old
    of_device_get_modalias function.

    Signed-off-by: Rob Herring
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Frank Rowand
    Cc: linuxppc-dev@lists.ozlabs.org
    Acked-by: Greg Kroah-Hartman

    Rob Herring
     

10 Mar, 2017

1 commit

  • Commit 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata
    into struct device") introduced a crash for macio devices, an example
    backtrace being:

    kernel BUG at ./include/linux/dma-mapping.h:465!
    Oops: Exception in kernel mode, sig: 5 [#1]
    ...
    NIP [c031ddb0] dmam_alloc_coherent+0x74/0x140
    LR [c031de70] dmam_alloc_coherent+0x134/0x140
    Call Trace:
    dmam_alloc_coherent+0x134/0x140 (unreliable)
    pata_macio_port_start+0x3c/0x8c
    ata_host_start.part.5+0xfc/0x208
    ata_host_activate+0x128/0x154
    pata_macio_common_init+0x2f0/0x538
    pata_macio_attach+0xd8/0x180
    macio_device_probe+0x5c/0xec
    driver_probe_device+0x21c/0x314
    __driver_attach+0xcc/0xd0
    bus_for_each_dev+0x68/0xb4
    bus_add_driver+0x1dc/0x244
    driver_register+0x88/0x130
    pata_macio_init+0x5c/0x88
    do_one_initcall+0x40/0x170
    kernel_init_freeable+0x134/0x1d0
    kernel_init+0x18/0x110
    ret_from_kernel_thread+0x5c/0x64

    This was caused by the device having NULL dma_ops, triggering the
    BUG_ON(). Previously the device inherited its dma_ops via the assignment
    to dev->ofdev.dev.archdata. However after commit 5657933dbb6e the
    dma_ops are moved into dev->ofdev.dev, and so they need to be explicitly
    copied.

    Fixes: 5657933dbb6e ("treewide: Move dma_ops from struct dev_archdata into struct device")
    Signed-off-by: Larry Finger
    Suggested-by: Benjamin Herrenschmidt
    [mpe: Rewrite change log, add backtrace]
    Signed-off-by: Michael Ellerman

    Larry Finger
     

02 Mar, 2017

1 commit


23 Feb, 2017

2 commits

  • Pull driver core updates from Greg KH:
    "Here is the "small" driver core patches for 4.11-rc1.

    Not much here, some firmware documentation and self-test updates, a
    debugfs code formatting issue, and a new feature for call_usermodehelper
    to make it more robust on systems that want to lock it down in a more
    secure way.

    All of these have been linux-next for a while now with no reported
    issues"

    * tag 'driver-core-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    kernfs: handle null pointers while printing node name and path
    Introduce STATIC_USERMODEHELPER to mediate call_usermodehelper()
    Make static usermode helper binaries constant
    kmod: make usermodehelper path a const string
    firmware: revamp firmware documentation
    selftests: firmware: send expected errors to /dev/null
    selftests: firmware: only modprobe if driver is missing
    platform: Print the resource range if device failed to claim
    kref: prefer atomic_inc_not_zero to atomic_add_unless
    debugfs: improve formatting of debugfs_real_fops()

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Highlights include:

    - Support for direct mapped LPC on POWER9, giving Linux direct access
    to devices that may be on there such as a UART.

    - Memory hotplug support for the Power9 Radix MMU.

    - Add new AUX vectors describing the processor's cache geometry, to
    be used by glibc.

    - The ability for a guest to ask the hypervisor to resize the guest's
    hash table, and in addition support for doing so automatically when
    memory is hotplugged into/out-of the guest. This allows the hash
    table to be sized based on the current memory usage of the guest,
    rather than the maximum possible memory usage.

    - Implementation of optprobes (kprobe optimisation) for powerpc.

    In addition there's the topic branch shared with the KVM tree, which
    includes support for guests to use the Radix MMU on Power9.

    Thanks to:
    Alistair Popple, Andrew Donnellan, Aneesh Kumar K.V, Anju T, Anton
    Blanchard, Benjamin Herrenschmidt, Chris Packham, Daniel Axtens,
    Daniel Borkmann, David Gibson, Finn Thain, Gautham R. Shenoy, Gavin
    Shan, Greg Kurz, Joel Stanley, John Allen, Madhavan Srinivasan,
    Mahesh Salgaonkar, Markus Elfring, Michael Neuling, Nathan Fontenot,
    Naveen N. Rao, Nicholas Piggin, Paul Mackerras, Ravi Bangoria, Reza
    Arbab, Shailendra Singh, Vaibhav Jain, Wei Yongjun"

    * tag 'powerpc-4.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (129 commits)
    powerpc/mm/radix: Skip ptesync in pte update helpers
    powerpc/mm/radix: Use ptep_get_and_clear_full when clearing pte for full mm
    powerpc/mm/radix: Update pte update sequence for pte clear case
    powerpc/mm: Update PROTFAULT handling in the page fault path
    powerpc/xmon: Fix data-breakpoint
    powerpc/mm: Fix build break with BOOK3S_64=n and MEMORY_HOTPLUG=y
    powerpc/mm: Fix build break when CMA=n && SPAPR_TCE_IOMMU=y
    powerpc/mm: Fix build break with RADIX=y & HUGETLBFS=n
    powerpc/pseries: Fix typo in parameter description
    powerpc/kprobes: Remove kprobe_exceptions_notify()
    kprobes: Introduce weak variant of kprobe_exceptions_notify()
    powerpc/ftrace: Fix confusing help text for DISABLE_MPROFILE_KERNEL
    powerpc/powernv: Fix opal_exit tracepoint opcode
    powerpc: Add a prototype for mcount() so it can be versioned
    powerpc: Drop GPL from of_node_to_nid() export to match other arches
    powerpc/kprobes: Optimize kprobe in kretprobe_trampoline()
    powerpc/kprobes: Implement Optprobes
    powerpc/kprobes: Fixes for kprobe_lookup_name() on BE
    powerpc: Add helper to check if offset is within relative branch range
    powerpc/bpf: Introduce __PPC_SH64()
    ...

    Linus Torvalds
     

07 Feb, 2017

4 commits

  • Change the device probe test in the via-cuda.c driver so it will load on
    Egret-based machines too. Remove the now redundant via-maciisi.c driver.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Michael Ellerman

    Finn Thain
     
  • The Egret system controller was the predecessor to the Cuda and the
    differences are minor.

    On Cuda, byte acknowledgement requires one transition of the TACK
    signal; on Egret two are needed. On Cuda, TIP is active low; on Egret
    it is active high. And Cuda raises certain interrupts that Egret omits.

    Accomodating these differences complicates the Cuda driver slightly
    but avoids a lot of duplication (see next patch).

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Michael Ellerman

    Finn Thain
     
  • Initialize data_index where appropriate to improve readability and
    assist debugging. This change doesn't affect driver behaviour.

    I prefer to see
    current_req->data[data_index++]
    in place of
    current_req->data[0]
    or
    current_req->data[1]
    inasmuchas it becomes obvious what the data_index variable does.

    Moreover, the actual value of data_index when examined at any given moment
    tells me something about prior events, which did prove helpful.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Michael Ellerman

    Finn Thain
     
  • The cuda_start() function uses spinlock_irq_save/restore for mutual
    exclusion. Let's have cuda_poll() do the same when polling the VIA
    interrupt.

    The benefit to disabling local irqs when the interrupt is being polled
    is that the interrupt handler now has the same timing properties
    regardless of whether it is invoked normally or from cuda_poll().

    This driver was written back when local irqs remained enabled during
    execution of interrupt handlers and cuda_poll() was probably trying
    to achieve the same effect by use of enable/disable_irq.

    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Signed-off-by: Michael Ellerman

    Finn Thain