09 Jan, 2019

3 commits

  • In preparation for checking that the vectors page on the ARM
    architecture, refactor the find_vdso_map() function to accept finding an
    arbitrary string and create a dedicated helper function for that under
    util/find-map.c and update the filename to find-map.c and all references
    to it: perf-read-vdso.c and util/vdso.c.

    Signed-off-by: Florian Fainelli
    Acked-by: Jiri Olsa
    Cc: Alexander Shishkin
    Cc: Chris Healy
    Cc: Greg Kroah-Hartman
    Cc: Kim Phillips
    Cc: Lucas Stach
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Cc: Ravi Bangoria
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Thomas Richter
    Link: http://lkml.kernel.org/r/20181221034337.26663-2-f.fainelli@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Florian Fainelli
     
  • We were not taking into account the "... [continued]" printed
    characters, fix it.

    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Luis Cláudio Gonçalves
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: https://lkml.kernel.org/n/tip-qt20y0acmf8k0bzisce8kw95@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • When we get the sys_enter for a syscall we check if the last one is
    still waiting for its matching sys_exit, if so we print this:

    468.753 ( ): firefox/32382 poll(ufds: 0x7f3988d3dd00, nfds: 7, timeout_msecs: 4294967295) ...
    449.575 ( 0.004 ms): Softwar~cThrea/32434 futex(uaddr: 0x7f39a18a9b70, op: WAKE|PRIVATE_FLAG, val: 1) = 0

    At some point we'll get that poll sys_exit event and will print a "[continued]" line.

    While making the sizing of the alignment after the syscall arg list and
    its result configurable, so that we can mimic strace, which uses a
    smaller alingment by default, a bug was introduced where the closing
    parens appeared before the syscall name and its arg list, fix it.

    Fixes: 4b8a240ed5e0 ("perf trace: Add alignment spaces after the closing parens")
    Cc: Adrian Hunter
    Cc: Jiri Olsa
    Cc: Luis Cláudio Gonçalves
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: https://lkml.kernel.org/n/tip-oi45i54s59h1w1kmgpzrfuum@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

08 Jan, 2019

1 commit

  • …nux/kernel/git/acme/linux into perf/urgent

    Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

    perf annotate:

    Ivan Krylov:

    - Pass filename to objdump via execl, fixing usage with filenames
    with special characters.

    perf report:

    Jin Yao:

    Fix wrong iteration count in --branch-history

    perf stat:

    Jin Yao:

    - Fix endless wait for child process

    perf test:

    Arnaldo Carvalho de Melo:

    - Use a fallback to get the pathname in vfs_getname in

    tools build:

    Jiri Olsa:

    - Allow overriding CFLAGS assignments.

    Misc:

    Arnaldo Carvalho de Melo:

    - Syncronize UAPI headers

    Mattias Jacobsson:

    - Remove redundant va_end() in strbuf_addv()

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     

07 Jan, 2019

