24 Aug, 2018

1 commit


31 Jul, 2018

11 commits

  • Some of the event counters are overloaded which makes it very
    difficult to interpret their values.

    Counter 0 is supposed to report CB1 interrupts but it can also count
    PMU_INT_WAITING_CHARGER events.

    Counter 1 is supposed to report GPIO interrupts but it can also count
    other events (depending upon the value of the PMU_INT_ADB bit).

    Disambiguate these statistics with dedicated counters for GPIO and
    CB1 interrupts.

    Comments in the MkLinux source code say that the type 0 and type 1
    interrupts are model-specific. Label them as "unknown".

    This change to the contents of /proc/pmu/interrupts is by necessity
    visible in userland. However, packages which interact with the PMU
    (that is, pbbuttonsd, pmac-utils and pmud) don't open this file.
    AFAIK, user software has no need to poll these counters.

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

    Finn Thain
     
  • Replace an open-coded ffs() with the function call.
    Simplify an if-else cascade using a switch statement.
    Correct a typo and an indentation issue.

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

    Finn Thain
     
  • Now that the PowerMac via-pmu driver supports m68k PowerBooks,
    switch over to that driver and remove the via-pmu68k driver.

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

    Finn Thain
     
  • Don't load the via-pmu68k driver on early PowerBooks. The M50753 PMU
    device found in those models was never supported by this driver.
    Attempting to load the driver usually causes a boot hang.

    Signed-off-by: Finn Thain
    Reviewed-by: Michael Schmitz
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Michael Ellerman

    Finn Thain
     
  • At present, CONFIG_ADB_PMU depends on CONFIG_PPC_PMAC. When this gets
    relaxed to CONFIG_PPC_PMAC || CONFIG_MAC, those Kconfig symbols with
    implicit deps on PPC_PMAC will need explicit deps. Add them now.
    No functional change.

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

    Finn Thain
     
  • Put #ifdefs around the Open Firmware, xmon, interrupt dispatch,
    battery and suspend code. Add the necessary interrupt handling to
    support m68k PowerBooks.

    The pmu_kind value is available to userspace using the
    PMU_IOC_GET_MODEL ioctl. It is not clear yet what hardware classes
    are be needed to describe m68k PowerBook models, so pmu_kind is given
    the provisional value PMU_UNKNOWN.

    To find out about the hardware, user programs can use /proc/bootinfo
    or /proc/hardware, or send the PMU_GET_VERSION command using /dev/adb.

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

    Finn Thain
     
  • On most PowerPC Macs, the PMU driver uses the shift register and
    IO port B from a single VIA chip.

    On 68k and early PowerPC PowerBooks, the driver uses the shift register
    from one VIA chip together with IO port B from another.

    Replace via with via1 and via2 to accommodate this. For the
    CONFIG_PPC_PMAC case, set via1 = via2 so there is no change.

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

    Finn Thain
     
  • On 68k Macs, the via/vias pointer can't be used to determine whether
    the PMU driver has been initialized. For portability, add a new state
    to indicate that via_find_pmu() succeeded.

    After via_find_pmu() executes, testing vias == NULL is equivalent to
    testing via == NULL. Replace these tests with pmu_state == uninitialized
    which is simpler and more consistent. No functional change.

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

    Finn Thain
     
  • The shift register interrupt flag gets cleared in via_pmu_interrupt()
    and once again in pmu_sr_intr(). Fix this theoretical race condition.

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

    Finn Thain
     
  • Add missing in_8() accessors to init_pmu() and pmu_sr_intr().

    This fixes several sparse warnings:
    drivers/macintosh/via-pmu.c:536:29: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:537:33: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:1455:17: warning: dereference of noderef expression
    drivers/macintosh/via-pmu.c:1456:69: warning: dereference of noderef expression

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

    Finn Thain
     
  • The pmu_init() function has the __init qualifier, but the ops struct
    that holds a pointer to it does not. This causes a build warning.
    The driver works fine because the pointer is only dereferenced early.

    The function is so small that there's negligible benefit from using
    the __init qualifier. Remove it to fix the warning, consistent with
    the other ADB drivers.

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

    Finn Thain
     

08 Jun, 2018

