12 Apr, 2018

1 commit

  • When issuing a "shutdown -h now", the reboot syscall calls kernel_halt()
    which shouldn't return, otherwise one gets this panic:

    reboot: System halted
    Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
    CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 4.16.0-32bit+ #560
    Backtrace:
    [] show_stack+0x18/0x28
    [] dump_stack+0x80/0x10c
    [] panic+0xfc/0x290
    [] do_exit+0x73c/0x914
    [] SyS_reboot+0x190/0x1d4
    [] syscall_exit+0x0/0x14

    Fix it by letting machine_halt() call machine_power_off() which doesn't
    return.

    Signed-off-by: Helge Deller

    Helge Deller
     

11 Apr, 2018

16 commits

  • Drop our own compat binfmt implementation in
    arch/parisc/kernel/binfmt_elf32.c in favour of the generic
    implementation with CONFIG_COMPAT_BINFMT_ELF.

    While cleaning up the dependencies, I noticed that ELF_PLATFORM was strangely
    defined: On a 32-bit kernel, it was defined to "PARISC", while when running in
    compat mode on a 64-bit kernel it was defined to "PARISC32". Since it doesn't
    seem to be used in glibc yet, it's now defined in both cases to "PARISC". In
    any case, it can be distinguished because it's either a 32-bit or a 64-bit ELF
    file.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • and move the disable_sr_hashing() C and assembly functions into the
    .init section.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Posix and common sense requires that SI_USER not be a signal specific
    si_code. Thus add a new FPE_CONDTRAP si_code for conditional traps.

    Signed-off-by: Helge Deller
    Cc: Stephen Rothwell

    Helge Deller
     
  • Pull ceph updates from Ilya Dryomov:
    "The big ticket items are:

    - support for rbd "fancy" striping (myself).

    The striping feature bit is now fully implemented, allowing mapping
    v2 images with non-default striping patterns. This completes
    support for --image-format 2.

    - CephFS quota support (Luis Henriques and Zheng Yan).

    This set is based on the new SnapRealm code in the upcoming v13.y.z
    ("Mimic") release. Quota handling will be rejected on older
    filesystems.

    - memory usage improvements in CephFS (Chengguang Xu).

    Directory specific bits have been split out of ceph_file_info and
    some effort went into improving cap reservation code to avoid OOM
    crashes.

    Also included a bunch of assorted fixes all over the place from
    Chengguang and others"

    * tag 'ceph-for-4.17-rc1' of git://github.com/ceph/ceph-client: (67 commits)
    ceph: quota: report root dir quota usage in statfs
    ceph: quota: add counter for snaprealms with quota
    ceph: quota: cache inode pointer in ceph_snap_realm
    ceph: fix root quota realm check
    ceph: don't check quota for snap inode
    ceph: quota: update MDS when max_bytes is approaching
    ceph: quota: support for ceph.quota.max_bytes
    ceph: quota: don't allow cross-quota renames
    ceph: quota: support for ceph.quota.max_files
    ceph: quota: add initial infrastructure to support cephfs quotas
    rbd: remove VLA usage
    rbd: fix spelling mistake: "reregisteration" -> "reregistration"
    ceph: rename function drop_leases() to a more descriptive name
    ceph: fix invalid point dereference for error case in mdsc destroy
    ceph: return proper bool type to caller instead of pointer
    ceph: optimize memory usage
    ceph: optimize mds session register
    libceph, ceph: add __init attribution to init funcitons
    ceph: filter out used flags when printing unused open flags
    ceph: don't wait on writeback when there is no more dirty pages
    ...

    Linus Torvalds
     
  • Pull x86 platform driver updates from Andy Shevchenko:

    - Dell SMBIOS driver fixed against memory leaks.

    - The fujitsu-laptop driver is cleaned up and now supports hotkeys for
    Lifebook U7x7 models. Besides that the typo introduced by one of
    previous clean up series has been fixed.

    - Specific to x86-based laptops HID device now supports
    KEY_ROTATE_LOCK_TOGGLE event which is emitted, for example, by Wacom
    MobileStudio Pro 13.

    - Turbo MAX 3 technology is enabled for the rest of platforms that
    support Hardware-P-States feature which have core priority described
    by ACPI CPPC table.

    - Mellanox on x86 gets better support of I2C bus in use including
    support of hotpluggable ones.

    - Silead touchscreen is enabled on two tablet models, i.e Yours Y8W81
    and I.T.Works TW701.

    - From now on the second fan on Thinkpad P50 is supported.

    - The topstar-laptop driver is reworked to support new models, in
    particular Topstar U931.

    * tag 'platform-drivers-x86-v4.17-1' of git://git.infradead.org/linux-platform-drivers-x86: (41 commits)
    platform/x86: thinkpad_acpi: Add 2nd Fan Support for Thinkpad P50
    platform/x86: dell-smbios: Fix memory leaks in build_tokens_sysfs()
    intel-hid: support KEY_ROTATE_LOCK_TOGGLE
    intel-hid: clean up and sort header files
    platform/x86: silead_dmi: Add entry for the Yours Y8W81 tablet
    platform/x86: fujitsu-laptop: Support Lifebook U7x7 hotkeys
    platform/x86: mlx-platform: Add physical bus number auto detection
    platform/mellanox: mlxreg-hotplug: Change input for device create routine
    platform/x86: mlx-platform: Add deffered bus functionality
    platform/x86: mlx-platform: Use define for the channel numbers
    platform/x86: fujitsu-laptop: Revert UNSUPPORTED_CMD back to an int
    platform/x86: Fix dell driver init order
    platform/x86: dell-smbios: Resolve dependency error on ACPI_WMI
    platform/x86: dell-smbios: Resolve dependency error on DCDBAS
    platform/x86: Allow for SMBIOS backend defaults
    platform/x86: dell-smbios: Link all dell-smbios-* modules together
    platform/x86: dell-smbios: Rename dell-smbios source to dell-smbios-base
    platform/x86: dell-smbios: Correct some style warnings
    platform/x86: wmi: Fix misuse of vsprintf extension %pULL
    platform/x86: intel-hid: Reset wakeup capable flag on removal
    ...

    Linus Torvalds
     
  • Pull dmaengine updates from Vinod Koul:
    "This time we have couple of new drivers along with updates to drivers:

    - new drivers for the DesignWare AXI DMAC and MediaTek High-Speed DMA
    controllers

    - stm32 dma and qcom bam dma driver updates

    - norandom test option for dmatest"

    * tag 'dmaengine-4.17-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (30 commits)
    dmaengine: stm32-dma: properly mask irq bits
    dmaengine: stm32-dma: fix max items per transfer
    dmaengine: stm32-dma: fix DMA IRQ status handling
    dmaengine: stm32-dma: Improve memory burst management
    dmaengine: stm32-dma: fix typo and reported checkpatch warnings
    dmaengine: stm32-dma: fix incomplete configuration in cyclic mode
    dmaengine: stm32-dma: threshold manages with bitfield feature
    dt-bindings: stm32-dma: introduce DMA features bitfield
    dt-bindings: rcar-dmac: Document r8a77470 support
    dmaengine: rcar-dmac: Fix too early/late system suspend/resume callbacks
    dmaengine: dw-axi-dmac: fix spelling mistake: "catched" -> "caught"
    dmaengine: edma: Check the memory allocation for the memcpy dma device
    dmaengine: at_xdmac: fix rare residue corruption
    dmaengine: mediatek: update MAINTAINERS entry with MediaTek DMA driver
    dmaengine: mediatek: Add MediaTek High-Speed DMA controller for MT7622 and MT7623 SoC
    dt-bindings: dmaengine: Add MediaTek High-Speed DMA controller bindings
    dt-bindings: Document the Synopsys DW AXI DMA bindings
    dmaengine: Introduce DW AXI DMAC driver
    dmaengine: pl330: fix a race condition in case of threaded irqs
    dmaengine: imx-sdma: fix pagefault when channel is disabled during interrupt
    ...

    Linus Torvalds
     
  • Pull remoteproc updates from Bjorn Andersson:

    - add support for generating coredumps for remoteprocs using
    devcoredump

    - add the Qualcomm sysmon driver for intra-remoteproc crash handling

    - a number of fixes in Qualcomm and IMX drivers

    * tag 'rproc-v4.17' of git://github.com/andersson/remoteproc:
    remoteproc: fix null pointer dereference on glink only platforms
    soc: qcom: qmi: add CONFIG_NET dependency
    remoteproc: imx_rproc: Slightly simplify code in 'imx_rproc_probe()'
    remoteproc: imx_rproc: Re-use existing error handling path in 'imx_rproc_probe()'
    remoteproc: imx_rproc: Fix an error handling path in 'imx_rproc_probe()'
    samples: Introduce Qualcomm QMI sample client
    remoteproc: qcom: Introduce sysmon
    remoteproc: Pass type of shutdown to subdev remove
    remoteproc: qcom: Register segments for core dump
    soc: qcom: mdt-loader: Return relocation base
    remoteproc: Rename "load_rsc_table" to "parse_fw"
    remoteproc: Add remote processor coredump support
    remoteproc: Remove null character write of shared mem

    Linus Torvalds
     
  • Pull rpmsg updates from Bjorn Andersson:

    - transition the rpmsg_trysend() code paths of SMD and GLINK to use
    non-sleeping locks

    - revert the overly optimistic handling of discovered SMD channels

    - fix an issue in SMD where incoming messages race with the probing of
    a client driver

    * tag 'rpmsg-v4.17' of git://github.com/andersson/remoteproc:
    rpmsg: smd: Use announce_create to process any receive work
    rpmsg: Only invoke announce_create for rpdev with endpoints
    rpmsg: smd: Fix container_of macros
    Revert "rpmsg: smd: Create device for all channels"
    rpmsg: glink: Use spinlock in tx path
    rpmsg: smd: Use spinlock in tx path
    rpmsg: smd: use put_device() if device_register fail
    rpmsg: glink: use put_device() if device_register fail

    Linus Torvalds
     
  • Pull c6x updates from Mark Salter.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    c6x: pass endianness info to sparse
    c6x: fix platforms/plldata.c get_coreid build error
    c6x: remove unused KTHREAD_SIZE definition

    Linus Torvalds
     
  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.17. Rough overview:

    (1) generic platform: Add support for Microsemi Ocelot SoCs

    (2) crypto: Add CRC32 and CRC32C HW acceleration module

    (3) Various cleanups and misc improvements

    More detailed summary:

    Miscellaneous:
    - hang more efficiently on halt/powerdown/restart
    - pm-cps: Block system suspend when a JTAG probe is present
    - expand make help text for generic defconfigs
    - refactor handling of legacy defconfigs
    - determine the entry point from the ELF file header to fix microMIPS
    for certain toolchains
    - introduce isa-rev.h for MIPS_ISA_REV and use to simplify other code

    Minor cleanups:
    - DTS: boston/ci20: Unit name cleanups and correction
    - kdump: Make the default for PHYSICAL_START always 64-bit
    - constify gpio_led in Alchemy, AR7, and TXX9
    - silence a couple of W=1 warnings
    - remove duplicate includes

    Platform support:
    Generic platform:
    - add support for Microsemi Ocelot
    - dt-bindings: Add vendor prefix for Microsemi Corporation
    - dt-bindings: Add bindings for Microsemi SoCs
    - add ocelot SoC & PCB123 board DTS files
    - MAINTAINERS: Add entry for Microsemi MIPS SoCs
    - enable crc32-mips on r6 configs

    ath79:
    - fix AR724X_PLL_REG_PCIE_CONFIG offset

    BCM47xx:
    - firmware: Use mac_pton() for MAC address parsing
    - add Luxul XAP1500/XWR1750 WiFi LEDs
    - use standard reset button for Luxul XWR-1750

    BMIPS:
    - enable CONFIG_BRCMSTB_PM in bmips_stb_defconfig for build coverage
    - add STB PM, wake-up timer, watchdog DT nodes

    Octeon:
    - drop '.' after newlines in printk calls

    ralink:
    - pci-mt7621: Enable PCIe on MT7688"

    * tag 'mips_4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (37 commits)
    MIPS: BCM47XX: Use standard reset button for Luxul XWR-1750
    MIPS: BCM47XX: Add Luxul XAP1500/XWR1750 WiFi LEDs
    MIPS: Make the default for PHYSICAL_START always 64-bit
    MIPS: Use the entry point from the ELF file header
    MAINTAINERS: Add entry for Microsemi MIPS SoCs
    MIPS: generic: Add support for Microsemi Ocelot
    MIPS: mscc: Add ocelot PCB123 device tree
    MIPS: mscc: Add ocelot dtsi
    dt-bindings: mips: Add bindings for Microsemi SoCs
    dt-bindings: Add vendor prefix for Microsemi Corporation
    MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
    MIPS: pci-mt7620: Enable PCIe on MT7688
    MIPS: pm-cps: Block system suspend when a JTAG probe is present
    MIPS: VDSO: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: BPF: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: cpu-features.h: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: Introduce isa-rev.h to define MIPS_ISA_REV
    MIPS: Hang more efficiently on halt/powerdown/restart
    FIRMWARE: bcm47xx_nvram: Replace mac address parsing
    MIPS: BMIPS: Add Broadcom STB watchdog nodes
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "New features:

    - Tom Zanussi's extended histogram work.

    This adds the synthetic events to have histograms from multiple
    event data Adds triggers "onmatch" and "onmax" to call the
    synthetic events Several updates to the histogram code from this

    - Allow way to nest ring buffer calls in the same context

    - Allow absolute time stamps in ring buffer

    - Rewrite of filter code parsing based on Al Viro's suggestions

    - Setting of trace_clock to global if TSC is unstable (on boot)

    - Better OOM handling when allocating large ring buffers

    - Added initcall tracepoints (consolidated initcall_debug code with
    them)

    And other various fixes and clean ups"

    * tag 'trace-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (68 commits)
    init: Have initcall_debug still work without CONFIG_TRACEPOINTS
    init, tracing: Have printk come through the trace events for initcall_debug
    init, tracing: instrument security and console initcall trace events
    init, tracing: Add initcall trace events
    tracing: Add rcu dereference annotation for test func that touches filter->prog
    tracing: Add rcu dereference annotation for filter->prog
    tracing: Fixup logic inversion on setting trace_global_clock defaults
    tracing: Hide global trace clock from lockdep
    ring-buffer: Add set/clear_current_oom_origin() during allocations
    ring-buffer: Check if memory is available before allocation
    lockdep: Add print_irqtrace_events() to __warn
    vsprintf: Do not preprocess non-dereferenced pointers for bprintf (%px and %pK)
    tracing: Uninitialized variable in create_tracing_map_fields()
    tracing: Make sure variable string fields are NULL-terminated
    tracing: Add action comparisons when testing matching hist triggers
    tracing: Don't add flag strings when displaying variable references
    tracing: Fix display of hist trigger expressions containing timestamps
    ftrace: Drop a VLA in module_exists()
    tracing: Mention trace_clock=global when warning about unstable clocks
    tracing: Default to using trace_global_clock if sched_clock is unstable
    ...

    Linus Torvalds
     
  • Pull libnvdimm updates from Dan Williams:
    "This cycle was was not something I ever want to repeat as there were
    several late changes that have only now just settled.

    Half of the branch up to commit d2c997c0f145 ("fs, dax: use
    page->mapping to warn...") have been in -next for several releases.
    The of_pmem driver and the address range scrub rework were late
    arrivals, and the dax work was scaled back at the last moment.

    The of_pmem driver missed a previous merge window due to an oversight.
    A sense of obligation to rectify that miss is why it is included for
    4.17. It has acks from PowerPC folks. Stephen reported a build failure
    that only occurs when merging it with your latest tree, for now I have
    fixed that up by disabling modular builds of of_pmem. A test merge
    with your tree has received a build success report from the 0day robot
    over 156 configs.

    An initial version of the ARS rework was submitted before the merge
    window. It is self contained to libnvdimm, a net code reduction, and
    passing all unit tests.

    The filesystem-dax changes are based on the wait_var_event()
    functionality from tip/sched/core. However, late review feedback
    showed that those changes regressed truncate performance to a large
    degree. The branch was rewound to drop the truncate behavior change
    and now only includes preparation patches and cleanups (with full acks
    and reviews). The finalization of this dax-dma-vs-trnucate work will
    need to wait for 4.18.

    Summary:

    - A rework of the filesytem-dax implementation provides for detection
    of unmap operations (truncate / hole punch) colliding with
    in-progress device-DMA. A fix for these collisions remains a
    work-in-progress pending resolution of truncate latency and
    starvation regressions.

    - The of_pmem driver expands the users of libnvdimm outside of x86
    and ACPI to describe an implementation of persistent memory on
    PowerPC with Open Firmware / Device tree.

    - Address Range Scrub (ARS) handling is completely rewritten to
    account for the fact that ARS may run for 100s of seconds and there
    is no platform defined way to cancel it. ARS will now no longer
    block namespace initialization.

    - The NVDIMM Namespace Label implementation is updated to handle
    label areas as small as 1K, down from 128K.

    - Miscellaneous cleanups and updates to unit test infrastructure"

    * tag 'libnvdimm-for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (39 commits)
    libnvdimm, of_pmem: workaround OF_NUMA=n build error
    nfit, address-range-scrub: add module option to skip initial ars
    nfit, address-range-scrub: rework and simplify ARS state machine
    nfit, address-range-scrub: determine one platform max_ars value
    powerpc/powernv: Create platform devs for nvdimm buses
    doc/devicetree: Persistent memory region bindings
    libnvdimm: Add device-tree based driver
    libnvdimm: Add of_node to region and bus descriptors
    libnvdimm, region: quiet region probe
    libnvdimm, namespace: use a safe lookup for dimm device name
    libnvdimm, dimm: fix dpa reservation vs uninitialized label area
    libnvdimm, testing: update the default smart ctrl_temperature
    libnvdimm, testing: Add emulation for smart injection commands
    nfit, address-range-scrub: introduce nfit_spa->ars_state
    libnvdimm: add an api to cast a 'struct nd_region' to its 'struct device'
    nfit, address-range-scrub: fix scrub in-progress reporting
    dax, dm: allow device-mapper to operate without dax support
    dax: introduce CONFIG_DAX_DRIVER
    fs, dax: use page->mapping to warn if truncate collides with a busy page
    ext2, dax: introduce ext2_dax_aops
    ...

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "This contains a few series that have been in preparation for a while
    and that will help systems with RTCs that will fail in 2038, 2069 or
    2100.

    Subsystem:
    - Add tracepoints
    - Rework of the RTC/nvmem API to allow drivers to discard struct
    nvmem_config after registration
    - New range API, drivers can now expose the useful range of the RTC
    - New offset API the core is now able to add an offset to the RTC
    time, modifying the supported range.
    - Multiple rtc_time64_to_tm fixes
    - Handle time_t overflow on 32 bit platforms in the core instead of
    letting drivers do crazy things.
    - remove rtc_control API

    New driver:
    - Intersil ISL12026

    Drivers:
    - Drivers exposing the RTC non volatile memory have been converted to
    use nvmem
    - Removed useless time and date validation
    - Removed an indirection pattern that was a cargo cult from ancient
    drivers
    - Removed VLA usage
    - Fixed a possible race condition in probe functions
    - AB8540 support is dropped from ab8500
    - pcf85363 now has alarm support"

    * tag 'rtc-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (128 commits)
    rtc: snvs: Fix usage of snvs_rtc_enable
    rtc: mt7622: fix module autoloading for OF platform drivers
    rtc: isl12022: use true and false for boolean values
    rtc: ab8500: Drop AB8540 support
    rtc: remove a warning during scripts/kernel-doc step
    rtc: 88pm860x: remove artificial limitation
    rtc: 88pm80x: remove artificial limitation
    rtc: st-lpc: remove artificial limitation
    rtc: mrst: remove artificial limitation
    rtc: mv: remove artificial limitation
    rtc: hctosys: Ensure system time doesn't overflow time_t
    parisc: time: stop validating rtc_time in .read_time
    rtc: pcf85063: fix clearing bits in pcf85063_start_clock
    rtc: at91sam9: Set name of regmap_config
    rtc: s5m: Remove VLA usage
    rtc: s5m: Move enum from rtc.h to rtc-s5m.c
    rtc: remove VLA usage
    rtc: Add useful timestamp definitions
    rtc: Add one offset seconds to expand RTC range
    rtc: Factor out the RTC range validation into rtc_valid_range()
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Bartlomiej Zolnierkiewicz:
    "There is nothing really major here, just a couple of small bugfixes,
    improvements and cleanups:

    - make it possible to load radeonfb driver when offb driver is loaded
    first (Mathieu Malaterre)

    - fix memory leak in offb driver (Mathieu Malaterre)

    - fix unaligned access in udlfb driver (Ladislav Michl)

    - convert atmel_lcdfb driver to use GPIO descriptors (Ludovic
    Desroches)

    - avoid mismatched prototypes in sisfb driver (Arnd Bergmann)

    - remove VLA usage from viafb driver (Gustavo A. R. Silva)

    - add missing help text to FB_I810_I2 config option (Ulf Magnusson)

    - misc fixes (Gustavo A. R. Silva, Colin Ian King, Markus Elfring)

    - remove dead code from s3c-fb driver for Exynos and S5PV210
    platforms

    - misc cleanups (Corentin Labbe, Ladislav Michl, Ulf Magnusson,
    Vladimir Zapolskiy, Markus Elfring)"

    * tag 'fbdev-v4.17' of git://github.com/bzolnier/linux: (32 commits)
    video: fbdev: s3c-fb: remove dead platform code for Exynos and S5PV210 platforms
    video: au1100fb: Delete an unnecessary variable initialisation in au1100fb_drv_probe()
    video: au1100fb: Improve a size determination in au1100fb_drv_probe()
    video: au1100fb: Delete an error message for a failed memory allocation in au1100fb_drv_probe()
    video/console/sticore: Delete an error message for a failed memory allocation in sti_try_rom_generic()
    video: ARM CLCD: Improve a size determination in clcdfb_probe()
    video: ARM CLCD: Delete an error message for a failed memory allocation in clcdfb_probe()
    video: matroxfb: Delete an error message for a failed memory allocation in matroxfb_crtc2_probe()
    video: s3c-fb: Improve a size determination in s3c_fb_probe()
    video: s3c-fb: Delete an error message for a failed memory allocation in s3c_fb_probe()
    video: fsl-diu-fb: Delete an error message for a failed memory allocation in fsl_diu_init()
    video: ssd1307fb: Improve a size determination in ssd1307fb_probe()
    video: smscufx: Delete an error message for a failed memory allocation in ufx_realloc_framebuffer()
    video: smscufx: Return an error code only as a constant in ufx_realloc_framebuffer()
    video: smscufx: Less checks in ufx_usb_probe() after error detection
    video: udlfb: Return an error code only as a constant in dlfb_realloc_framebuffer()
    video/fbdev/stifb: Delete an error message for a failed memory allocation in stifb_init_fb()
    video/fbdev/stifb: Return -ENOMEM after a failed kzalloc() in stifb_init_fb()
    video: fbdev: aty128fb: use true and false for boolean values
    fbdev: aty: fix missing indentation in if statement
    ...

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "The main purpose of this pull request is a fix for a regression in the
    recent PCM OSS emulation code that may lead to RCU stall. Since
    syzkaller hits this too often, I send the pull request now with a
    minimal collection. Possibly another pull request may follow before
    RC1.

    The other fixes here are for USB-audio class 2 and 3 to improve the
    parser for the clock descriptors. These are rather cleanups but good
    for security, too.

    Last but not least, another included fix is the trivial one to remove
    superfluous WARN_ON() that annoyed syzbot"

    * tag 'sound-fix-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: Remove WARN_ON() at snd_pcm_hw_params() error
    ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation
    ALSA: usb-audio: Add sanity checks in UAC3 clock parsers
    ALSA: usb-audio: More strict sanity checks for clock parsers
    ALSA: usb-audio: Refactor clock finder helpers

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:
    "A series of media updates/fixes for 4.17.

    There are two important core fix patches in this series:

    - A regression fix on Kernel 4.16 with causes it to not work with
    some input devices that depend on media core

    - A fix at compat32 bits with causes it to OOPS on overlay, and
    affects the Kernels where the CVE-2017-13166 was backported

    The remaining ones are other random fixes at the documentation and on
    drivers.

    The biggest part of this series is a set of 18 patches for the Intel
    atomisp driver. Currently, it produces hundreds of warnings/errors on
    sparse/smatch, causing me to sometimes ignore new warnings on other
    drivers that are not so broken. This driver is on really poor state,
    even for staging standards: it has several layers of abstraction on
    it, and it supports two different hardware. Selecting between them
    require to add a define (there isn't even a Kconfig option for such
    purpose). Just on this smatch cleanup, I could easily get rid of 8
    "do-nothing" files. So, I'm seriously considering its removal from
    upstream, if I don't see any real work on addressing the problems
    there along this year"

    * tag 'media/v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (48 commits)
    media: v4l2-core: fix size of devnode_nums[] bitarray
    media: v4l2-compat-ioctl32: don't oops on overlay
    media: i2c: adv748x: afe: fix sparse warning
    media: extended-controls.rst: transmitter -> receiver
    media: staging: atomisp: stop duplicating input format types
    media: staging: atomisp: get rid of an unused var
    media: staging: atomisp: stop mixing enum types
    media: staging: atomisp: get rid of some static warnings
    media: staging: atomisp: use %p to print pointers
    media: staging: atomisp: remove an useless check
    media: staging: atomisp: avoid a warning if 32 bits build
    media: staging: atomisp: don't access a NULL var
    media: staging: atomisp: Get rid of *default.host.[ch]
    media: staging: atomisp: get rid of an unused function
    media: staging: atomisp: remove unused set_pd_base()
    media: staging: atomisp: fix endianess issues
    media: staging: atomisp: add a missing include
    media: staging: atomisp: get rid of stupid statements
    media: staging: atomisp: declare static vars as such
    media: staging: atomisp: ia_css_output.host: don't use var before check
    ...

    Linus Torvalds
     

10 Apr, 2018

23 commits

  • c6x depends on the macro '_BIG_ENDIAN' being defined or not
    to correctly select or define endian-specific macros, structures
    or pieces of code.

    This macro is predefined by the compiler but sparse knows nothing
    about it and thus may pre-process files differently from what
    gcc would.

    Fix this by passing '-D_BIG_ENDIAN' when compiling a big-endian
    kernel, like GCC would have done.

    To: Mark Salter
    To: Aurelien Jacquiot
    CC: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Luc Van Oostenryck
    Signed-off-by: Mark Salter

    Luc Van Oostenryck
     
  • Fix build error reported by the 0day bot by including the header
    file for that macro.

    Fixes this build error: (should fix; not tested)
    arch/c6x/platforms/plldata.c: In function 'c6472_setup_clocks':
    arch/c6x/platforms/plldata.c:279:33: error: implicit declaration of function 'get_coreid'; did you mean 'get_order'? [-Werror=implicit-function-declaration]
    c6x_core_clk.parent = &sysclks[get_coreid() + 1];

    Reported-by: Fengguang Wu
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: Ingo Molnar

    Signed-off-by: Randy Dunlap
    Signed-off-by: Mark Salter

    Randy Dunlap
     
  • KTHREAD_SIZE has never been used since it has been defined for c6x arch.
    Let's remove this useless definition.

    Signed-off-by: Jérémy Lefaure
    Signed-off-by: Mark Salter

    Jérémy Lefaure
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • Vinod Koul
     
  • …it/groeck/linux-staging

    Pull hwmon updates from Guenter Roeck:

    - added chip support: new Centaur CPUs, ADM1272, NCT6796D

    - ucd9000: added debugfs attributes, gpio support

    - cleanup and minor bug fixes

    * tag 'hwmon-for-linus-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (via-cputemp) support new centaur CPUs
    hwmon: (nct6775) Fix writing pwmX_mode
    hwmon: (lm92) Add max6635 to lm92_id[]
    hwmon: (pmbus/adm1275) Add support for ADM1272
    hwmon: (lm92) Do not try to detect MAX6635
    hwmon: (ucd9000) Add debugfs attributes to provide mfr_status
    hwmon: (ucd9000) Add gpio chip interface
    hwmon: (nct6775) Add support for NCT6796D
    hwmon: (nct6775) Initialize boolean variables with declaration
    hwmon: (nct6775) Improve fan6/pwm6 support
    hwmon: (nct6775) Use NUM_FAN consistently
    hwmon: (g762) handle cleanup with devm_add_action
    hwmon: (sht3x) Update data sheet URL
    hwmon: (sht21) Update data sheet URLs
    hwmon: (pmbus/adm1275) Accept negative page register values
    hwmon: (pmbus/max8688) Accept negative page register values

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) The sockmap code has to free socket memory on close if there is
    corked data, from John Fastabend.

    2) Tunnel names coming from userspace need to be length validated. From
    Eric Dumazet.

    3) arp_filter() has to take VRFs properly into account, from Miguel
    Fadon Perlines.

    4) Fix oops in error path of tcf_bpf_init(), from Davide Caratti.

    5) Missing idr_remove() in u32_delete_key(), from Cong Wang.

    6) More syzbot stuff. Several use of uninitialized value fixes all
    over, from Eric Dumazet.

    7) Do not leak kernel memory to userspace in sctp, also from Eric
    Dumazet.

    8) Discard frames from unused ports in DSA, from Andrew Lunn.

    9) Fix DMA mapping and reset/failover problems in ibmvnic, from Thomas
    Falcon.

    10) Do not access dp83640 PHY registers prematurely after reset, from
    Esben Haabendal.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (46 commits)
    vhost-net: set packet weight of tx polling to 2 * vq size
    net: thunderx: rework mac addresses list to u64 array
    inetpeer: fix uninit-value in inet_getpeer
    dp83640: Ensure against premature access to PHY registers after reset
    devlink: convert occ_get op to separate registration
    ARM: dts: ls1021a: Specify TBIPA register address
    net/fsl_pq_mdio: Allow explicit speficition of TBIPA address
    ibmvnic: Do not reset CRQ for Mobility driver resets
    ibmvnic: Fix failover case for non-redundant configuration
    ibmvnic: Fix reset scheduler error handling
    ibmvnic: Zero used TX descriptor counter on reset
    ibmvnic: Fix DMA mapping mistakes
    tipc: use the right skb in tipc_sk_fill_sock_diag()
    sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
    net: dsa: Discard frames from unused ports
    sctp: do not leak kernel memory to user space
    soreuseport: initialise timewait reuseport field
    ipv4: fix uninit-value in ip_route_output_key_hash_rcu()
    dccp: initialize ireq->ir_mark
    net: fix uninit-value in __hw_addr_add_ex()
    ...

    Linus Torvalds
     
  • Pull vfs namei updates from Al Viro:

    - make lookup_one_len() safe with parent locked only shared(incoming
    afs series wants that)

    - fix of getname_kernel() regression from 2015 (-stable fodder, that
    one).

    * 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    getname_kernel() needs to make sure that ->name != ->iname in long case
    make lookup_one_len() safe to use with directory locked shared
    new helper: __lookup_slow()
    merge common parts of lookup_one_len{,_unlocked} into common helper

    Linus Torvalds
     
  • Pull orangefs updates from Mike Marshall:
    "Fixes and cleanups:

    - Documentation cleanups

    - removal of unused code

    - make some structs static

    - implement Orangefs vm_operations fault callout

    - eliminate two single-use functions and put their cleaned up code in
    line.

    - replace a vmalloc/memset instance with vzalloc

    - fix a race condition bug in wait code"

    * tag 'for-linus-4.17-ofs' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
    Orangefs: documentation updates
    orangefs: document package install and xfstests procedure
    orangefs: remove unused code
    orangefs: make several *_operations structs static
    orangefs: implement vm_ops->fault
    orangefs: open code short single-use functions
    orangefs: replace vmalloc and memset with vzalloc
    orangefs: bug fix for a race condition when getting a slot

    Linus Torvalds
     
  • Pull pstore fix from Kees Cook:
    "Fix another compression Kconfig combination missed in testing (Tobias
    Regnery)"

    * tag 'pstore-v4.17-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    pstore: fix crypto dependencies without compression

    Linus Torvalds
     
  • Commit 0619f0f5e36f ("selinux: wrap selinuxfs state") triggers a BUG
    when SELinux is runtime-disabled (i.e. systemd or equivalent disables
    SELinux before initial policy load via /sys/fs/selinux/disable based on
    /etc/selinux/config SELINUX=disabled).

    This does not manifest if SELinux is disabled via kernel command line
    argument or if SELinux is enabled (permissive or enforcing).

    Before:
    SELinux: Disabled at runtime.
    BUG: Dentry 000000006d77e5c7{i=17,n=null} still in use (1) [unmount of selinuxfs selinuxfs]

    After:
    SELinux: Disabled at runtime.

    Fixes: 0619f0f5e36f ("selinux: wrap selinuxfs state")
    Reported-by: Tetsuo Handa
    Reported-by: Dmitry Vyukov
    Signed-off-by: Stephen Smalley
    Signed-off-by: Linus Torvalds

    Stephen Smalley
     
  • 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
    ...

    Linus Torvalds
     
  • Dan Williams
     
  • Dan Williams
     
  • Commit 3c8ba0d61d04 ("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 589a9785ee3a ("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: 3c8ba0d61d04 ("kernel.h: Retain constant expression output for max()/min()")
    Reported-and-tested-by: Sebastian Ott
    Cc: Kees Cook
    Cc: Ingo Molnar
    Cc: Miguel Ojeda
    Signed-off-by: Linus Torvalds

    Linus Torvalds