11 commits

  • For some reasons, I accidentally got rid of "generic-y += shmparam.h"
    from some architectures.

    Restore them to fix building c6x, h8300, hexagon, m68k, microblaze,
    openrisc, and unicore32.

    Fixes: d6e4b3e326d8 ("arch: remove redundant UAPI generic-y defines")
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • Linus Torvalds
     
  • Pull more Kbuild updates from Masahiro Yamada:

    - improve boolinit.cocci and use_after_iter.cocci semantic patches

    - fix alignment for kallsyms

    - move 'asm goto' compiler test to Kconfig and clean up jump_label
    CONFIG option

    - generate asm-generic wrappers automatically if arch does not
    implement mandatory UAPI headers

    - remove redundant generic-y defines

    - misc cleanups

    * tag 'kbuild-v4.21-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kconfig: rename generated .*conf-cfg to *conf-cfg
    kbuild: remove unnecessary stubs for archheader and archscripts
    kbuild: use assignment instead of define ... endef for filechk_* rules
    arch: remove redundant UAPI generic-y defines
    kbuild: generate asm-generic wrappers if mandatory headers are missing
    arch: remove stale comments "UAPI Header export list"
    riscv: remove redundant kernel-space generic-y
    kbuild: change filechk to surround the given command with { }
    kbuild: remove redundant target cleaning on failure
    kbuild: clean up rule_dtc_dt_yaml
    kbuild: remove UIMAGE_IN and UIMAGE_OUT
    jump_label: move 'asm goto' support test to Kconfig
    kallsyms: lower alignment on ARM
    scripts: coccinelle: boolinit: drop warnings on named constants
    scripts: coccinelle: check for redeclaration
    kconfig: remove unused "file" field of yylval union
    nds32: remove redundant kernel-space generic-y
    nios2: remove unneeded HAS_DMA define

    Linus Torvalds
     
  • Pull perf tooling updates form Ingo Molnar:
    "A final batch of perf tooling changes: mostly fixes and small
    improvements"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits)
    perf session: Add comment for perf_session__register_idle_thread()
    perf thread-stack: Fix thread stack processing for the idle task
    perf thread-stack: Allocate an array of thread stacks
    perf thread-stack: Factor out thread_stack__init()
    perf thread-stack: Allow for a thread stack array
    perf thread-stack: Avoid direct reference to the thread's stack
    perf thread-stack: Tidy thread_stack__bottom() usage
    perf thread-stack: Simplify some code in thread_stack__process()
    tools gpio: Allow overriding CFLAGS
    tools power turbostat: Override CFLAGS assignments and add LDFLAGS to build command
    tools thermal tmon: Allow overriding CFLAGS assignments
    tools power x86_energy_perf_policy: Override CFLAGS assignments and add LDFLAGS to build command
    perf c2c: Increase the HITM ratio limit for displayed cachelines
    perf c2c: Change the default coalesce setup
    perf trace beauty ioctl: Beautify USBDEVFS_ commands
    perf trace beauty: Export function to get the files for a thread
    perf trace: Wire up ioctl's USBDEBFS_ cmd table generator
    perf beauty ioctl: Add generator for USBDEVFS_ ioctl commands
    tools headers uapi: Grab a copy of usbdevice_fs.h
    perf trace: Store the major number for a file when storing its pathname
    ...

    Linus Torvalds
     
  • The semantics of what "in core" means for the mincore() system call are
    somewhat unclear, but Linux has always (since 2.3.52, which is when
    mincore() was initially done) treated it as "page is available in page
    cache" rather than "page is mapped in the mapping".

    The problem with that traditional semantic is that it exposes a lot of
    system cache state that it really probably shouldn't, and that users
    shouldn't really even care about.

    So let's try to avoid that information leak by simply changing the
    semantics to be that mincore() counts actual mapped pages, not pages
    that might be cheaply mapped if they were faulted (note the "might be"
    part of the old semantics: being in the cache doesn't actually guarantee
    that you can access them without IO anyway, since things like network
    filesystems may have to revalidate the cache before use).

    In many ways the old semantics were somewhat insane even aside from the
    information leak issue. From the very beginning (and that beginning is
    a long time ago: 2.3.52 was released in March 2000, I think), the code
    had a comment saying

    Later we can get more picky about what "in core" means precisely.

    and this is that "later". Admittedly it is much later than is really
    comfortable.

    NOTE! This is a real semantic change, and it is for example known to
    change the output of "fincore", since that program literally does a
    mmmap without populating it, and then doing "mincore()" on that mapping
    that doesn't actually have any pages in it.

    I'm hoping that nobody actually has any workflow that cares, and the
    info leak is real.

    We may have to do something different if it turns out that people have
    valid reasons to want the old semantics, and if we can limit the
    information leak sanely.

    Cc: Kevin Easton
    Cc: Jiri Kosina
    Cc: Masatake YAMATO
    Cc: Andrew Morton
    Cc: Greg KH
    Cc: Peter Zijlstra
    Cc: Michal Hocko
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Commit 594cc251fdd0 ("make 'user_access_begin()' do 'access_ok()'")
    broke both alpha and SH booting in qemu, as noticed by Guenter Roeck.

    It turns out that the bug wasn't actually in that commit itself (which
    would have been surprising: it was mostly a no-op), but in how the
    addition of access_ok() to the strncpy_from_user() and strnlen_user()
    functions now triggered the case where those functions would test the
    access of the very last byte of the user address space.

    The string functions actually did that user range test before too, but
    they did it manually by just comparing against user_addr_max(). But
    with user_access_begin() doing the check (using "access_ok()"), it now
    exposed problems in the architecture implementations of that function.

    For example, on alpha, the access_ok() helper macro looked like this:

    #define __access_ok(addr, size) \
    ((get_fs().seg & (addr | size | (addr+size))) == 0)

    and what it basically tests is of any of the high bits get set (the
    USER_DS masking value is 0xfffffc0000000000).

    And that's completely wrong for the "addr+size" check. Because it's
    off-by-one for the case where we check to the very end of the user
    address space, which is exactly what the strn*_user() functions do.

    Why? Because "addr+size" will be exactly the size of the address space,
    so trying to access the last byte of the user address space will fail
    the __access_ok() check, even though it shouldn't. As a result, the
    user string accessor functions failed consistently - because they
    literally don't know how long the string is going to be, and the max
    access is going to be that last byte of the user address space.

    Side note: that alpha macro is buggy for another reason too - it re-uses
    the arguments twice.

    And SH has another version of almost the exact same bug:

    #define __addr_ok(addr) \
    ((unsigned long __force)(addr) < current_thread_info()->addr_limit.seg)

    so far so good: yes, a user address must be below the limit. But then:

    #define __access_ok(addr, size) \
    (__addr_ok((addr) + (size)))

    is wrong with the exact same off-by-one case: the case when "addr+size"
    is exactly _equal_ to the limit is actually perfectly fine (think "one
    byte access at the last address of the user address space")

    The SH version is actually seriously buggy in another way: it doesn't
    actually check for overflow, even though it did copy the _comment_ that
    talks about overflow.

    So it turns out that both SH and alpha actually have completely buggy
    implementations of access_ok(), but they happened to work in practice
    (although the SH overflow one is a serious serious security bug, not
    that anybody likely cares about SH security).

    This fixes the problems by using a similar macro on both alpha and SH.
    It isn't trying to be clever, the end address is based on this logic:

    unsigned long __ao_end = __ao_a + __ao_b - !!__ao_b;

    which basically says "add start and length, and then subtract one unless
    the length was zero". We can't subtract one for a zero length, or we'd
    just hit an underflow instead.

    For a lot of access_ok() users the length is a constant, so this isn't
    actually as expensive as it initially looks.

    Reported-and-tested-by: Guenter Roeck
    Cc: Matt Turner
    Cc: Yoshinori Sato
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull fscrypt updates from Ted Ts'o:
    "Add Adiantum support for fscrypt"

    * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
    fscrypt: add Adiantum support

    Linus Torvalds
     
  • Pull ext4 bug fixes from Ted Ts'o:
    "Fix a number of ext4 bugs"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: fix special inode number checks in __ext4_iget()
    ext4: track writeback errors using the generic tracking infrastructure
    ext4: use ext4_write_inode() when fsyncing w/o a journal
    ext4: avoid kernel warning when writing the superblock to a dead device
    ext4: fix a potential fiemap/page fault deadlock w/ inline_data
    ext4: make sure enough credits are reserved for dioread_nolock writes

    Linus Torvalds
     
  • Pull dma-mapping fixes from Christoph Hellwig:
    "Fix various regressions introduced in this cycles:

    - fix dma-debug tracking for the map_page / map_single
    consolidatation

    - properly stub out DMA mapping symbols for !HAS_DMA builds to avoid
    link failures

    - fix AMD Gart direct mappings

    - setup the dma address for no kernel mappings using the remap
    allocator"

    * tag 'dma-mapping-4.21-1' of git://git.infradead.org/users/hch/dma-mapping:
    dma-direct: fix DMA_ATTR_NO_KERNEL_MAPPING for remapped allocations
    x86/amd_gart: fix unmapping of non-GART mappings
    dma-mapping: remove a few unused exports
    dma-mapping: properly stub out the DMA API for !CONFIG_HAS_DMA
    dma-mapping: remove dmam_{declare,release}_coherent_memory
    dma-mapping: implement dmam_alloc_coherent using dmam_alloc_attrs
    dma-mapping: implement dma_map_single_attrs using dma_map_page_attrs

    Linus Torvalds
     
  • …kernel/git/bleung/chrome-platform

    Pull chrome platform updates from Benson Leung:

    - Changes for EC_MKBP_EVENT_SENSOR_FIFO handling.

    - Also, maintainership changes. Olofj out, Enric balletbo in.

    * tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform:
    MAINTAINERS: add maintainers for ChromeOS EC sub-drivers
    MAINTAINERS: platform/chrome: Add Enric as a maintainer
    MAINTAINERS: platform/chrome: remove myself as maintainer
    platform/chrome: don't report EC_MKBP_EVENT_SENSOR_FIFO as wakeup
    platform/chrome: straighten out cros_ec_get_{next,host}_event() error codes

    Linus Torvalds
     
  • Pull hwspinlock updates from Bjorn Andersson:
    "This adds support for the hardware semaphores found in STM32MP1"

    * tag 'hwlock-v4.21' of git://github.com/andersson/remoteproc:
    hwspinlock: fix return value check in stm32_hwspinlock_probe()
    hwspinlock: add STM32 hwspinlock device
    dt-bindings: hwlock: Document STM32 hwspinlock bindings

    Linus Torvalds
     

06 Jan, 2019

25 commits

  • Add support for the Adiantum encryption mode to fscrypt. Adiantum is a
    tweakable, length-preserving encryption mode with security provably
    reducible to that of XChaCha12 and AES-256, subject to a security bound.
    It's also a true wide-block mode, unlike XTS. See the paper
    "Adiantum: length-preserving encryption for entry-level processors"
    (https://eprint.iacr.org/2018/720.pdf) for more details. Also see
    commit 059c2a4d8e16 ("crypto: adiantum - add Adiantum support").

    On sufficiently long messages, Adiantum's bottlenecks are XChaCha12 and
    the NH hash function. These algorithms are fast even on processors
    without dedicated crypto instructions. Adiantum makes it feasible to
    enable storage encryption on low-end mobile devices that lack AES
    instructions; currently such devices are unencrypted. On ARM Cortex-A7,
    on 4096-byte messages Adiantum encryption is about 4 times faster than
    AES-256-XTS encryption; decryption is about 5 times faster.

    In fscrypt, Adiantum is suitable for encrypting both file contents and
    names. With filenames, it fixes a known weakness: when two filenames in
    a directory share a common prefix of >= 16 bytes, with CTS-CBC their
    encrypted filenames share a common prefix too, leaking information.
    Adiantum does not have this problem.

    Since Adiantum also accepts long tweaks (IVs), it's also safe to use the
    master key directly for Adiantum encryption rather than deriving
    per-file keys, provided that the per-file nonce is included in the IVs
    and the master key isn't used for any other encryption mode. This
    configuration saves memory and improves performance. A new fscrypt
    policy flag is added to allow users to opt-in to this configuration.

    Signed-off-by: Eric Biggers
    Signed-off-by: Theodore Ts'o

    Eric Biggers
     
  • Pull documentation fixes from Jonathan Corbet:
    "A handful of late-arriving documentation fixes"

    * tag 'docs-5.0-fixes' of git://git.lwn.net/linux:
    doc: filesystems: fix bad references to nonexistent ext4.rst file
    Documentation/admin-guide: update URL of LKML information link
    Docs/kernel-api.rst: Remove blk-tag.c reference

    Linus Torvalds
     
  • Pull firewire fixlet from Stefan Richter:
    "Remove an explicit dependency in Kconfig which is implied by another
    dependency"

    * tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: Remove depends on HAS_DMA in case of platform dependency

    Linus Torvalds
     
  • Pull block updates and fixes from Jens Axboe:

    - Pulled in MD changes that Shaohua had queued up for 4.21.

    Unfortunately we lost Shaohua late 2018, I'm sending these in on his
    behalf.

    - In conjunction with the above, I added a CREDITS entry for Shaoua.

    - sunvdc queue restart fix (Ming)

    * tag 'for-linus-20190104' of git://git.kernel.dk/linux-block:
    Add CREDITS entry for Shaohua Li
    block: sunvdc: don't run hw queue synchronously from irq context
    md: fix raid10 hang issue caused by barrier
    raid10: refactor common wait code from regular read/write request
    md: remvoe redundant condition check
    lib/raid6: add option to skip algo benchmarking
    lib/raid6: sort algos in rough performance order
    lib/raid6: check for assembler SSSE3 support
    lib/raid6: avoid __attribute_const__ redefinition
    lib/raid6: add missing include for raid6test
    md: remove set but not used variable 'bi_rdev'

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Happy New Year, just decloaking from leave to get some stuff from the
    last week in before rc1:

    core:
    - two regression fixes for damage blob and atomic

    i915 gvt:
    - Some missed GVT fixes from the original pull

    amdgpu:
    - new PCI IDs
    - SR-IOV fixes
    - DC fixes
    - Vega20 fixes"

    * tag 'drm-next-2019-01-05' of git://anongit.freedesktop.org/drm/drm: (53 commits)
    drm: Put damage blob when destroy plane state
    drm: fix null pointer dereference on null state pointer
    drm/amdgpu: Add new VegaM pci id
    drm/ttm: Use drm_debug_printer for all ttm_bo_mem_space_debug output
    drm/amdgpu: add Vega20 PSP ASD firmware loading
    drm/amd/display: Fix MST dp_blank REG_WAIT timeout
    drm/amd/display: validate extended dongle caps
    drm/amd/display: Use div_u64 for flip timestamp ns to ms
    drm/amdgpu/uvd:Change uvd ring name convention
    drm/amd/powerplay: add Vega20 LCLK DPM level setting support
    drm/amdgpu: print process info when job timeout
    drm/amdgpu/nbio7.4: add hw bug workaround for vega20
    drm/amdgpu/nbio6.1: add hw bug workaround for vega10/12
    drm/amd/display: Optimize passive update planes.
    drm/amd/display: verify lane status before exiting verify link cap
    drm/amd/display: Fix bug with not updating VSP infoframe
    drm/amd/display: Add retry to read ddc_clock pin
    drm/amd/display: Don't skip link training for empty dongle
    drm/amd/display: Wait edp HPD to high in detect_sink
    drm/amd/display: fix surface update sequence
    ...

    Linus Torvalds
     
  • Pull rdma fixes from Jason Gunthorpe:
    "Over the break a few defects were found, so this is a -rc style pull
    request of various small things that have been posted.

    - An attempt to shorten RCU grace period driven delays showed crashes
    during heavier testing, and has been entirely reverted

    - A missed merge/rebase error between the advise_mr and ib_device_ops
    series

    - Some small static analysis driven fixes from Julia and Aditya

    - Missed ability to create a XRC_INI in the devx verbs interop
    series"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
    infiniband/qedr: Potential null ptr dereference of qp
    infiniband: bnxt_re: qplib: Check the return value of send_message
    IB/ipoib: drop useless LIST_HEAD
    IB/core: Add advise_mr to the list of known ops
    Revert "IB/mlx5: Fix long EEH recover time with NVMe offloads"
    IB/mlx5: Allow XRC INI usage via verbs in DEVX context

    Linus Torvalds
     
  • Pull fbdev updates from Bartlomiej Zolnierkiewicz:
    "This time the pull request is really small.

    The most notable changes are fixing fbcon to not cause crash on
    unregister_framebuffer() operation when there is more than one
    framebuffer, adding config option to center the bootup logo and making
    FB_BACKLIGHT config option tristate (which in turn uncovered incorrect
    FB_BACKLIGHT usage by DRM's nouveau driver).

    Summary:

    - fix fbcon to not cause crash on unregister_framebuffer() when there
    is more than one framebuffer (Noralf Trønnes)

    - improve support for small rotated displays (Peter Rosin)

    - fix probe failure handling in udlfb driver (Dan Carpenter)

    - add config option to center the bootup logo (Peter Rosin)

    - make FB_BACKLIGHT config option tristate (Rob Clark)

    - remove superfluous HAS_DMA dependency for goldfishfb driver (Geert
    Uytterhoeven)

    - misc fixes (Alexey Khoroshilov, YueHaibing, Colin Ian King, Lubomir
    Rintel)

    - misc cleanups (Yangtao Li, Wen Yang)

    also there is DRM's nouveau driver fix for wrong FB_BACKLIGHT config
    option usage (FB_BACKLIGHT is for internal fbdev subsystem use only)"

    * tag 'fbdev-v4.21' of git://github.com/bzolnier/linux:
    drm/nouveau: fix incorrect FB_BACKLIGHT usage in Kconfig
    fbdev: fbcon: Fix unregister crash when more than one framebuffer
    fbdev: Remove depends on HAS_DMA in case of platform dependency
    pxa168fb: trivial typo fix
    fbdev: fsl-diu: remove redundant null check on cmap
    fbdev: omap2: omapfb: convert to DEFINE_SHOW_ATTRIBUTE
    fbdev: uvesafb: fix spelling mistake "memoery" -> "memory"
    fbdev: fbmem: add config option to center the bootup logo
    fbdev: fbmem: make fb_show_logo_line return the end instead of the height
    video: fbdev: pxafb: Fix "WARNING: invalid free of devm_ allocated data"
    fbdev: fbmem: behave better with small rotated displays and many CPUs
    video: clps711x-fb: release disp device node in probe()
    fbdev: make FB_BACKLIGHT a tristate
    udlfb: fix some inconsistent NULL checking

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:
    "I2C has only driver updates for you this time.

    Mostly new IDs/DT compatibles, also SPDX conversions, small cleanups.
    STM32F7 got FastMode+ and PM support, Axxia some reliabilty
    improvements"

    * 'i2c/for-5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (26 commits)
    i2c: Add Actions Semiconductor Owl family S700 I2C support
    dt-bindings: i2c: Add S700 support for Actions Semi Soc's
    i2c: ismt: Add support for Intel Cedar Fork
    i2c: tegra: Switch to SPDX identifier
    i2c: tegra: Add missing kerneldoc for some fields
    i2c: tegra: Cleanup kerneldoc comments
    i2c: axxia: support sequence command mode
    dt-bindings: i2c: rcar: Add r8a774c0 support
    dt-bindings: i2c: sh_mobile: Add r8a774c0 support
    i2c: sh_mobile: Add support for r8a774c0 (RZ/G2E)
    i2c: i2c-cros-ec-tunnel: Switch to SPDX identifier.
    i2c: powermac: Use of_node_name_eq for node name comparisons
    i2c-axxia: check for error conditions first
    i2c-axxia: dedicated function to set client addr
    dt-bindings: i2c: Use correct vendor prefix for Atmel
    i2c: tegra: replace spin_lock_irqsave with spin_lock in ISR
    eeprom: at24: add support for 24c2048
    dt-bindings: eeprom: at24: add "atmel,24c2048" compatible string
    i2c: i2c-stm32f7: add PM Runtime support
    i2c: sh_mobile: add support for r8a77990 (R-Car E3)
    ...

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:

    - Remove unused lists from ASPM pcie_link_state (Frederick Lawler)

    - Fix Broadcom CNB20LE host bridge unintended sign extension (Colin Ian
    King)

    - Expand Kconfig "PF" acronyms (Randy Dunlap)

    - Update MAINTAINERS for arch/x86/kernel/early-quirks.c (Bjorn Helgaas)

    - Add missing include to drivers/pci.h (Alexandru Gagniuc)

    - Override Synopsys USB 3.x HAPS device class so dwc3-haps can claim it
    instead of xhci (Thinh Nguyen)

    - Clean up P2PDMA documentation (Randy Dunlap)

    - Allow runtime PM even if driver doesn't supply callbacks (Jarkko
    Nikula)

    - Remove status check after submitting Switchtec MRPC Firmware Download
    commands to avoid Completion Timeouts (Kelvin Cao)

    - Set Switchtec coherent DMA mask to allow 64-bit DMA (Boris Glimcher)

    - Fix Switchtec SWITCHTEC_IOCTL_EVENT_IDX_ALL flag overwrite issue
    (Joey Zhang)

    - Enable write combining for Switchtec MRPC Input buffers (Kelvin Cao)

    - Add Switchtec MRPC DMA mode support (Wesley Sheng)

    - Skip VF scanning on powerpc, which does this in firmware (Sebastian
    Ott)

    - Add Amlogic Meson PCIe controller driver and DT bindings (Yue Wang)

    - Constify histb dw_pcie_host_ops structure (Julia Lawall)

    - Support multiple power domains for imx6 (Leonard Crestez)

    - Constify layerscape driver data (Stefan Agner)

    - Update imx6 Kconfig to allow imx6 PCIe in imx7 kernel (Trent Piepho)

    - Support armada8k GPIO reset (Baruch Siach)

    - Support suspend/resume support on imx6 (Leonard Crestez)

    - Don't hard-code DesignWare DBI/ATU offst (Stephen Warren)

    - Skip i.MX6 PHY setup on i.MX7D (Andrey Smirnov)

    - Remove Jianguo Sun from HiSilicon STB maintainers (Lorenzo Pieralisi)

    - Mask DesignWare interrupts instead of disabling them to avoid lost
    interrupts (Marc Zyngier)

    - Add locking when acking DesignWare interrupts (Marc Zyngier)

    - Ack DesignWare interrupts in the proper callbacks (Marc Zyngier)

    - Use devm resource parser in mediatek (Honghui Zhang)

    - Remove unused mediatek "num-lanes" DT property (Honghui Zhang)

    - Add UniPhier PCIe controller driver and DT bindings (Kunihiko
    Hayashi)

    - Enable MSI for imx6 downstream components (Richard Zhu)

    * tag 'pci-v4.21-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (40 commits)
    PCI: imx: Enable MSI from downstream components
    s390/pci: skip VF scanning
    PCI/IOV: Add flag so platforms can skip VF scanning
    PCI/IOV: Factor out sriov_add_vfs()
    PCI: uniphier: Add UniPhier PCIe host controller support
    dt-bindings: PCI: Add UniPhier PCIe host controller description
    PCI: amlogic: Add the Amlogic Meson PCIe controller driver
    dt-bindings: PCI: meson: add DT bindings for Amlogic Meson PCIe controller
    arm64: dts: mt7622: Remove un-used property for PCIe
    arm: dts: mt7623: Remove un-used property for PCIe
    dt-bindings: PCI: MediaTek: Remove un-used property
    PCI: mediatek: Remove un-used variant in struct mtk_pcie_port
    MAINTAINERS: Remove Jianguo Sun from HiSilicon STB DWC entry
    PCI: dwc: Don't hard-code DBI/ATU offset
    PCI: imx: Add imx6sx suspend/resume support
    PCI: armada8k: Add support for gpio controlled reset signal
    PCI: dwc: Adjust Kconfig to allow IMX6 PCIe host on IMX7
    PCI: dwc: layerscape: Constify driver data
    PCI: imx: Add multi-pd support
    PCI: Override Synopsys USB 3.x HAPS device class
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - high-resolution scrolling support that gracefully handles differences
    between MS and Logitech implementations in HW, from Peter Hutterer
    and Harry Cutts

    - MSI IRQ support for intel-ish driver, from Song Hongyan

    - support for new hardware (Cougar 700K, Odys Winbook 13, ASUS FX503VD,
    ASUS T101HA) from Daniel M. Lambea, Hans de Goede and Aleix Roca
    Nonell

    - other small assorted fixups

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (22 commits)
    HID: i2c-hid: Add Odys Winbook 13 to descriptor override
    HID: lenovo: Add checks to fix of_led_classdev_register
    HID: intel-ish-hid: add MSI interrupt support
    HID: debug: Change to use DEFINE_SHOW_ATTRIBUTE macro
    HID: doc: fix wrong data structure reference for UHID_OUTPUT
    HID: intel-ish-hid: fixes incorrect error handling
    HID: asus: Add support for the ASUS T101HA keyboard dock
    HID: logitech: Use LDJ_DEVICE macro for existing Logitech mice
    HID: logitech: Enable high-resolution scrolling on Logitech mice
    HID: logitech: Add function to enable HID++ 1.0 "scrolling acceleration"
    HID: logitech-hidpp: fix typo, hiddpp to hidpp
    HID: input: use the Resolution Multiplier for high-resolution scrolling
    HID: core: process the Resolution Multiplier
    HID: core: store the collections as a basic tree
    Input: add `REL_WHEEL_HI_RES` and `REL_HWHEEL_HI_RES`
    HID: input: support Microsoft wireless radio control hotkey
    HID: use macros in IS_INPUT_APPLICATION
    HID: asus: Add support for the ASUS FX503VD laptop
    HID: asus: Add event handler to catch unmapped Asus Vendor UsagePage codes
    HID: cougar: Add support for Cougar 700K Gaming Keyboard
    ...

    Linus Torvalds
     
  • Pull livepatch update from Jiri Kosina:
    "Return value checking fixup in livepatching samples, from Nicholas Mc
    Guire"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
    livepatch: check kzalloc return values

    Linus Torvalds
     
  • Remove the dot-prefixing since it is just a matter of the
    .gitignore file.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Make simply skips a missing rule when it is marked as .PHONY.
    Remove the dummy targets.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • You do not have to use define ... endef for filechk_* rules.

    For simple cases, the use of assignment looks cleaner, IMHO.

    I updated the usage for scripts/Kbuild.include in case somebody
    misunderstands the 'define ... endif' is the requirement.

    Signed-off-by: Masahiro Yamada
    Acked-by: Heiko Carstens

    Masahiro Yamada
     
  • Now that Kbuild automatically creates asm-generic wrappers for missing
    mandatory headers, it is redundant to list the same headers in
    generic-y and mandatory-y.

    Suggested-by: Sam Ravnborg
    Signed-off-by: Masahiro Yamada
    Acked-by: Sam Ravnborg

    Masahiro Yamada
     
  • Some time ago, Sam pointed out a certain degree of overwrap between
    generic-y and mandatory-y. (https://lkml.org/lkml/2017/7/10/121)

    I tweaked the meaning of mandatory-y a little bit; now it defines the
    minimum set of ASM headers that all architectures must have.

    If arch does not have specific implementation of a mandatory header,
    Kbuild will let it fallback to the asm-generic one by automatically
    generating a wrapper. This will allow to drop lots of redundant
    generic-y defines.

    Previously, "mandatory" was used in the context of UAPI, but I guess
    this can be extended to kernel space ASM headers.

    Suggested-by: Sam Ravnborg
    Signed-off-by: Masahiro Yamada
    Acked-by: Sam Ravnborg

    Masahiro Yamada
     
  • These comments are leftovers of commit fcc8487d477a ("uapi: export all
    headers under uapi directories").

    Prior to that commit, exported headers must be explicitly added to
    header-y. Now, all headers under the uapi/ directories are exported.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit removes redundant generic-y defines in
    arch/riscv/include/asm/Kbuild.

    [1] It is redundant to define the same generic-y in both
    arch/$(ARCH)/include/asm/Kbuild and
    arch/$(ARCH)/include/uapi/asm/Kbuild.

    Remove the following generic-y:

    errno.h
    fcntl.h
    ioctl.h
    ioctls.h
    ipcbuf.h
    mman.h
    msgbuf.h
    param.h
    poll.h
    posix_types.h
    resource.h
    sembuf.h
    setup.h
    shmbuf.h
    signal.h
    socket.h
    sockios.h
    stat.h
    statfs.h
    swab.h
    termbits.h
    termios.h
    types.h

    [2] It is redundant to define generic-y when arch-specific
    implementation exists in arch/$(ARCH)/include/asm/*.h

    Remove the following generic-y:

    cacheflush.h
    module.h

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • filechk_* rules often consist of multiple 'echo' lines. They must be
    surrounded with { } or ( ) to work correctly. Otherwise, only the
    string from the last 'echo' would be written into the target.

    Let's take care of that in the 'filechk' in scripts/Kbuild.include
    to clean up filechk_* rules.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since commit 9c2af1c7377a ("kbuild: add .DELETE_ON_ERROR special
    target"), the target file is automatically deleted on failure.

    The boilerplate code

    ... || { rm -f $@; false; }

    is unneeded.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Commit 3a2429e1faf4 ("kbuild: change if_changed_rule for multi-line
    recipe") and commit 4f0e3a57d6eb ("kbuild: Add support for DT binding
    schema checks") came in via different sub-systems.

    This is a follow-up cleanup.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The only/last user of UIMAGE_IN/OUT was removed by commit 4722a3e6b716
    ("microblaze: fix multiple bugs in arch/microblaze/boot/Makefile").

    The input and output should always be $< and $@.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Currently, CONFIG_JUMP_LABEL just means "I _want_ to use jump label".

    The jump label is controlled by HAVE_JUMP_LABEL, which is defined
    like this:

    #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
    # define HAVE_JUMP_LABEL
    #endif

    We can improve this by testing 'asm goto' support in Kconfig, then
    make JUMP_LABEL depend on CC_HAS_ASM_GOTO.

    Ugly #ifdef HAVE_JUMP_LABEL will go away, and CONFIG_JUMP_LABEL will
    match to the real kernel capability.

    Signed-off-by: Masahiro Yamada
    Acked-by: Michael Ellerman (powerpc)
    Tested-by: Sedat Dilek

    Masahiro Yamada
     
  • As mentioned in the info pages of gas, the '.align' pseudo op's
    interpretation of the alignment value is architecture specific.
    It might either be a byte value or taken to the power of two.

    On ARM it's actually the latter which leads to unnecessary large
    alignments of 16 bytes for 32 bit builds or 256 bytes for 64 bit
    builds.

    Fix this by switching to '.balign' instead which is consistent
    across all architectures.

    Signed-off-by: Mathias Krause
    Cc: Catalin Marinas
    Cc: Will Deacon
    Signed-off-by: Masahiro Yamada

    Mathias Krause
     
  • Coccinelle doesn't always have access to the values of named
    (#define) constants, and they may likely often be bound to true
    and false values anyway, resulting in false positives. So stop
    warning about them.

    Signed-off-by: Julia Lawall
    Signed-off-by: Masahiro Yamada

    Julia Lawall