1 commit

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

    - Support for split PMD page table lock on 64-bit Book3S (Power8/9).

    - Add support for HAVE_RELIABLE_STACKTRACE, so we properly support
    live patching again.

    - Add support for patching barrier_nospec in copy_from_user() and
    syscall entry.

    - A couple of fixes for our data breakpoints on Book3S.

    - A series from Nick optimising TLB/mm handling with the Radix MMU.

    - Numerous small cleanups to squash sparse/gcc warnings from Mathieu
    Malaterre.

    - Several series optimising various parts of the 32-bit code from
    Christophe Leroy.

    - Removal of support for two old machines, "SBC834xE" and "C2K"
    ("GEFanuc,C2K"), which is why the diffstat has so many deletions.

    And many other small improvements & fixes.

    There's a few out-of-area changes. Some minor ftrace changes OK'ed by
    Steve, and a fix to our powernv cpuidle driver. Then there's a series
    touching mm, x86 and fs/proc/task_mmu.c, which cleans up some details
    around pkey support. It was ack'ed/reviewed by Ingo & Dave and has
    been in next for several weeks.

    Thanks to: Akshay Adiga, Alastair D'Silva, Alexey Kardashevskiy, Al
    Viro, Andrew Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Arnd
    Bergmann, Balbir Singh, Cédric Le Goater, Christophe Leroy, Christophe
    Lombard, Colin Ian King, Dave Hansen, Fabio Estevam, Finn Thain,
    Frederic Barrat, Gautham R. Shenoy, Haren Myneni, Hari Bathini, Ingo
    Molnar, Jonathan Neuschäfer, Josh Poimboeuf, Kamalesh Babulal,
    Madhavan Srinivasan, Mahesh Salgaonkar, Mark Greer, Mathieu Malaterre,
    Matthew Wilcox, Michael Neuling, Michal Suchanek, Naveen N. Rao,
    Nicholas Piggin, Nicolai Stange, Olof Johansson, Paul Gortmaker, Paul
    Mackerras, Peter Rosin, Pridhiviraj Paidipeddi, Ram Pai, Rashmica
    Gupta, Ravi Bangoria, Russell Currey, Sam Bobroff, Samuel
    Mendoza-Jonas, Segher Boessenkool, Shilpasri G Bhat, Simon Guo,
    Souptick Joarder, Stewart Smith, Thiago Jung Bauermann, Torsten Duwe,
    Vaibhav Jain, Wei Yongjun, Wolfram Sang, Yisheng Xie, YueHaibing"

    * tag 'powerpc-4.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (251 commits)
    powerpc/64s/radix: Fix missing ptesync in flush_cache_vmap
    cpuidle: powernv: Fix promotion from snooze if next state disabled
    powerpc: fix build failure by disabling attribute-alias warning in pci_32
    ocxl: Fix missing unlock on error in afu_ioctl_enable_p9_wait()
    powerpc-opal: fix spelling mistake "Uniterrupted" -> "Uninterrupted"
    powerpc: fix spelling mistake: "Usupported" -> "Unsupported"
    powerpc/pkeys: Detach execute_only key on !PROT_EXEC
    powerpc/powernv: copy/paste - Mask SO bit in CR
    powerpc: Remove core support for Marvell mv64x60 hostbridges
    powerpc/boot: Remove core support for Marvell mv64x60 hostbridges
    powerpc/boot: Remove support for Marvell mv64x60 i2c controller
    powerpc/boot: Remove support for Marvell MPSC serial controller
    powerpc/embedded6xx: Remove C2K board support
    powerpc/lib: optimise PPC32 memcmp
    powerpc/lib: optimise 32 bits __clear_user()
    powerpc/time: inline arch_vtime_task_switch()
    powerpc/Makefile: set -mcpu=860 flag for the 8xx
    powerpc: Implement csum_ipv6_magic in assembly
    powerpc/32: Optimise __csum_partial()
    powerpc/lib: Adjust .balign inside string functions for PPC32
    ...

    Linus Torvalds
     

25 May, 2018

