Skip to content
  1. Apr 12, 2018
  2. Apr 10, 2018
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · d8312a3f
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM:
         - VHE optimizations
      
         - EL2 address space randomization
      
         - speculative execution mitigations ("variant 3a", aka execution past
           invalid privilege register access)
      
         - bugfixes and cleanups
      
        PPC:
         - improvements for the radix page fault handler for HV KVM on POWER9
      
        s390:
         - more kvm stat counters
      
         - virtio gpu plumbing
      
         - documentation
      
         - facilities improvements
      
        x86:
         - support for VMware magic I/O port and pseudo-PMCs
      
         - AMD pause loop exiting
      
         - support for AMD core performance extensions
      
         - support for synchronous register access
      
         - expose nVMX capabilities to userspace
      
         - support for Hyper-V signaling via eventfd
      
         - use Enlightened VMCS when running on Hyper-V
      
         - allow userspace to disable MWAIT/HLT/PAUSE vmexits
      
         - usual roundup of optimizations and nested virtualization bugfixes
      
        Generic:
         - API selftest infrastructure (though the only tests are for x86 as
           of now)"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (174 commits)
        kvm: x86: fix a prototype warning
        kvm: selftests: add sync_regs_test
        kvm: selftests: add API testing infrastructure
        kvm: x86: fix a compile warning
        KVM: X86: Add Force Emulation Prefix for "emulate the next instruction"
        KVM: X86: Introduce handle_ud()
        KVM: vmx: unify adjacent #ifdefs
        x86: kvm: hide the unused 'cpu' variable
        KVM: VMX: remove bogus WARN_ON in handle_ept_misconfig
        Revert "KVM: X86: Fix SMRAM accessing even if VM is shutdown"
        kvm: Add emulation for movups/movupd
        KVM: VMX: raise internal error for exception during invalid protected mode state
        KVM: nVMX: Optimization: Dont set KVM_REQ_EVENT when VMExit with nested_run_pending
        KVM: nVMX: Require immediate-exit when event reinjected to L2 and L1 event pending
        KVM: x86: Fix misleading comments on handling pending exceptions
        KVM: x86: Rename interrupt.pending to interrupt.injected
        KVM: VMX: No need to clear pending NMI/interrupt on inject realmode interrupt
        x86/kvm: use Enlightened VMCS when running on Hyper-V
        x86/hyper-v: detect nested features
        x86/hyper-v: define struct hv_enlightened_vmcs and clean field bits
        ...
      d8312a3f
    • Linus Torvalds's avatar
      Fix subtle macro variable shadowing in min_not_zero() · e9092d0d
      Linus Torvalds authored
      Commit 3c8ba0d6 ("kernel.h: Retain constant expression output for
      max()/min()") rewrote our min/max macros to be very clever, but in the
      meantime resurrected a variable name shadow issue that we had had
      previously fixed in commit 589a9785 ("min/max: remove sparse
      warnings when they're nested").
      
      That commit talks about the sparse warnings that this shadowing causes,
      which we ignored as just a minor annoyance.  But it turns out that the
      sparse warning is the least of our problems.  We actually have a real
      bug due to the shadowing through the interaction with "min_not_zero()",
      which ends up doing
      
         min(__x, __y)
      
      internally, and then the new declaration of "__x" and "__y" as new
      variables in __cmp_once() results in a complete mess of an expression,
      and "min_not_zero()" doesn't work at all.
      
      For some odd reason, this only ever caused (reported) problems on s390,
      even though it is a generic issue and most of the (obviously successful)
      testing of the problematic commit had happened on other architectures.
      
      Quoting Sebastian Ott:
       "What happened is that the bio build by the partition detection code
        was attempted to be split by the block layer because the block queue
        had a max_sector setting of 0. blk_queue_max_hw_sectors uses
        min_not_zero."
      
      So re-introduce the use of __UNIQUE_ID() to make sure that the min/max
      macros do not have these kinds of clashes.
      
      [ That said, __UNIQUE_ID() itself has several issues that make it less
        than wonderful.
      
        In particular, the "uniqueness" has a fallback on the line number,
        which means that it's not actually unique in more complex cases if you
        don't build with gcc or clang (which have working unique counters that
        aren't tied to line numbers).
      
        That historical broken fallback also means that we have that pointless
        "prefix" argument that doesn't actually make much sense _except_ for
        the known-broken case. Oh well. ]
      
      Fixes: 3c8ba0d6
      
       ("kernel.h: Retain constant expression output for max()/min()")
      Reported-and-tested-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e9092d0d
    • Linus Torvalds's avatar
      Merge branch 'for-linus-sa1100' of git://git.armlinux.org.uk/~rmk/linux-arm · 7886e8aa
      Linus Torvalds authored
      Pull ARM SA1100 updates from Russell King:
       "We have support for arbitary MMIO registers providing platform GPIOs,
        which allows us to abstract some of the SA11x0 CF support.
      
        This set of updates makes that change"
      
      * 'for-linus-sa1100' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: sa1100/simpad: switch simpad CF to use gpiod APIs
        ARM: sa1100/shannon: convert to generic CF sockets
        ARM: sa1100/nanoengine: convert to generic CF sockets
        ARM: sa1100/h3xxx: switch h3xxx PCMCIA to use gpiod APIs
        ARM: sa1100/cerf: convert to generic CF sockets
        ARM: sa1100/assabet: convert to generic CF sockets
        ARM: sa1100: provide infrastructure to support generic CF sockets
        pcmcia: sa1100: provide generic CF support
      7886e8aa
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 4a1e0052
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "A number of core ARM changes:
      
         - Refactoring linker script by Nicolas Pitre
      
         - Enable source fortification
      
         - Add support for Cortex R8"
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: decompressor: fix warning introduced in fortify patch
        ARM: 8751/1: Add support for Cortex-R8 processor
        ARM: 8749/1: Kconfig: Add ARCH_HAS_FORTIFY_SOURCE
        ARM: simplify and fix linker script for TCM
        ARM: linker script: factor out TCM bits
        ARM: linker script: factor out vectors and stubs
        ARM: linker script: factor out unwinding table sections
        ARM: linker script: factor out stuff for the .text section
        ARM: linker script: factor out stuff for the DISCARD section
        ARM: linker script: factor out some common definitions between XIP and non-XIP
      4a1e0052
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 2025fef0
      Linus Torvalds authored
      Pull m68knommu update from Greg Ungerer:
       "Only a single fix to set the DMA masks in the ColdFire FEC platform
        data structure.
      
        This stops the warning from dma-mapping.h at boot time"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: set dma and coherent masks for platform FEC ethernets
      2025fef0
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · 5148408a
      Linus Torvalds authored
      Pull alpha updates from Matt Turner:
       "A few small changes for alpha"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: io: reorder barriers to guarantee writeX() and iowriteX() ordering
        alpha: Implement CPU vulnerabilities sysfs functions.
        alpha: rtc: stop validating rtc_time in .read_time
        alpha: rtc: remove unused set_mmss ops
      5148408a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · becdce1c
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
      
       - Improvements for the spectre defense:
          * The spectre related code is consolidated to a single file
            nospec-branch.c
          * Automatic enable/disable for the spectre v2 defenses (expoline vs.
            nobp)
          * Syslog messages for specve v2 are added
          * Enable CONFIG_GENERIC_CPU_VULNERABILITIES and define the attribute
            functions for spectre v1 and v2
      
       - Add helper macros for assembler alternatives and use them to shorten
         the code in entry.S.
      
       - Add support for persistent configuration data via the SCLP Store Data
         interface. The H/W interface requires a page table that uses 4K pages
         only, the code to setup such an address space is added as well.
      
       - Enable virtio GPU emulation in QEMU. To do this the depends
         statements for a few common Kconfig options are modified.
      
       - Add support for format-3 channel path descriptors and add a binary
         sysfs interface to export the associated utility strings.
      
       - Add a sysfs attribute to control the IFCC handling in case of
         constant channel errors.
      
       - The vfio-ccw changes from Cornelia.
      
       - Bug fixes and cleanups.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (40 commits)
        s390/kvm: improve stack frame constants in entry.S
        s390/lpp: use assembler alternatives for the LPP instruction
        s390/entry.S: use assembler alternatives
        s390: add assembler macros for CPU alternatives
        s390: add sysfs attributes for spectre
        s390: report spectre mitigation via syslog
        s390: add automatic detection of the spectre defense
        s390: move nobp parameter functions to nospec-branch.c
        s390/cio: add util_string sysfs attribute
        s390/chsc: query utility strings via fmt3 channel path descriptor
        s390/cio: rename struct channel_path_desc
        s390/cio: fix unbind of io_subchannel_driver
        s390/qdio: split up CCQ handling for EQBS / SQBS
        s390/qdio: don't retry EQBS after CCQ 96
        s390/qdio: restrict buffer merging to eligible devices
        s390/qdio: don't merge ERROR output buffers
        s390/qdio: simplify math in get_*_buffer_frontier()
        s390/decompressor: trim uncompressed image head during the build
        s390/crypto: Fix kernel crash on aes_s390 module remove.
        s390/defkeymap: fix global init to zero
        ...
      becdce1c
  3. Apr 09, 2018
  4. Apr 08, 2018
    • Linus Torvalds's avatar
      Merge branch 'next-integrity' of... · f8cf2f16
      Linus Torvalds authored
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
      
      Pull integrity updates from James Morris:
       "A mixture of bug fixes, code cleanup, and continues to close
        IMA-measurement, IMA-appraisal, and IMA-audit gaps.
      
        Also note the addition of a new cred_getsecid LSM hook by Matthew
        Garrett:
      
           For IMA purposes, we want to be able to obtain the prepared secid
           in the bprm structure before the credentials are committed. Add a
           cred_getsecid hook that makes this possible.
      
        which is used by a new CREDS_CHECK target in IMA:
      
           In ima_bprm_check(), check with both the existing process
           credentials and the credentials that will be committed when the new
           process is started. This will not change behaviour unless the
           system policy is extended to include CREDS_CHECK targets -
           BPRM_CHECK will continue to check the same credentials that it did
           previously"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        ima: Fallback to the builtin hash algorithm
        ima: Add smackfs to the default appraise/measure list
        evm: check for remount ro in progress before writing
        ima: Improvements in ima_appraise_measurement()
        ima: Simplify ima_eventsig_init()
        integrity: Remove unused macro IMA_ACTION_RULE_FLAGS
        ima: drop vla in ima_audit_measurement()
        ima: Fix Kconfig to select TPM 2.0 CRB interface
        evm: Constify *integrity_status_msg[]
        evm: Move evm_hmac and evm_hash from evm_main.c to evm_crypto.c
        fuse: define the filesystem as untrusted
        ima: fail signature verification based on policy
        ima: clear IMA_HASH
        ima: re-evaluate files on privileged mounted filesystems
        ima: fail file signature verification on non-init mounted filesystems
        IMA: Support using new creds in appraisal policy
        security: Add a cred_getsecid hook
      f8cf2f16
    • Linus Torvalds's avatar
      Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 4b3f1a15
      Linus Torvalds authored
      Pull TPM updates from James Morris:
       "This release contains only bug fixes. There are no new major features
        added"
      
      * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        tpm: fix intermittent failure with self tests
        tpm: add retry logic
        tpm: self test failure should not cause suspend to fail
        tpm2: add longer timeouts for creation commands.
        tpm_crb: use __le64 annotated variable for response buffer address
        tpm: fix buffer type in tpm_transmit_cmd
        tpm: tpm-interface: fix tpm_transmit/_cmd kdoc
        tpm: cmd_ready command can be issued only after granting locality
      4b3f1a15
    • Linus Torvalds's avatar
      Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 706ffc8c
      Linus Torvalds authored
      Pull smack update from James Morris:
       "One small change for Automotive Grade Linux"
      
      * 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        Smack: Handle CGROUP2 in the same way that CGROUP
      706ffc8c
    • Sinan Kaya's avatar
      alpha: io: reorder barriers to guarantee writeX() and iowriteX() ordering · cd0e00c1
      Sinan Kaya authored
      
      
      memory-barriers.txt has been updated with the following requirement.
      
      "When using writel(), a prior wmb() is not needed to guarantee that the
      cache coherent memory writes have completed before writing to the MMIO
      region."
      
      Current writeX() and iowriteX() implementations on alpha are not
      satisfying this requirement as the barrier is after the register write.
      
      Move mb() in writeX() and iowriteX() functions to guarantee that HW
      observes memory changes before performing register operations.
      
      Signed-off-by: default avatarSinan Kaya <okaya@codeaurora.org>
      Reported-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      cd0e00c1
    • Michael Cree's avatar
      alpha: Implement CPU vulnerabilities sysfs functions. · 6fd16ce5
      Michael Cree authored
      
      
      Implement the CPU vulnerabilty show functions for meltdown, spectre_v1
      and spectre_v2 on Alpha.
      
      Tests on XP1000 (EV67/667MHz) and ES45 (EV68CB/1.25GHz) show them
      to be vulnerable to Meltdown and Spectre V1.  In the case of
      Meltdown I saw a 1 to 2% success rate in reading bytes on the
      XP1000 and 50 to 60% success rate on the ES45. (This compares to
      99.97% success reported for Intel CPUs.)  Report EV6 and later
      CPUs as vulnerable.
      
      Tests on PWS600au (EV56/600MHz) for Spectre V1 attack were
      unsuccessful (though I did not try particularly hard) so mark EV4
      through to EV56 as not vulnerable.
      
      Signed-off-by: default avatarMichael Cree <mcree@orcon.net.nz>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      6fd16ce5
    • Alexandre Belloni's avatar
      alpha: rtc: stop validating rtc_time in .read_time · 54f16b19
      Alexandre Belloni authored
      
      
      The RTC core is always calling rtc_valid_tm after the read_time callback.
      It is not necessary to call it just before returning from the callback.
      
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      54f16b19
    • Alexandre Belloni's avatar
      alpha: rtc: remove unused set_mmss ops · 9917df83
      Alexandre Belloni authored
      
      
      The .set_mmss and .setmmss64 ops are only called when the RTC is not
      providing an implementation for the .set_time callback.
      
      On alpha, .set_time is provided so .set_mmss64 is never called. Remove the
      unused code.
      
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
      9917df83
    • Linus Torvalds's avatar
      Merge branch 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · bf6879dc
      Linus Torvalds authored
      Pull alpha syscall cleanups from Al Viro:
       "A couple of SYSCALL_DEFINE conversions and removal of pointless (and
        bitrotted) piece stuck in ret_from_kernel_thread since the
        kernel_exceve/kernel_thread conversions six years ago"
      
      * 'misc.compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        alpha: get rid of pointless insn in ret_from_kernel_thread
        alpha: switch pci syscalls to SYSCALL_DEFINE
      bf6879dc
    • Linus Torvalds's avatar
      Merge branch 'misc.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8844a509
      Linus Torvalds authored
      Pull sparc syscall cleanups from Al Viro:
       "sparc syscall stuff - killing pointless wrappers, conversions to
        {COMPAT_,}SYSCALL_DEFINE"
      
      * 'misc.sparc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        sparc: get rid of asm wrapper for nis_syscall()
        sparc: switch compat {f,}truncate64() to COMPAT_SYSCALL_DEFINE
        sparc: switch compat pread64 and pwrite64 to COMPAT_SYSCALL_DEFINE
        convert compat sync_file_range() to COMPAT_SYSCALL_DEFINE
        switch sparc_remap_file_pages() to SYSCALL_DEFINE
        sparc: get rid of memory_ordering(2) wrapper
        sparc: trivial conversions to {COMPAT_,}SYSCALL_DEFINE()
        sparc: bury a zombie extern that had been that way for twenty years
        sparc: get rid of remaining SIGN... wrappers
        sparc: kill useless SIGN... wrappers
        sparc: get rid of sys_sparc_pipe() wrappers
      8844a509
    • Linus Torvalds's avatar
      treewide: fix up files incorrectly marked executable · 90fda63f
      Linus Torvalds authored
      
      
      Joe Perches noted that we have a few source files that for some
      inexplicable reason (read: I'm too lazy to even go look at the history)
      are marked executable:
      
        drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
        drivers/net/ethernet/cadence/macb_ptp.c
      
      A simple git command line to show executable C/asm/header files is this:
      
          git ls-files -s '*.[chsS]' | grep '^100755'
      
      and then you can fix them up with scripting by just feeding that output
      into:
      
          | cut -f2 | xargs chmod -x
      
      and commit it.
      
      Which is exactly what this commit does.
      
      Reported-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      90fda63f
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 0d5b1bd3
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
      
       -I2C core now reports proper OF style module alias. I'd like to repeat
        the note from the commit msg here (Thanks, Javier!):
      
            NOTE: This patch may break out-of-tree drivers that were relying
                  on this behavior, and only had an I2C device ID table even
                  when the device was registered via OF.
      
                  There are no remaining drivers in mainline that do this, but
                  out-of-tree drivers have to be fixed and define a proper OF
                  device ID table to have module auto-loading working.
      
       - new driver for the SynQuacer I2C controller
      
       - major refactoring of the QUP driver
      
       - the piix4 driver now uses request_muxed_region which should fix a
         long standing resource conflict with the sp5100_tco watchdog
      
       - a bunch of small core & driver improvements
      
      * 'i2c/for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (53 commits)
        i2c: add support for Socionext SynQuacer I2C controller
        dt-bindings: i2c: add binding for Socionext SynQuacer I2C
        i2c: Update i2c_trace_msg static key to modern api
        i2c: fix parameter of trace_i2c_result
        i2c: imx: avoid taking clk_prepare mutex in PM callbacks
        i2c: imx: use clk notifier for rate changes
        i2c: make i2c_check_addr_validity() static
        i2c: rcar: fix mask value of prohibited bit
        dt-bindings: i2c: document R8A77965 bindings
        i2c: pca-platform: drop gpio from platform data
        i2c: pca-platform: use device_property_read_u32
        i2c: pca-platform: unconditionally use devm_gpiod_get_optional
        sh: sh7785lcr: add GPIO lookup table for i2c controller reset
        i2c: qup: reorganization of driver code to remove polling for qup v2
        i2c: qup: reorganization of driver code to remove polling for qup v1
        i2c: qup: send NACK for last read sub transfers
        i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
        i2c: qup: change completion timeout according to transfer length
        i2c: qup: use the complete transfer length to choose DMA mode
        i2c: qup: proper error handling for i2c error in BAM mode
        ...
      0d5b1bd3
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 49a695ba
      Linus Torvalds authored
      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
        ...
      49a695ba
    • Linus Torvalds's avatar
      Merge tag 'leaks-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks · 299f89d5
      Linus Torvalds authored
      Pull leaking-addresses updates from Tobin Harding:
       "This set represents improvements to the scripts/leaking_addresses.pl
        script.
      
        The major improvement is that with this set applied the script
        actually runs in a reasonable amount of time (less than a minute on a
        standard stock Ubuntu user desktop). Also, we have a second maintainer
        now and a tree hosted on kernel.org
      
        We do a few code clean ups. We fix the command help output. Handling
        of the vsyscall address range is fixed to check the whole range
        instead of just the start/end addresses. We add support for 5 page
        table levels (suggested on LKML). We use a system command to get the
        machine architecture instead of using Perl. Calling this command for
        every regex comparison is what previously choked the script, caching
        the result of this call gave the major speed improvement. We add
        support for scanning 32-bit kernels using the user/kernel memory
        split. Path skipping code refactored and simplified (meaning easier
        script configuration). We remove version numbering. We add a variable
        name to improve readability of a regex and finally we check filenames
        for leaking addresses.
      
        Currently script scans /proc/PID for all PID. With this set applied we
        only scan for PID==1. It was observed that on an idle system files
        under /proc/PID are predominantly the same for all processes. Also it
        was noted that the script does not scan _all_ the kernel since it only
        scans active processes. Scanning only for PID==1 makes explicit the
        inherent flaw in the script that the scan is only partial and also
        speeds things up"
      
      * tag 'leaks-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks:
        MAINTAINERS: Update LEAKING_ADDRESSES
        leaking_addresses: check if file name contains address
        leaking_addresses: explicitly name variable used in regex
        leaking_addresses: remove version number
        leaking_addresses: skip '/proc/1/syscall'
        leaking_addresses: skip all /proc/PID except /proc/1
        leaking_addresses: cache architecture name
        leaking_addresses: simplify path skipping
        leaking_addresses: do not parse binary files
        leaking_addresses: add 32-bit support
        leaking_addresses: add is_arch() wrapper subroutine
        leaking_addresses: use system command to get arch
        leaking_addresses: add support for 5 page table levels
        leaking_addresses: add support for kernel config file
        leaking_addresses: add range check for vsyscall memory
        leaking_addresses: indent dependant options
        leaking_addresses: remove command examples
        leaking_addresses: remove mention of kptr_restrict
        leaking_addresses: fix typo function not called
      299f89d5
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.17-rc1' of... · fc22e19a
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest update from Shuah Khan:
       "This Kselftest update for 4.17-rc1 consists of:
      
         - Test build error fixes
      
         - Fixes to prevent intel_pstate from building on non-x86 systems.
      
         - New test for ion with vgem driver.
      
         - Change to print the test name to /dev/kmsg to add context to kernel
           failures if any uncovered from running the test.
      
         - Kselftest framework enhancements to add KSFT_TAP_LEVEL environment
           variable to prevent nested TAP headers being printed in the
           Kselftest output.
      
           Nested TAP13 headers could cause problems for some parsers. This
           change suppresses the nested headers from test programs and test
           shell scripts with changes to framework and Makefiles without
           changing the tests"
      
      * tag 'linux-kselftest-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/intel_pstate: Fix build rule for x86
        selftests: Print the test we're running to /dev/kmsg
        selftests/seccomp: Allow get_metadata to XFAIL
        selftests/android/ion: Makefile: fix build error
        selftests: futex Makefile add top level TAP header echo to RUN_TESTS
        selftests: Makefile set KSFT_TAP_LEVEL to prevent nested TAP headers
        selftests: lib.mk set KSFT_TAP_LEVEL to prevent nested TAP headers
        selftests: kselftest framework: add handling for TAP header level
        selftests: ion: Add simple test with the vgem driver
        selftests: ion: Remove some prints
      fc22e19a
    • Linus Torvalds's avatar
      Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 3612605a
      Linus Torvalds authored
      Pull general security layer updates from James Morris:
      
       - Convert security hooks from list to hlist, a nice cleanup, saving
         about 50% of space, from Sargun Dhillon.
      
       - Only pass the cred, not the secid, to kill_pid_info_as_cred and
         security_task_kill (as the secid can be determined from the cred),
         from Stephen Smalley.
      
       - Close a potential race in kernel_read_file(), by making the file
         unwritable before calling the LSM check (vs after), from Kees Cook.
      
      * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        security: convert security hooks to use hlist
        exec: Set file unwritable before LSM check
        usb, signal, security: only pass the cred, not the secid, to kill_pid_info_as_cred and security_task_kill
      3612605a
    • Linus Torvalds's avatar
      Merge tag 'fscache-next-20180406' of... · 62f8e6c5
      Linus Torvalds authored
      Merge tag 'fscache-next-20180406' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull fscache updates from David Howells:
       "Three patches that fix some of AFS's usage of fscache:
      
         (1) Need to invalidate the cache if a foreign data change is detected
             on the server.
      
         (2) Move the vnode ID uniquifier (equivalent to i_generation) from
             the auxiliary data to the index key to prevent a race between
             file delete and a subsequent file create seeing the same index
             key.
      
         (3) Need to retire cookies that correspond to files that we think got
             deleted on the server.
      
        Four patches to fix some things in fscache and cachefiles:
      
         (4) Fix a couple of checker warnings.
      
         (5) Correctly indicate to the end-of-operation callback whether an
             operation completed or was cancelled.
      
         (6) Add a check for multiple cookie relinquishment.
      
         (7) Fix a path through the asynchronous write that doesn't wake up a
             waiter for a page if the cache decides not to write that page,
             but discards it instead.
      
        A couple of patches to add tracepoints to fscache and cachefiles:
      
         (8) Add tracepoints for cookie operators, object state machine
             execution, cachefiles object management and cachefiles VFS
             operations.
      
         (9) Add tracepoints for fscache operation management and page
             wrangling.
      
        And then three development patches:
      
        (10) Attach the index key and auxiliary data to the cookie, pass this
             information through various fscache-netfs API functions and get
             rid of the callbacks to the netfs to get it.
      
             This means that the cache can get at this information, even if
             the netfs goes away. It also means that the cache can be lazy in
             updating the coherency data.
      
        (11) Pass the object data size through various fscache-netfs API
             rather than calling back to the netfs for it, and store the value
             in the object.
      
             This makes it easier to correctly resize the object, as the size
             is updated on writes to the cache, rather than calling back out
             to the netfs.
      
        (12) Maintain a catalogue of allocated cookies. This makes it possible
             to catch cookie collision up front rather than down in the bowels
             of the cache being run from a service thread from the object
             state machine.
      
             This will also make it possible in the future to reconnect to a
             cookie that's not gone dead yet because it's waiting for
             finalisation of the storage and also make it possible to bring
             cookies online if the cache is added after the cookie has been
             obtained"
      
      * tag 'fscache-next-20180406' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        fscache: Maintain a catalogue of allocated cookies
        fscache: Pass object size in rather than calling back for it
        fscache: Attach the index key and aux data to the cookie
        fscache: Add more tracepoints
        fscache: Add tracepoints
        fscache: Fix hanging wait on page discarded by writeback
        fscache: Detect multiple relinquishment of a cookie
        fscache: Pass the correct cancelled indications to fscache_op_complete()
        fscache, cachefiles: Fix checker warnings
        afs: Be more aggressive in retiring cached vnodes
        afs: Use the vnode ID uniquifier in the cache key not the aux data
        afs: Invalidate cache on server data change
      62f8e6c5
  5. Apr 07, 2018
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.17-rc1' of git://github.com/awilliam/linux-vfio · f605ba97
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Adopt iommu_unmap_fast() interface to type1 backend
         (Suravee Suthikulpanit)
      
       - mdev sample driver fixup (Shunyong Yang)
      
       - More efficient PFN mapping handling in type1 backend
         (Jason Cai)
      
       - VFIO device ioeventfd interface (Alex Williamson)
      
       - Tag new vfio-platform sub-maintainer (Alex Williamson)
      
      * tag 'vfio-v4.17-rc1' of git://github.com/awilliam/linux-vfio:
        MAINTAINERS: vfio/platform: Update sub-maintainer
        vfio/pci: Add ioeventfd support
        vfio/pci: Use endian neutral helpers
        vfio/pci: Pull BAR mapping setup from read-write path
        vfio/type1: Improve memory pinning process for raw PFN mapping
        vfio-mdev/samples: change RDI interrupt condition
        vfio/type1: Adopt fast IOTLB flush interface when unmap IOVAs
      f605ba97
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 016c6f25
      Linus Torvalds authored
      Pull fw_cfg, vhost updates from Michael Tsirkin:
       "This cleans up the qemu fw cfg device driver.
      
        On top of this, vmcore is dumped there on crash to help debugging
        with kASLR enabled.
      
        Also included are some fixes in vhost"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vhost: add vsock compat ioctl
        vhost: fix vhost ioctl signature to build with clang
        fw_cfg: write vmcoreinfo details
        crash: export paddr_vmcoreinfo_note()
        fw_cfg: add DMA register
        fw_cfg: add a public uapi header
        fw_cfg: handle fw_cfg_read_blob() error
        fw_cfg: remove inline from fw_cfg_read_blob()
        fw_cfg: fix sparse warnings around FW_CFG_FILE_DIR read
        fw_cfg: fix sparse warning reading FW_CFG_ID
        fw_cfg: fix sparse warnings with fw_cfg_file
        fw_cfg: fix sparse warnings in fw_cfg_sel_endianness()
        ptr_ring: fix build
      016c6f25
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 3c0d551e
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - move pci_uevent_ers() out of pci.h (Michael Ellerman)
      
       - skip ASPM common clock warning if BIOS already configured it (Sinan
         Kaya)
      
       - fix ASPM Coverity warning about threshold_ns (Gustavo A. R. Silva)
      
       - remove last user of pci_get_bus_and_slot() and the function itself
         (Sinan Kaya)
      
       - add decoding for 16 GT/s link speed (Jay Fang)
      
       - add interfaces to get max link speed and width (Tal Gilboa)
      
       - add pcie_bandwidth_capable() to compute max supported link bandwidth
         (Tal Gilboa)
      
       - add pcie_bandwidth_available() to compute bandwidth available to
         device (Tal Gilboa)
      
       - add pcie_print_link_status() to log link speed and whether it's
         limited (Tal Gilboa)
      
       - use PCI core interfaces to report when device performance may be
         limited by its slot instead of doing it in each driver (Tal Gilboa)
      
       - fix possible cpqphp NULL pointer dereference (Shawn Lin)
      
       - rescan more of the hierarchy on ACPI hotplug to fix Thunderbolt/xHCI
         hotplug (Mika Westerberg)
      
       - add support for PCI I/O port space that's neither directly accessible
         via CPU in/out instructions nor directly mapped into CPU physical
         memory space. This is fairly intrusive and includes minor changes to
         interfaces used for I/O space on most platforms (Zhichang Yuan, John
         Garry)
      
       - add support for HiSilicon Hip06/Hip07 LPC I/O space (Zhichang Yuan,
         John Garry)
      
       - use PCI_EXP_DEVCTL2_COMP_TIMEOUT in rapidio/tsi721 (Bjorn Helgaas)
      
       - remove possible NULL pointer dereference in of_pci_bus_find_domain_nr()
         (Shawn Lin)
      
       - report quirk timings with dev_info (Bjorn Helgaas)
      
       - report quirks that take longer than 10ms (Bjorn Helgaas)
      
       - add and use Altera Vendor ID (Johannes Thumshirn)
      
       - tidy Makefiles and comments (Bjorn Helgaas)
      
       - don't set up INTx if MSI or MSI-X is enabled to align cris, frv,
         ia64, and mn10300 with x86 (Bjorn Helgaas)
      
       - move pcieport_if.h to drivers/pci/pcie/ to encapsulate it (Frederick
         Lawler)
      
       - merge pcieport_if.h into portdrv.h (Bjorn Helgaas)
      
       - move workaround for BIOS PME issue from portdrv to PCI core (Bjorn
         Helgaas)
      
       - completely disable portdrv with "pcie_ports=compat" (Bjorn Helgaas)
      
       - remove portdrv link order dependency (Bjorn Helgaas)
      
       - remove support for unused VC portdrv service (Bjorn Helgaas)
      
       - simplify portdrv feature permission checking (Bjorn Helgaas)
      
       - remove "pcie_hp=nomsi" parameter (use "pci=nomsi" instead) (Bjorn
         Helgaas)
      
       - remove unnecessary "pcie_ports=auto" parameter (Bjorn Helgaas)
      
       - use cached AER capability offset (Frederick Lawler)
      
       - don't enable DPC if BIOS hasn't granted AER control (Mika Westerberg)
      
       - rename pcie-dpc.c to dpc.c (Bjorn Helgaas)
      
       - use generic pci_mmap_resource_range() instead of powerpc and xtensa
         arch-specific versions (David Woodhouse)
      
       - support arbitrary PCI host bridge offsets on sparc (Yinghai Lu)
      
       - remove System and Video ROM reservations on sparc (Bjorn Helgaas)
      
       - probe for device reset support during enumeration instead of runtime
         (Bjorn Helgaas)
      
       - add ACS quirk for Ampere (née APM) root ports (Feng Kan)
      
       - add function 1 DMA alias quirk for Marvell 88SE9220 (Thomas
         Vincent-Cross)
      
       - protect device restore with device lock (Sinan Kaya)
      
       - handle failure of FLR gracefully (Sinan Kaya)
      
       - handle CRS (config retry status) after device resets (Sinan Kaya)
      
       - skip various config reads for SR-IOV VFs as an optimization
         (KarimAllah Ahmed)
      
       - consolidate VPD code in vpd.c (Bjorn Helgaas)
      
       - add Tegra dependency on PCI_MSI_IRQ_DOMAIN (Arnd Bergmann)
      
       - add DT support for R-Car r8a7743 (Biju Das)
      
       - fix a PCI_EJECT vs PCI_BUS_RELATIONS race condition in Hyper-V host
         bridge driver that causes a general protection fault (Dexuan Cui)
      
       - fix Hyper-V host bridge hang in MSI setup on 1-vCPU VMs with SR-IOV
         (Dexuan Cui)
      
       - fix Hyper-V host bridge hang when ejecting a VF before setting up MSI
         (Dexuan Cui)
      
       - make several structures static (Fengguang Wu)
      
       - increase number of MSI IRQs supported by Synopsys DesignWare bridges
         from 32 to 256 (Gustavo Pimentel)
      
       - implemented multiplexed IRQ domain API and remove obsolete MSI IRQ
         API from DesignWare drivers (Gustavo Pimentel)
      
       - add Tegra power management support (Manikanta Maddireddy)
      
       - add Tegra loadable module support (Manikanta Maddireddy)
      
       - handle 64-bit BARs correctly in endpoint support (Niklas Cassel)
      
       - support optional regulator for HiSilicon STB (Shawn Guo)
      
       - use regulator bulk API for Qualcomm apq8064 (Srinivas Kandagatla)
      
       - support power supplies for Qualcomm msm8996 (Srinivas Kandagatla)
      
      * tag 'pci-v4.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (123 commits)
        MAINTAINERS: Add John Garry as maintainer for HiSilicon LPC driver
        HISI LPC: Add ACPI support
        ACPI / scan: Do not enumerate Indirect IO host children
        ACPI / scan: Rename acpi_is_serial_bus_slave() for more general use
        HISI LPC: Support the LPC host on Hip06/Hip07 with DT bindings
        of: Add missing I/O range exception for indirect-IO devices
        PCI: Apply the new generic I/O management on PCI IO hosts
        PCI: Add fwnode handler as input param of pci_register_io_range()
        PCI: Remove __weak tag from pci_register_io_range()
        MAINTAINERS: Add missing /drivers/pci/cadence directory entry
        fm10k: Report PCIe link properties with pcie_print_link_status()
        net/mlx5e: Use pcie_bandwidth_available() to compute bandwidth
        net/mlx5: Report PCIe link properties with pcie_print_link_status()
        net/mlx4_core: Report PCIe link properties with pcie_print_link_status()
        PCI: Add pcie_print_link_status() to log link speed and whether it's limited
        PCI: Add pcie_bandwidth_available() to compute bandwidth available to device
        misc: pci_endpoint_test: Handle 64-bit BARs properly
        PCI: designware-ep: Make dw_pcie_ep_reset_bar() handle 64-bit BARs properly
        PCI: endpoint: Make sure that BAR_5 does not have 64-bit flag set when clearing
        PCI: endpoint: Make epc->ops->clear_bar()/pci_epc_clear_bar() take struct *epf_bar
        ...
      3c0d551e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 19fd08b8
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "Doug and I are at a conference next week so if another PR is sent I
        expect it to only be bug fixes. Parav noted yesterday that there are
        some fringe case behavior changes in his work that he would like to
        fix, and I see that Intel has a number of rc looking patches for HFI1
        they posted yesterday.
      
        Parav is again the biggest contributor by patch count with his ongoing
        work to enable container support in the RDMA stack, followed by Leon
        doing syzkaller inspired cleanups, though most of the actual fixing
        went to RC.
      
        There is one uncomfortable series here fixing the user ABI to actually
        work as intended in 32 bit mode. There are lots of notes in the commit
        messages, but the basic summary is we don't think there is an actual
        32 bit kernel user of drivers/infiniband for several good reasons.
      
        However we are seeing people want to use a 32 bit user space wi...
      19fd08b8
    • Linus Torvalds's avatar
      Merge tag 'mailbox-v4.17' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 28da7be5
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - New Hi3660 mailbox driver
      
       - Fix TEGRA Kconfig warning
      
       - Broadcom: use dma_pool_zalloc instead of dma_pool_alloc+memset
      
      * tag 'mailbox-v4.17' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: Add support for Hi3660 mailbox
        dt-bindings: mailbox: Introduce Hi3660 controller binding
        mailbox: tegra: relax TEGRA_HSP_MBOX Kconfig dependencies
        maillbox: bcm-flexrm-mailbox: Use dma_pool_zalloc()
      28da7be5
    • Tobin C. Harding's avatar
      MAINTAINERS: Update LEAKING_ADDRESSES · e875d33d
      Tobin C. Harding authored
      
      
      MAINTAINERS is out of date for leaking_addresses.pl. There is now a tree on
      kernel.org for development of this script.  We have a second maintainer now,
      thanks Tycho.  Development of this scripts was started on kernel-hardening
      mailing list so let's keep it there.
      
      Update maintainer details; Add mailing list, kernel.org hosted tree, and second
      maintainer.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      e875d33d
    • Tobin C. Harding's avatar
      leaking_addresses: check if file name contains address · c73dff59
      Tobin C. Harding authored
      
      
      Sometimes files may be created by using output from printk.  As the scan
      traverses the directory tree we should parse each path name and check if
      it is leaking an address.
      
      Add check for leaking address on each path name.
      
      Suggested-by: default avatarTycho Andersen <tycho@tycho.ws>
      Acked-by: default avatarTycho Andersen <tycho@tycho.ws>
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      c73dff59
    • Tobin C. Harding's avatar
      leaking_addresses: explicitly name variable used in regex · 2306a677
      Tobin C. Harding authored
      
      
      Currently sub routine may_leak_address() is checking regex against Perl
      special variable $_ which is _fortunately_ being set correctly in a loop
      before this sub routine is called.  We already have declared a variable
      to hold this value '$line' we should use it.
      
      Use $line in regex match instead of implicit $_
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      2306a677
    • Tobin C. Harding's avatar
      leaking_addresses: remove version number · 34827374
      Tobin C. Harding authored
      
      
      We have git now, we don't need a version number.  This was originally
      added because leaking_addresses.pl shamelessly (and mindlessly) copied
      checkpatch.pl
      
      Remove version number from script.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      34827374
    • Tobin C. Harding's avatar
      leaking_addresses: skip '/proc/1/syscall' · 2ad74293
      Tobin C. Harding authored
      
      
      The pointers listed in /proc/1/syscall are user pointers, and negative
      syscall args will show up like kernel addresses.
      
      For example
      
      /proc/31808/syscall: 0 0x3 0x55b107a38180 0x2000 0xffffffffffffffb0 \
      0x55b107a302d0 0x55b107a38180 0x7fffa313b8e8 0x7ff098560d11
      
      Skip parsing /proc/1/syscall
      
      Suggested-by: default avatarTycho Andersen <tycho@tycho.ws>
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      2ad74293
    • Tobin C. Harding's avatar
      leaking_addresses: skip all /proc/PID except /proc/1 · 472c9e10
      Tobin C. Harding authored
      
      
      When the system is idle it is likely that most files under /proc/PID
      will be identical for various processes.  Scanning _all_ the PIDs under
      /proc is unnecessary and implies that we are thoroughly scanning /proc.
      This is _not_ the case because there may be ways userspace can trigger
      creation of /proc files that leak addresses but were not present during
      a scan.  For these two reasons we should exclude all PID directories
      under /proc except '1/'
      
      Exclude all /proc/PID except /proc/1.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      472c9e10
    • Tobin C. Harding's avatar
      leaking_addresses: cache architecture name · 5e4bac34
      Tobin C. Harding authored
      
      
      Currently we are repeatedly calling `uname -m`.  This is causing the
      script to take a long time to run (more than 10 seconds to parse
      /proc/kallsyms).  We can use Perl state variables to cache the result of
      the first call to `uname -m`.  With this change in place the script
      scans the whole kernel in under a minute.
      
      Cache machine architecture in state variable.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      5e4bac34
    • Tobin C. Harding's avatar
      leaking_addresses: simplify path skipping · b401f56f
      Tobin C. Harding authored
      
      
      Currently script has multiple configuration arrays.  This is confusing,
      evident by the fact that a bunch of the entries are in the wrong place.
      We can simplify the code by just having a single array for absolute
      paths to skip and a single array for file names to skip wherever they
      appear in the scanned directory tree.  There are also currently multiple
      subroutines to handle the different arrays, we can reduce these to a
      single subroutine also.
      
      Simplify the path skipping code.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      b401f56f
    • Tobin C. Harding's avatar
      leaking_addresses: do not parse binary files · e2858cad
      Tobin C. Harding authored
      
      
      Currently script parses binary files.  Since we are scanning for
      readable kernel addresses there is no need to parse binary files.  We
      can use Perl to check if file is binary and skip parsing it if so.
      
      Do not parse binary files.
      
      Signed-off-by: default avatarTobin C. Harding <me@tobin.cc>
      e2858cad