1 commit

  • Trivial fix to remove the following sparse warnings:

    arch/powerpc/kernel/module_32.c:112:74: warning: Using plain integer as NULL pointer
    arch/powerpc/kernel/module_32.c:117:74: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:1155:28: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:1230:20: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:1385:36: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:1752:23: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:2084:19: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:2110:32: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:2167:19: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:2183:19: warning: Using plain integer as NULL pointer
    drivers/macintosh/via-pmu.c:277:20: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/setup.c:155:67: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/setup.c:247:27: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/setup.c:249:27: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/setup.c:252:37: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/tlb_hash32.c:127:21: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/tlb_hash32.c:148:21: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/tlb_hash32.c:44:21: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/tlb_hash32.c:57:21: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/tlb_hash32.c:87:21: warning: Using plain integer as NULL pointer
    arch/powerpc/kernel/btext.c:160:31: warning: Using plain integer as NULL pointer
    arch/powerpc/kernel/btext.c:167:22: warning: Using plain integer as NULL pointer
    arch/powerpc/kernel/btext.c:274:21: warning: Using plain integer as NULL pointer
    arch/powerpc/kernel/btext.c:285:31: warning: Using plain integer as NULL pointer
    arch/powerpc/include/asm/hugetlb.h:204:16: warning: Using plain integer as NULL pointer
    arch/powerpc/mm/ppc_mmu_32.c:170:21: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/pci.c:1227:23: warning: Using plain integer as NULL pointer
    arch/powerpc/platforms/powermac/pci.c:65:24: warning: Using plain integer as NULL pointer

    Also use `--fix` command line option from `script/checkpatch --strict` to
    remove the following:

    CHECK: Comparison to NULL could be written "!dispDeviceBase"
    #72: FILE: arch/powerpc/kernel/btext.c:160:
    + if (dispDeviceBase == NULL)

    CHECK: Comparison to NULL could be written "!vbase"
    #80: FILE: arch/powerpc/kernel/btext.c:167:
    + if (vbase == NULL)

    CHECK: Comparison to NULL could be written "!base"
    #89: FILE: arch/powerpc/kernel/btext.c:274:
    + if (base == NULL)

    CHECK: Comparison to NULL could be written "!dispDeviceBase"
    #98: FILE: arch/powerpc/kernel/btext.c:285:
    + if (dispDeviceBase == NULL)

    CHECK: Comparison to NULL could be written "strstr"
    #117: FILE: arch/powerpc/kernel/module_32.c:117:
    + if (strstr(secstrings + sechdrs[i].sh_name, ".debug") != NULL)

    CHECK: Comparison to NULL could be written "!Hash"
    #130: FILE: arch/powerpc/mm/ppc_mmu_32.c:170:
    + if (Hash == NULL)

    CHECK: Comparison to NULL could be written "Hash"
    #143: FILE: arch/powerpc/mm/tlb_hash32.c:44:
    + if (Hash != NULL) {

    CHECK: Comparison to NULL could be written "!Hash"
    #152: FILE: arch/powerpc/mm/tlb_hash32.c:57:
    + if (Hash == NULL) {

    CHECK: Comparison to NULL could be written "!Hash"
    #161: FILE: arch/powerpc/mm/tlb_hash32.c:87:
    + if (Hash == NULL) {

    CHECK: Comparison to NULL could be written "!Hash"
    #170: FILE: arch/powerpc/mm/tlb_hash32.c:127:
    + if (Hash == NULL) {

    CHECK: Comparison to NULL could be written "!Hash"
    #179: FILE: arch/powerpc/mm/tlb_hash32.c:148:
    + if (Hash == NULL) {

    ERROR: space required after that ';' (ctx:VxV)
    #192: FILE: arch/powerpc/platforms/powermac/pci.c:65:
    + for (; node != NULL;node = node->sibling) {

    CHECK: Comparison to NULL could be written "node"
    #192: FILE: arch/powerpc/platforms/powermac/pci.c:65:
    + for (; node != NULL;node = node->sibling) {

    CHECK: Comparison to NULL could be written "!region"
    #201: FILE: arch/powerpc/platforms/powermac/pci.c:1227:
    + if (region == NULL)

    CHECK: Comparison to NULL could be written "of_get_property"
    #214: FILE: arch/powerpc/platforms/powermac/setup.c:155:
    + if (of_get_property(np, "cache-unified", NULL) != NULL && dc) {

    CHECK: Comparison to NULL could be written "!np"
    #223: FILE: arch/powerpc/platforms/powermac/setup.c:247:
    + if (np == NULL)

    CHECK: Comparison to NULL could be written "np"
    #226: FILE: arch/powerpc/platforms/powermac/setup.c:249:
    + if (np != NULL) {

    CHECK: Comparison to NULL could be written "l2cr"
    #230: FILE: arch/powerpc/platforms/powermac/setup.c:252:
    + if (l2cr != NULL) {

    CHECK: Comparison to NULL could be written "via"
    #243: FILE: drivers/macintosh/via-pmu.c:277:
    + if (via != NULL)

    CHECK: Comparison to NULL could be written "current_req"
    #252: FILE: drivers/macintosh/via-pmu.c:1155:
    + if (current_req != NULL) {

    CHECK: Comparison to NULL could be written "!req"
    #261: FILE: drivers/macintosh/via-pmu.c:1230:
    + if (req == NULL || pmu_state != idle

    CHECK: Comparison to NULL could be written "!req"
    #270: FILE: drivers/macintosh/via-pmu.c:1385:
    + if (req == NULL) {

    CHECK: Comparison to NULL could be written "!pp"
    #288: FILE: drivers/macintosh/via-pmu.c:2084:
    + if (pp == NULL)

    CHECK: Comparison to NULL could be written "!pp"
    #297: FILE: drivers/macintosh/via-pmu.c:2110:
    + if (count < 1 || pp == NULL)

    CHECK: Comparison to NULL could be written "!pp"
    #306: FILE: drivers/macintosh/via-pmu.c:2167:
    + if (pp == NULL)

    CHECK: Comparison to NULL could be written "pp"
    #315: FILE: drivers/macintosh/via-pmu.c:2183:
    + if (pp != NULL) {

    Link: https://github.com/linuxppc/linux/issues/37
    Signed-off-by: Mathieu Malaterre
    Signed-off-by: Michael Ellerman

    Mathieu Malaterre
     

16 May, 2018

1 commit


14 May, 2018

1 commit


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