216 Commits

Author SHA1 Message Date
Kees Cook
8d00c97b90 UPSTREAM: LSM: Convert from initcall to struct lsm_info
In preparation for doing more interesting LSM init probing, this converts
the existing initcall system into an explicit call into a function pointer
from a section-collected struct lsm_info array.

Change-Id: Iaf34d60dae8648c6c6c4d29c5d2c034db2684ef0
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: James Morris <james.morris@microsoft.com>
Reviewed-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
2025-09-08 17:27:52 +03:00
Matt Mullins
945b1e55a8 UPSTREAM: bpf: support raw tracepoints in modules
Distributions build drivers as modules, including network and filesystem
drivers which export numerous tracepoints.  This enables
bpf(BPF_RAW_TRACEPOINT_OPEN) to attach to those tracepoints.

Change-Id: I2ea2898f5dedf7e70aff39c0f8ae0a5d7aa1d2af
Signed-off-by: Matt Mullins <mmullins@fb.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2025-09-08 17:19:59 +03:00
Greg Kroah-Hartman
20dc147716 Revert "modules: inherit TAINT_PROPRIETARY_MODULE"
This reverts commit 2ab98abf0d which is
commit 262e6ae7081df304fc625cf368d5c2cbba2bb991 upstream.

It breaks the ABI here, and it's not something needed in this old kernel
that is not getting new devices added for it.

Bug: 161946584
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5058656c9ab1988b669b90ab90a07ad77cd8eb6b
2021-06-15 23:36:48 +08:00
Lucas Wei
7ec4bc1d47 Merge android-4.19-stable (4.19.191) into android-msm-pixel-4.19-lts
Merge 4.19.191 into android-4.19-stable
Linux 4.19.191
    scripts: switch explicitly to Python 3
    tweewide: Fix most Shebang lines
  * KVM: arm64: Initialize VCPU mdcr_el2 before loading it
      arch/arm64/include/asm/kvm_host.h
  * iomap: fix sub-page uptodate handling
      fs/iomap.c
      include/linux/iomap.h
  * ipv6: remove extra dev_hold() for fallback tunnels
      net/ipv6/ip6_tunnel.c
      net/ipv6/ip6_vti.c
      net/ipv6/sit.c
  * ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/ip6_tunnel.c
  * sit: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/sit.c
    ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
    net: stmmac: Do not enable RX FIFO overflow interrupts
    lib: stackdepot: turn depot_lock spinlock to raw_spinlock
  * block: reexpand iov_iter after read/write
      fs/block_dev.c
    ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
    gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
    scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found
    ceph: fix fscache invalidation
    riscv: Workaround mcount name prior to clang-13
    scripts/recordmcount.pl: Fix RISC-V regex for clang
    ARM: 9075/1: kernel: Fix interrupted SMC calls
    um: Mark all kernel symbols as local
    Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state
    Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices
    ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
    ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()
  * PCI: thunder: Fix compile testing
      drivers/pci/controller/pci-thunder-ecam.c
      drivers/pci/controller/pci-thunder-pem.c
      drivers/pci/pci.h
    xsk: Simplify detection of empty and full rings
    pinctrl: ingenic: Improve unreachable code generation
    isdn: capi: fix mismatched prototypes
    cxgb4: Fix the -Wmisleading-indentation warning
    usb: sl811-hcd: improve misleading indentation
    kgdb: fix gcc-11 warning on indentation
    x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
    nvme: do not try to reconfigure APST when the controller is not live
    clk: exynos7: Mark aclk_fsys1_200 as critical
  * netfilter: conntrack: Make global sysctls readonly in non-init netns
      net/netfilter/nf_conntrack_standalone.c
  * kobject_uevent: remove warning in init_uevent_argv()
      lib/kobject_uevent.c
    thermal/core/fair share: Lock the thermal zone while looping over instances
    MIPS: Avoid handcoded DIVU in `__div64_32' altogether
    MIPS: Avoid DIVU in `__div64_32' is result would be zero
    MIPS: Reinstate platform `__div64_32' handler
  * FDDI: defxx: Make MMIO the configuration default except for EISA
      drivers/net/fddi/Kconfig
    KVM: x86: Cancel pvclock_gtod_work on module removal
    cdc-wdm: untangle a circular dependency between callback and softint
    iio: tsl2583: Fix division by a zero lux_val
    iio: gyro: mpu3050: Fix reported temperature value
  * xhci: Add reset resume quirk for AMD xhci controller.
      drivers/usb/host/xhci-pci.c
  * xhci: Do not use GFP_KERNEL in (potentially) atomic context
      drivers/usb/host/xhci.c
  * usb: dwc3: gadget: Return success always for kick transfer in ep queue
      drivers/usb/dwc3/gadget.c
  * usb: core: hub: fix race condition about TRSMRCY of resume
      drivers/usb/core/hub.c
    usb: dwc2: Fix gadget DMA unmap direction
  * usb: xhci: Increase timeout for HC halt
      drivers/usb/host/xhci-ext-caps.h
    usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield
    usb: dwc3: omap: improve extcon initialization
  * blk-mq: Swap two calls in blk_mq_exit_queue()
      block/blk-mq.c
    ACPI: scan: Fix a memory leak in an error handling path
    usb: fotg210-hcd: Fix an error message
    iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
    drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
  * userfaultfd: release page in error path to avoid BUG_ON
      mm/shmem.c
    squashfs: fix divide error in calculate_skip()
    hfsplus: prevent corruption in shrinking truncate
    powerpc/64s: Fix crashes when toggling entry flush barrier
    powerpc/64s: Fix crashes when toggling stf barrier
    ARC: entry: fix off-by-one error in syscall number validation
    i40e: Fix use-after-free in i40e_client_subtask()
    netfilter: nftables: avoid overflows in nft_hash_buckets()
    kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
  * sched/fair: Fix unfairness caused by missing load decay
      kernel/sched/fair.c
    netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
    smc: disallow TCP_ULP in smc_setsockopt()
  * net: fix nla_strcmp to handle more then one trailing null character
      lib/nlattr.c
    ksm: fix potential missing rmap_item for stable_node
    mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
    khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
    drm/radeon: Avoid power table parsing memory leaks
    drm/radeon: Fix off-by-one power_state index heap overwrite
  * netfilter: xt_SECMARK: add new revision to fix structure layout
      include/uapi/linux/netfilter/xt_SECMARK.h
      net/netfilter/xt_SECMARK.c
  * sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
      net/sctp/sm_statefuns.c
    ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
  * sctp: do asoc update earlier in sctp_sf_do_dupcook_a
      net/sctp/sm_statefuns.c
    net: hns3: disable phy loopback setting in hclge_mac_start_phy
    rtc: ds1307: Fix wday settings for rx8130
    NFSv4.2 fix handling of sr_eof in SEEK's reply
    pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
    PCI: endpoint: Fix missing destroy_workqueue()
    NFS: Deal correctly with attribute generation counter overflow
    NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
  * rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
      drivers/rpmsg/qcom_glink_native.c
    ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook
  * PCI: Release OF node in pci_scan_device()'s error path
      drivers/pci/probe.c
    PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()
  * f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
      fs/f2fs/inline.c
    ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
    ia64: module: fix symbolizer crash on fdescr
    net: ethernet: mtk_eth_soc: fix RX VLAN offload
    powerpc/iommu: Annotate nested lock for lockdep
    wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
    wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
    powerpc/pseries: Stop calling printk in rtas_stop_self()
    samples/bpf: Fix broken tracex1 due to kprobe argument change
  * ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
      net/core/ethtool.c
    ASoC: rt286: Generalize support for ALC3263 codec
    powerpc/smp: Set numa node before updating mask
  * sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
      net/sctp/sm_make_chunk.c
    kconfig: nconf: stop endless search loops
    selftests: Set CC to clang in lib.mk if LLVM is set
    cuse: prevent clone
    pinctrl: samsung: use 'int' for register masks in Exynos
    mac80211: clear the beacon's CRC after channel switch
  * i2c: Add I2C_AQ_NO_REP_START adapter quirk
      include/linux/i2c.h
    ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
  * ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/ip6_vti.c
  * Bluetooth: check for zapped sk before connecting
      net/bluetooth/l2cap_sock.c
  * net: bridge: when suppression is enabled exclude RARP packets
      net/bridge/br_arp_nd_proxy.c
  * Bluetooth: initialize skb_queue_head at l2cap_chan_create()
      net/bluetooth/l2cap_core.c
  * Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
      net/bluetooth/l2cap_core.c
    ALSA: rme9652: don't disable if not enabled
    ALSA: hdspm: don't disable if not enabled
    ALSA: hdsp: don't disable if not enabled
  * i2c: bail out early when RDWR parameters are wrong
      drivers/i2c/i2c-dev.c
    net: stmmac: Set FIFO sizes for ipq806x
    ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
  * tipc: convert dest node's address to network order
      net/tipc/netlink_compat.c
    fs: dlm: fix debugfs dump
    tpm: fix error return code in tpm2_get_cc_attrs_tbl()
  * Revert "fdt: Properly handle "no-map" field in the memory region"
      drivers/of/fdt.c
  * Revert "of/fdt: Make sure no-map does not remove already reserved regions"
      drivers/of/fdt.c
  * sctp: delay auto_asconf init until binding the first addr
      net/sctp/socket.c
  * Revert "net/sctp: fix race condition in sctp_destroy_sock"
      net/sctp/socket.c
  * smp: Fix smp_call_function_single_async prototype
      include/linux/smp.h
      kernel/smp.c
  * net: Only allow init netns to set default tcp cong to a restricted algo
      net/ipv4/tcp_cong.c
    mm/memory-failure: unnecessary amount of unmapping
  * mm/sparse: add the missing sparse_buffer_fini() in error branch
      mm/sparse.c
    kfifo: fix ternary sign extension bugs
    net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
    RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
    net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
    net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
    arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E
    ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E
    bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
    powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
    ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
    ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
    net: davinci_emac: Fix incorrect masking of tx and rx error channel
  * ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
      sound/usb/midi.c
    RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
    vsock/vmci: log once the failed queue pair allocation
    mwl8k: Fix a double Free in mwl8k_probe_hw
    i2c: sh7760: fix IRQ error path
    rtlwifi: 8821ae: upgrade PHY and RF parameters
    powerpc/pseries: extract host bridge from pci_bus prior to bus removal
    MIPS: pci-legacy: stop using of_pci_range_to_resource
    drm/i915/gvt: Fix error code in intel_gvt_init_device()
    ASoC: ak5558: correct reset polarity
    i2c: sh7760: add IRQ check
    i2c: jz4780: add IRQ check
    i2c: emev2: add IRQ check
    i2c: cadence: add IRQ check
    RDMA/srpt: Fix error return code in srpt_cm_req_recv()
    net: thunderx: Fix unintentional sign extension issue
    IB/hfi1: Fix error return code in parse_platform_config()
    mt7601u: fix always true expression
    mac80211: bail out if cipher schemes are invalid
    powerpc: iommu: fix build when neither PCI or IBMVIO is set
    powerpc/perf: Fix PMU constraint check for EBB events
    powerpc/64s: Fix pte update for kernel memory on radix
    liquidio: Fix unintented sign extension of a left shift of a u16
  * ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/usbaudio.h
    net: hns3: Limiting the scope of vector_ring_chain variable
    nfc: pn533: prevent potential memory corruption
  * bug: Remove redundant condition check in report_bug
      lib/bug.c
  * ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
      sound/core/init.c
    powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration
    powerpc/prom: Mark identical_pvr_fixup as __init
    net: lapbether: Prevent racing when checking whether the netif is running
    perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars
  * HID: plantronics: Workaround for double volume key presses
      drivers/hid/hid-ids.h
      drivers/hid/hid-plantronics.c
      include/linux/hid.h
    drivers/block/null_blk/main: Fix a double free in null_init.
  * sched/debug: Fix cgroup_path[] serialization
      kernel/sched/debug.c
    x86/events/amd/iommu: Fix sysfs type mismatch
    HSI: core: fix resource leaks in hsi_add_client_from_dt()
    mfd: stm32-timers: Avoid clearing auto reload register
    scsi: ibmvfc: Fix invalid state machine BUG_ON()
    scsi: sni_53c710: Add IRQ check
    scsi: sun3x_esp: Add IRQ check
    scsi: jazz_esp: Add IRQ check
    clk: uniphier: Fix potential infinite loop
    clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
    vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer
    nvme: retrigger ANA log update if group descriptor isn't found
    ata: libahci_platform: fix IRQ check
    sata_mv: add IRQ checks
    pata_ipx4xx_cf: fix IRQ check
    pata_arasan_cf: fix IRQ check
    x86/kprobes: Fix to check non boostable prefixes correctly
    drm/amdkfd: fix build error with AMD_IOMMU_V2=m
    media: m88rs6000t: avoid potential out-of-bounds reads on arrays
    media: omap4iss: return error code when omap4iss_get() failed
    media: vivid: fix assignment of dev->fbuf_out_flags
    soc: aspeed: fix a ternary sign expansion bug
  * ttyprintk: Add TTY hangup callback.
      drivers/char/ttyprintk.c
    usb: dwc2: Fix hibernation between host and device modes.
    usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
    Drivers: hv: vmbus: Increase wait time for VMbus unload
    x86/platform/uv: Fix !KEXEC build failure
    platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table
    usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
  * firmware: qcom-scm: Fix QCOM_SCM configuration
      drivers/firmware/Kconfig
  * tty: fix return value for unsupported ioctls
      drivers/tty/tty_io.c
      include/linux/tty_driver.h
  * tty: actually undefine superseded ASYNC flags
      include/uapi/linux/tty_flags.h
    USB: cdc-acm: fix unprivileged TIOCCSERIAL
    usb: gadget: r8a66597: Add missing null check on return from platform_get_resource
    cpufreq: armada-37xx: Fix determining base CPU frequency
    cpufreq: armada-37xx: Fix driver cleanup when registration failed
    clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
    clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
    cpufreq: armada-37xx: Fix the AVS value for load L1
    clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock
    cpufreq: armada-37xx: Fix setting TBG parent for load levels
    crypto: qat - Fix a double free in adf_create_ring
    ACPI: CPPC: Replace cppc_attr with kobj_attribute
  * soc: qcom: mdt_loader: Detect truncated read of segments
      drivers/soc/qcom/mdt_loader.c
  * soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
      drivers/soc/qcom/mdt_loader.c
  * spi: Fix use-after-free with devm_spi_alloc_*
      drivers/spi/spi.c
      include/linux/spi/spi.h
    staging: greybus: uart: fix unprivileged TIOCCSERIAL
    staging: rtl8192u: Fix potential infinite loop
  * irqchip/gic-v3: Fix OF_BAD_ADDR error handling
      drivers/irqchip/irq-gic-v3-mbi.c
    mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
    soundwire: stream: fix memory leak in stream config error path
    USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
    usb: gadget: aspeed: fix dma map failure
    crypto: qat - fix error path in adf_isr_resource_alloc()
  * phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally
      drivers/phy/marvell/Kconfig
    soundwire: bus: Fix device found flag correctly
  * bus: qcom: Put child node before return
      drivers/bus/qcom-ebi2.c
    mtd: require write permissions for locking and badblock ioctls
    fotg210-udc: Complete OUT requests on short packets
    fotg210-udc: Don't DMA more than the buffer can take
    fotg210-udc: Mask GRP2 interrupts we don't handle
    fotg210-udc: Remove a dubious condition leading to fotg210_done
    fotg210-udc: Fix EP0 IN requests bigger than two packets
    fotg210-udc: Fix DMA on EP0 for length > max packet size
    crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
    crypto: qat - don't release uninitialized resources
    usb: gadget: pch_udc: Check for DMA mapping error
    usb: gadget: pch_udc: Check if driver is present before calling ->setup()
    usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
    x86/microcode: Check for offline CPUs before requesting new microcode
    mtd: rawnand: qcom: Return actual error code instead of -ENODEV
    mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
    mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
    mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
  * regmap: set debugfs_name to NULL after it is freed
      drivers/base/regmap/regmap-debugfs.c
    usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
    serial: stm32: fix tx_empty condition
    serial: stm32: fix incorrect characters on console
    ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
    ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
    ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
    ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
    ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
    ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
    memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
    usb: gadget: pch_udc: Revert d3cb25a121 completely
  * ovl: fix missing revert_creds() on error path
      fs/overlayfs/copy_up.c
    KVM: s390: split kvm_s390_real_to_abs
    KVM: s390: fix guarded storage control register handling
    KVM: s390: split kvm_s390_logical_to_effective
    x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
    ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
    ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
    ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
    ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
    ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
    ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
    ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
    ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
    drm/radeon: fix copy of uninitialized variable back to userspace
  * cfg80211: scan: drop entry from hidden_list on overflow
      net/wireless/scan.c
    ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
    md: Fix missing unused status line of /proc/mdstat
    md: md_open returns -EBUSY when entering racing area
    md: factor out a mddev_find_locked helper from mddev_find
    md: split mddev_find
    md-cluster: fix use-after-free issue when removing rdev
    md/bitmap: wait for external bitmap writes to complete during tear down
    misc: vmw_vmci: explicitly initialize vmci_datagram payload
    misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
    misc: lis3lv02d: Fix false-positive WARN on various HP models
    iio:accel:adis16201: Fix wrong axis assignment that prevents loading
    FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
    MIPS: pci-rt2880: fix slot 0 configuration
    MIPS: pci-mt7620: fix PLL lock check
    ASoC: samsung: tm2_wm5110: check of of_parse return value
    net/nfc: fix use-after-free llcp_sock_bind/connect
  * bluetooth: eliminate the potential race condition when removing the HCI controller
      net/bluetooth/hci_request.c
    hsr: use netdev_err() instead of WARN_ONCE()
  * Bluetooth: verify AMP hci_chan before amp_destroy
      include/net/bluetooth/hci_core.h
      net/bluetooth/hci_event.c
  * modules: inherit TAINT_PROPRIETARY_MODULE
      include/linux/module.h
      kernel/module.c
  * modules: return licensing information from find_symbol
      include/linux/module.h
      kernel/module.c
  * modules: rename the licence field in struct symsearch to license
      include/linux/module.h
      kernel/module.c
  * modules: unexport __module_address
      kernel/module.c
  * modules: unexport __module_text_address
      kernel/module.c
  * modules: mark each_symbol_section static
      include/linux/module.h
      kernel/module.c
  * modules: mark find_symbol static
      include/linux/module.h
      kernel/module.c
  * modules: mark ref_module static
      include/linux/module.h
      kernel/module.c
  * dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
      drivers/md/dm-rq.c
    dm space map common: fix division bug in sm_ll_find_free_block()
    dm persistent data: packed struct should have an aligned() attribute too
  * tracing: Restructure trace_clock_global() to never block
      kernel/trace/trace_clock.c
  * tracing: Map all PIDs to command lines
      kernel/trace/trace.c
    rsi: Use resume_noirq for SDIO
    tty: fix memory leak in vc_deallocate
    usb: dwc2: Fix session request interrupt handler
  * usb: dwc3: gadget: Fix START_TRANSFER link state check
      drivers/usb/dwc3/gadget.c
  * usb: gadget/function/f_fs string table fix for multiple languages
      drivers/usb/gadget/function/f_fs.c
  * usb: gadget: Fix double free of device descriptor pointers
      drivers/usb/gadget/config.c
    usb: gadget: dummy_hcd: fix gpf in gadget_setup
    media: dvbdev: Fix memory leak in dvb_media_device_free()
  * ext4: fix error code in ext4_commit_super
      fs/ext4/super.c
  * ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
      fs/ext4/super.c
  * ext4: fix check to prevent false positive report of incorrect used inodes
      fs/ext4/ialloc.c
    arm64: vdso: remove commas between macro name and arguments
  * posix-timers: Preserve return value in clock_adjtime32()
      kernel/time/posix-timers.c
  * Revert 337f13046f ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
      kernel/futex.c
    jffs2: check the validity of dstlen in jffs2_zlib_compress()
  * Fix misc new gcc warnings
      include/scsi/libfcoe.h
      net/bluetooth/ecdh_helper.h
  * security: commoncap: fix -Wstringop-overread warning
      security/commoncap.c
    dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences
    md/raid1: properly indicate failure when ending a failed write request
    tpm: vtpm_proxy: Avoid reading host log when using a virtual device
    intel_th: pci: Add Alder Lake-M support
    powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
    powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
    jffs2: Fix kasan slab-out-of-bounds problem
    NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
    NFS: Don't discard pNFS layout segments that are marked for return
    ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
    openvswitch: fix stack OOB read while fragmenting IPv4 packets
    mlxsw: spectrum_mr: Update egress RIF list before route's action
  * f2fs: fix to avoid out-of-bounds memory access
      fs/f2fs/node.c
    ubifs: Only check replay with inode type to judge if inode linked
  * arm64/vdso: Discard .note.gnu.property sections in vDSO
      arch/arm64/kernel/vdso/vdso.lds.S
    btrfs: fix race when picking most recent mod log operation for an old root
    ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
  * ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8
      sound/usb/mixer_maps.c
  * ALSA: usb-audio: More constifications
      sound/usb/mixer.c
      sound/usb/mixer_maps.c
      sound/usb/mixer_quirks.c
      sound/usb/mixer_scarlett.c
      sound/usb/proc.c
      sound/usb/stream.c
      sound/usb/validate.c
  * ALSA: usb-audio: Explicitly set up the clock selector
      sound/usb/clock.c
    ALSA: sb: Fix two use after free in snd_sb_qsound_build
    ALSA: hda/conexant: Re-order CX5066 quirk table entries
    ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
    s390/archrandom: add parameter check for s390_arch_random_generate
    scsi: libfc: Fix a format specifier
    scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
    scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response
    drm/amdgpu: fix NULL pointer dereference
    amdgpu: avoid incorrect %hu format string
    drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
    media: gscpa/stv06xx: fix memory leak
    media: dvb-usb: fix memory leak in dvb_usb_adapter_init
    media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
    media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
    media: adv7604: fix possible use-after-free in adv76xx_remove()
    media: tc358743: fix possible use-after-free in tc358743_remove()
    power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
    power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
    clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
    media: vivid: update EDID
    media: em28xx: fix memory leak
    scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
    scsi: qla2xxx: Fix use after free in bsg
    scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
    drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
    power: supply: Use IRQF_ONESHOT
    media: gspca/sq905.c: fix uninitialized variable
    media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
    extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged
  * power: supply: bq27xxx: fix power_avg for newer ICs
      include/linux/power/bq27xxx_battery.h
  * media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
      drivers/media/pci/sta2x11/Kconfig
    media: ite-cir: check for receive overflow
    scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
    scsi: lpfc: Fix pt2pt connection does not recover after LOGO
    scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
    btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
    phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
    intel_th: Consistency and off-by-one fix
    spi: omap-100k: Fix reference leak to master
    spi: dln2: Fix reference leak to master
  * xhci: fix potential array out of bounds with several interrupters
      drivers/usb/host/xhci.c
  * xhci: check control context is valid before dereferencing it.
      drivers/usb/host/xhci.c
  * usb: xhci-mtk: support quirk to disable usb2 lpm
      drivers/usb/host/xhci-mtk.h
  * perf/arm_pmu_platform: Fix error handling
      drivers/perf/arm_pmu_platform.c
    tee: optee: do not check memref size on return from Secure World
    x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
  * PCI: PM: Do not read power state in pci_enable_device_flags()
      drivers/pci/pci.c
  * usb: xhci: Fix port minor revision
      drivers/usb/host/xhci-mem.c
  * usb: dwc3: gadget: Ignore EP queue requests during bus reset
      drivers/usb/dwc3/gadget.c
    usb: gadget: f_uac1: validate input parameters
    genirq/matrix: Prevent allocation counter corruption
    usb: gadget: uvc: add bInterval checking for HS mode
  * crypto: api - check for ERR pointers in crypto_destroy_tfm()
      crypto/api.c
      include/crypto/acompress.h
      include/crypto/aead.h
      include/crypto/akcipher.h
      include/crypto/hash.h
      include/crypto/kpp.h
      include/crypto/rng.h
      include/crypto/skcipher.h
    staging: wimax/i2400m: fix byte-order issue
    fbdev: zero-fill colormap in fbcmap.c
    intel_th: pci: Add Rocket Lake CPU support
    btrfs: fix metadata extent leak after failure to create subvolume
    cifs: Return correct error code from smb2_get_enc_key
    erofs: add unsupported inode i_format check
    mmc: core: Set read only for SD cards with permanent write protect bit
    mmc: core: Do a power cycle when the CMD11 fails
    mmc: block: Issue a cache flush only when it's enabled
    mmc: block: Update ext_csd.cache_ctrl if it was written
    mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers
    scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
    spi: spi-ti-qspi: Free DMA resources
    mtd: rawnand: atmel: Update ecc_stats.corrected counter
    mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
  * ecryptfs: fix kernel panic with null dev_name
      fs/ecryptfs/main.c
    arm64: dts: mt8173: fix property typo of 'phys' in dsi node
    arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
    ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
    ftrace: Handle commands when closing set_ftrace_filter file
    ACPI: custom_method: fix a possible memory leak
    ACPI: custom_method: fix potential use-after-free issue
    s390/disassembler: increase ebpf disasm buffer size
  * BACKPORT: arm64: vdso32: drop -no-integrated-as flag
      arch/arm64/kernel/vdso32/Makefile
    ANDROID: GKI: update allowed list for incrementalfs.ko
  * ANDROID: dm-user: Drop additional reference
      drivers/md/dm-user.c
    ANDROID: FUSE OWNERS pointing to android-mainline OWNERS
  * UPSTREAM: sched: Fix out-of-bound access in uclamp
      kernel/sched/core.c
    Merge 4.19.190 into android-4.19-stable
Linux 4.19.190
  * ovl: allow upperdir inside lowerdir
      fs/overlayfs/super.c
    platform/x86: thinkpad_acpi: Correct thermal sensor allocation
  * USB: Add reset-resume quirk for WD19's Realtek Hub
      drivers/usb/core/quirks.c
  * USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
      drivers/usb/core/quirks.c
  * ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
      sound/usb/quirks-table.h
    iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
  * bpf: Fix masking negation logic upon negative dst register
      kernel/bpf/verifier.c
    mips: Do not include hi and lo in clobber list for R6
    iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
  * net: usb: ax88179_178a: initialize local variables before use
      drivers/net/usb/ax88179_178a.c
    ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
  * ACPI: tables: x86: Reserve memory occupied by ACPI tables
      include/linux/acpi.h
    erofs: fix extended inode could cross boundary
    BACKPORT: FROMGIT: virt_wifi: Return micros for BSS TSF values
    ANDROID: Add allowed symbols requried from Qualcomm drivers
  * ANDROID: GKI: QoS: Prevent usage of dev_pm_qos_request as pm_qos_request
      drivers/base/power/qos.c
      include/linux/pm_qos.h
      kernel/power/qos.c

Bug: 189791081
Change-Id: Iab7796f3e6639b2a0b38164baa538277769efa03
Signed-off-by: Lucas Wei <lucaswei@google.com>
2021-06-14 17:29:51 +08:00
Greg Kroah-Hartman
011b73c995 Merge 4.19.191 into android-4.19-stable
Changes in 4.19.191
	s390/disassembler: increase ebpf disasm buffer size
	ACPI: custom_method: fix potential use-after-free issue
	ACPI: custom_method: fix a possible memory leak
	ftrace: Handle commands when closing set_ftrace_filter file
	ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
	arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
	arm64: dts: mt8173: fix property typo of 'phys' in dsi node
	ecryptfs: fix kernel panic with null dev_name
	mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
	mtd: rawnand: atmel: Update ecc_stats.corrected counter
	spi: spi-ti-qspi: Free DMA resources
	scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
	mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers
	mmc: block: Update ext_csd.cache_ctrl if it was written
	mmc: block: Issue a cache flush only when it's enabled
	mmc: core: Do a power cycle when the CMD11 fails
	mmc: core: Set read only for SD cards with permanent write protect bit
	erofs: add unsupported inode i_format check
	cifs: Return correct error code from smb2_get_enc_key
	btrfs: fix metadata extent leak after failure to create subvolume
	intel_th: pci: Add Rocket Lake CPU support
	fbdev: zero-fill colormap in fbcmap.c
	staging: wimax/i2400m: fix byte-order issue
	crypto: api - check for ERR pointers in crypto_destroy_tfm()
	usb: gadget: uvc: add bInterval checking for HS mode
	genirq/matrix: Prevent allocation counter corruption
	usb: gadget: f_uac1: validate input parameters
	usb: dwc3: gadget: Ignore EP queue requests during bus reset
	usb: xhci: Fix port minor revision
	PCI: PM: Do not read power state in pci_enable_device_flags()
	x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
	tee: optee: do not check memref size on return from Secure World
	perf/arm_pmu_platform: Fix error handling
	usb: xhci-mtk: support quirk to disable usb2 lpm
	xhci: check control context is valid before dereferencing it.
	xhci: fix potential array out of bounds with several interrupters
	spi: dln2: Fix reference leak to master
	spi: omap-100k: Fix reference leak to master
	intel_th: Consistency and off-by-one fix
	phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
	btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
	scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
	scsi: lpfc: Fix pt2pt connection does not recover after LOGO
	scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
	media: ite-cir: check for receive overflow
	media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
	power: supply: bq27xxx: fix power_avg for newer ICs
	extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged
	media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
	media: gspca/sq905.c: fix uninitialized variable
	power: supply: Use IRQF_ONESHOT
	drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
	scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
	scsi: qla2xxx: Fix use after free in bsg
	scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
	media: em28xx: fix memory leak
	media: vivid: update EDID
	clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
	power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
	power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
	media: tc358743: fix possible use-after-free in tc358743_remove()
	media: adv7604: fix possible use-after-free in adv76xx_remove()
	media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
	media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
	media: dvb-usb: fix memory leak in dvb_usb_adapter_init
	media: gscpa/stv06xx: fix memory leak
	drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
	amdgpu: avoid incorrect %hu format string
	drm/amdgpu: fix NULL pointer dereference
	scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response
	scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
	scsi: libfc: Fix a format specifier
	s390/archrandom: add parameter check for s390_arch_random_generate
	ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
	ALSA: hda/conexant: Re-order CX5066 quirk table entries
	ALSA: sb: Fix two use after free in snd_sb_qsound_build
	ALSA: usb-audio: Explicitly set up the clock selector
	ALSA: usb-audio: More constifications
	ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8
	ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
	btrfs: fix race when picking most recent mod log operation for an old root
	arm64/vdso: Discard .note.gnu.property sections in vDSO
	ubifs: Only check replay with inode type to judge if inode linked
	f2fs: fix to avoid out-of-bounds memory access
	mlxsw: spectrum_mr: Update egress RIF list before route's action
	openvswitch: fix stack OOB read while fragmenting IPv4 packets
	ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
	NFS: Don't discard pNFS layout segments that are marked for return
	NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
	jffs2: Fix kasan slab-out-of-bounds problem
	powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
	powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
	intel_th: pci: Add Alder Lake-M support
	tpm: vtpm_proxy: Avoid reading host log when using a virtual device
	md/raid1: properly indicate failure when ending a failed write request
	dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences
	security: commoncap: fix -Wstringop-overread warning
	Fix misc new gcc warnings
	jffs2: check the validity of dstlen in jffs2_zlib_compress()
	Revert 337f13046f ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
	posix-timers: Preserve return value in clock_adjtime32()
	arm64: vdso: remove commas between macro name and arguments
	ext4: fix check to prevent false positive report of incorrect used inodes
	ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
	ext4: fix error code in ext4_commit_super
	media: dvbdev: Fix memory leak in dvb_media_device_free()
	usb: gadget: dummy_hcd: fix gpf in gadget_setup
	usb: gadget: Fix double free of device descriptor pointers
	usb: gadget/function/f_fs string table fix for multiple languages
	usb: dwc3: gadget: Fix START_TRANSFER link state check
	usb: dwc2: Fix session request interrupt handler
	tty: fix memory leak in vc_deallocate
	rsi: Use resume_noirq for SDIO
	tracing: Map all PIDs to command lines
	tracing: Restructure trace_clock_global() to never block
	dm persistent data: packed struct should have an aligned() attribute too
	dm space map common: fix division bug in sm_ll_find_free_block()
	dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
	modules: mark ref_module static
	modules: mark find_symbol static
	modules: mark each_symbol_section static
	modules: unexport __module_text_address
	modules: unexport __module_address
	modules: rename the licence field in struct symsearch to license
	modules: return licensing information from find_symbol
	modules: inherit TAINT_PROPRIETARY_MODULE
	Bluetooth: verify AMP hci_chan before amp_destroy
	hsr: use netdev_err() instead of WARN_ONCE()
	bluetooth: eliminate the potential race condition when removing the HCI controller
	net/nfc: fix use-after-free llcp_sock_bind/connect
	ASoC: samsung: tm2_wm5110: check of of_parse return value
	MIPS: pci-mt7620: fix PLL lock check
	MIPS: pci-rt2880: fix slot 0 configuration
	FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
	iio:accel:adis16201: Fix wrong axis assignment that prevents loading
	misc: lis3lv02d: Fix false-positive WARN on various HP models
	misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
	misc: vmw_vmci: explicitly initialize vmci_datagram payload
	md/bitmap: wait for external bitmap writes to complete during tear down
	md-cluster: fix use-after-free issue when removing rdev
	md: split mddev_find
	md: factor out a mddev_find_locked helper from mddev_find
	md: md_open returns -EBUSY when entering racing area
	md: Fix missing unused status line of /proc/mdstat
	ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
	cfg80211: scan: drop entry from hidden_list on overflow
	drm/radeon: fix copy of uninitialized variable back to userspace
	ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
	ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
	ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
	ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
	ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
	ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
	ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
	ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
	x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
	KVM: s390: split kvm_s390_logical_to_effective
	KVM: s390: fix guarded storage control register handling
	KVM: s390: split kvm_s390_real_to_abs
	ovl: fix missing revert_creds() on error path
	usb: gadget: pch_udc: Revert d3cb25a121 completely
	memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
	ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
	ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
	ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
	ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
	ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
	ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
	serial: stm32: fix incorrect characters on console
	serial: stm32: fix tx_empty condition
	usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
	regmap: set debugfs_name to NULL after it is freed
	mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
	mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
	mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
	mtd: rawnand: qcom: Return actual error code instead of -ENODEV
	x86/microcode: Check for offline CPUs before requesting new microcode
	usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
	usb: gadget: pch_udc: Check if driver is present before calling ->setup()
	usb: gadget: pch_udc: Check for DMA mapping error
	crypto: qat - don't release uninitialized resources
	crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
	fotg210-udc: Fix DMA on EP0 for length > max packet size
	fotg210-udc: Fix EP0 IN requests bigger than two packets
	fotg210-udc: Remove a dubious condition leading to fotg210_done
	fotg210-udc: Mask GRP2 interrupts we don't handle
	fotg210-udc: Don't DMA more than the buffer can take
	fotg210-udc: Complete OUT requests on short packets
	mtd: require write permissions for locking and badblock ioctls
	bus: qcom: Put child node before return
	soundwire: bus: Fix device found flag correctly
	phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally
	crypto: qat - fix error path in adf_isr_resource_alloc()
	usb: gadget: aspeed: fix dma map failure
	USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
	soundwire: stream: fix memory leak in stream config error path
	mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
	irqchip/gic-v3: Fix OF_BAD_ADDR error handling
	staging: rtl8192u: Fix potential infinite loop
	staging: greybus: uart: fix unprivileged TIOCCSERIAL
	spi: Fix use-after-free with devm_spi_alloc_*
	soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
	soc: qcom: mdt_loader: Detect truncated read of segments
	ACPI: CPPC: Replace cppc_attr with kobj_attribute
	crypto: qat - Fix a double free in adf_create_ring
	cpufreq: armada-37xx: Fix setting TBG parent for load levels
	clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock
	cpufreq: armada-37xx: Fix the AVS value for load L1
	clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
	clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
	cpufreq: armada-37xx: Fix driver cleanup when registration failed
	cpufreq: armada-37xx: Fix determining base CPU frequency
	usb: gadget: r8a66597: Add missing null check on return from platform_get_resource
	USB: cdc-acm: fix unprivileged TIOCCSERIAL
	tty: actually undefine superseded ASYNC flags
	tty: fix return value for unsupported ioctls
	firmware: qcom-scm: Fix QCOM_SCM configuration
	usbip: vudc: fix missing unlock on error in usbip_sockfd_store()
	platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table
	x86/platform/uv: Fix !KEXEC build failure
	Drivers: hv: vmbus: Increase wait time for VMbus unload
	usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
	usb: dwc2: Fix hibernation between host and device modes.
	ttyprintk: Add TTY hangup callback.
	soc: aspeed: fix a ternary sign expansion bug
	media: vivid: fix assignment of dev->fbuf_out_flags
	media: omap4iss: return error code when omap4iss_get() failed
	media: m88rs6000t: avoid potential out-of-bounds reads on arrays
	drm/amdkfd: fix build error with AMD_IOMMU_V2=m
	x86/kprobes: Fix to check non boostable prefixes correctly
	pata_arasan_cf: fix IRQ check
	pata_ipx4xx_cf: fix IRQ check
	sata_mv: add IRQ checks
	ata: libahci_platform: fix IRQ check
	nvme: retrigger ANA log update if group descriptor isn't found
	vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer
	clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
	clk: uniphier: Fix potential infinite loop
	scsi: jazz_esp: Add IRQ check
	scsi: sun3x_esp: Add IRQ check
	scsi: sni_53c710: Add IRQ check
	scsi: ibmvfc: Fix invalid state machine BUG_ON()
	mfd: stm32-timers: Avoid clearing auto reload register
	HSI: core: fix resource leaks in hsi_add_client_from_dt()
	x86/events/amd/iommu: Fix sysfs type mismatch
	sched/debug: Fix cgroup_path[] serialization
	drivers/block/null_blk/main: Fix a double free in null_init.
	HID: plantronics: Workaround for double volume key presses
	perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars
	net: lapbether: Prevent racing when checking whether the netif is running
	powerpc/prom: Mark identical_pvr_fixup as __init
	powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration
	ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
	bug: Remove redundant condition check in report_bug
	nfc: pn533: prevent potential memory corruption
	net: hns3: Limiting the scope of vector_ring_chain variable
	ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
	liquidio: Fix unintented sign extension of a left shift of a u16
	powerpc/64s: Fix pte update for kernel memory on radix
	powerpc/perf: Fix PMU constraint check for EBB events
	powerpc: iommu: fix build when neither PCI or IBMVIO is set
	mac80211: bail out if cipher schemes are invalid
	mt7601u: fix always true expression
	IB/hfi1: Fix error return code in parse_platform_config()
	net: thunderx: Fix unintentional sign extension issue
	RDMA/srpt: Fix error return code in srpt_cm_req_recv()
	i2c: cadence: add IRQ check
	i2c: emev2: add IRQ check
	i2c: jz4780: add IRQ check
	i2c: sh7760: add IRQ check
	ASoC: ak5558: correct reset polarity
	drm/i915/gvt: Fix error code in intel_gvt_init_device()
	MIPS: pci-legacy: stop using of_pci_range_to_resource
	powerpc/pseries: extract host bridge from pci_bus prior to bus removal
	rtlwifi: 8821ae: upgrade PHY and RF parameters
	i2c: sh7760: fix IRQ error path
	mwl8k: Fix a double Free in mwl8k_probe_hw
	vsock/vmci: log once the failed queue pair allocation
	RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
	ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
	net: davinci_emac: Fix incorrect masking of tx and rx error channel
	ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
	ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock
	powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
	bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
	ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E
	arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E
	net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
	net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
	RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
	net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
	kfifo: fix ternary sign extension bugs
	mm/sparse: add the missing sparse_buffer_fini() in error branch
	mm/memory-failure: unnecessary amount of unmapping
	net: Only allow init netns to set default tcp cong to a restricted algo
	smp: Fix smp_call_function_single_async prototype
	Revert "net/sctp: fix race condition in sctp_destroy_sock"
	sctp: delay auto_asconf init until binding the first addr
	Revert "of/fdt: Make sure no-map does not remove already reserved regions"
	Revert "fdt: Properly handle "no-map" field in the memory region"
	tpm: fix error return code in tpm2_get_cc_attrs_tbl()
	fs: dlm: fix debugfs dump
	tipc: convert dest node's address to network order
	ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
	net: stmmac: Set FIFO sizes for ipq806x
	i2c: bail out early when RDWR parameters are wrong
	ALSA: hdsp: don't disable if not enabled
	ALSA: hdspm: don't disable if not enabled
	ALSA: rme9652: don't disable if not enabled
	Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
	Bluetooth: initialize skb_queue_head at l2cap_chan_create()
	net: bridge: when suppression is enabled exclude RARP packets
	Bluetooth: check for zapped sk before connecting
	ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
	ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
	i2c: Add I2C_AQ_NO_REP_START adapter quirk
	mac80211: clear the beacon's CRC after channel switch
	pinctrl: samsung: use 'int' for register masks in Exynos
	cuse: prevent clone
	selftests: Set CC to clang in lib.mk if LLVM is set
	kconfig: nconf: stop endless search loops
	sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
	powerpc/smp: Set numa node before updating mask
	ASoC: rt286: Generalize support for ALC3263 codec
	ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
	samples/bpf: Fix broken tracex1 due to kprobe argument change
	powerpc/pseries: Stop calling printk in rtas_stop_self()
	wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
	wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
	powerpc/iommu: Annotate nested lock for lockdep
	net: ethernet: mtk_eth_soc: fix RX VLAN offload
	ia64: module: fix symbolizer crash on fdescr
	ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
	f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
	PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()
	PCI: Release OF node in pci_scan_device()'s error path
	ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook
	rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
	NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
	NFS: Deal correctly with attribute generation counter overflow
	PCI: endpoint: Fix missing destroy_workqueue()
	pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
	NFSv4.2 fix handling of sr_eof in SEEK's reply
	rtc: ds1307: Fix wday settings for rx8130
	net: hns3: disable phy loopback setting in hclge_mac_start_phy
	sctp: do asoc update earlier in sctp_sf_do_dupcook_a
	ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
	sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
	netfilter: xt_SECMARK: add new revision to fix structure layout
	drm/radeon: Fix off-by-one power_state index heap overwrite
	drm/radeon: Avoid power table parsing memory leaks
	khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
	mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
	ksm: fix potential missing rmap_item for stable_node
	net: fix nla_strcmp to handle more then one trailing null character
	smc: disallow TCP_ULP in smc_setsockopt()
	netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
	sched/fair: Fix unfairness caused by missing load decay
	kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
	netfilter: nftables: avoid overflows in nft_hash_buckets()
	i40e: Fix use-after-free in i40e_client_subtask()
	ARC: entry: fix off-by-one error in syscall number validation
	powerpc/64s: Fix crashes when toggling stf barrier
	powerpc/64s: Fix crashes when toggling entry flush barrier
	hfsplus: prevent corruption in shrinking truncate
	squashfs: fix divide error in calculate_skip()
	userfaultfd: release page in error path to avoid BUG_ON
	drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
	iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
	usb: fotg210-hcd: Fix an error message
	ACPI: scan: Fix a memory leak in an error handling path
	blk-mq: Swap two calls in blk_mq_exit_queue()
	usb: dwc3: omap: improve extcon initialization
	usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield
	usb: xhci: Increase timeout for HC halt
	usb: dwc2: Fix gadget DMA unmap direction
	usb: core: hub: fix race condition about TRSMRCY of resume
	usb: dwc3: gadget: Return success always for kick transfer in ep queue
	xhci: Do not use GFP_KERNEL in (potentially) atomic context
	xhci: Add reset resume quirk for AMD xhci controller.
	iio: gyro: mpu3050: Fix reported temperature value
	iio: tsl2583: Fix division by a zero lux_val
	cdc-wdm: untangle a circular dependency between callback and softint
	KVM: x86: Cancel pvclock_gtod_work on module removal
	FDDI: defxx: Make MMIO the configuration default except for EISA
	MIPS: Reinstate platform `__div64_32' handler
	MIPS: Avoid DIVU in `__div64_32' is result would be zero
	MIPS: Avoid handcoded DIVU in `__div64_32' altogether
	thermal/core/fair share: Lock the thermal zone while looping over instances
	kobject_uevent: remove warning in init_uevent_argv()
	netfilter: conntrack: Make global sysctls readonly in non-init netns
	clk: exynos7: Mark aclk_fsys1_200 as critical
	nvme: do not try to reconfigure APST when the controller is not live
	x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
	kgdb: fix gcc-11 warning on indentation
	usb: sl811-hcd: improve misleading indentation
	cxgb4: Fix the -Wmisleading-indentation warning
	isdn: capi: fix mismatched prototypes
	pinctrl: ingenic: Improve unreachable code generation
	xsk: Simplify detection of empty and full rings
	PCI: thunder: Fix compile testing
	ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()
	ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
	Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices
	Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state
	um: Mark all kernel symbols as local
	ARM: 9075/1: kernel: Fix interrupted SMC calls
	scripts/recordmcount.pl: Fix RISC-V regex for clang
	riscv: Workaround mcount name prior to clang-13
	ceph: fix fscache invalidation
	scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found
	gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
	ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
	block: reexpand iov_iter after read/write
	lib: stackdepot: turn depot_lock spinlock to raw_spinlock
	net: stmmac: Do not enable RX FIFO overflow interrupts
	ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
	sit: proper dev_{hold|put} in ndo_[un]init methods
	ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
	ipv6: remove extra dev_hold() for fallback tunnels
	iomap: fix sub-page uptodate handling
	KVM: arm64: Initialize VCPU mdcr_el2 before loading it
	tweewide: Fix most Shebang lines
	scripts: switch explicitly to Python 3
	Linux 4.19.191

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2ea4fc6350bb5c5b5ae38ec7ad52ec20cf3b7aae
2021-05-22 11:54:36 +02:00
Christoph Hellwig
2ab98abf0d modules: inherit TAINT_PROPRIETARY_MODULE
commit 262e6ae7081df304fc625cf368d5c2cbba2bb991 upstream.

If a TAINT_PROPRIETARY_MODULE exports symbol, inherit the taint flag
for all modules importing these symbols, and don't allow loading
symbols from TAINT_PROPRIETARY_MODULE modules if the module previously
imported gplonly symbols.  Add a anti-circumvention devices so people
don't accidentally get themselves into trouble this way.

Comment from Greg:
  "Ah, the proven-to-be-illegal "GPL Condom" defense :)"

[jeyu: pr_info -> pr_err and pr_warn as per discussion]
Link: http://lore.kernel.org/r/20200730162957.GA22469@lst.de
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Christoph Hellwig
ef658fe020 modules: return licensing information from find_symbol
commit ef1dac6021cc8ec5de02ce31722bf26ac4ed5523 upstream.

Report the GPLONLY status through a new argument.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Christoph Hellwig
04c85f7588 modules: rename the licence field in struct symsearch to license
commit cd8732cdcc37d7077c4fa2c966b748c0662b607e upstream.

Use the same spelling variant as the rest of the file.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Christoph Hellwig
1c713f50b3 modules: mark each_symbol_section static
commit a54e04914c211b5678602a46b3ede5d82ec1327d upstream.

each_symbol_section is only used inside of module.c.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Christoph Hellwig
c3da81cefb modules: mark find_symbol static
commit 773110470e2fa3839523384ae014f8a723c4d178 upstream.

find_symbol is only used in module.c.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Christoph Hellwig
8745aa4e01 modules: mark ref_module static
commit 7ef5264de773279b9f23b6cc8afb5addb30e970b upstream.

ref_module isn't used anywhere outside of module.c.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:59:23 +02:00
Greg Kroah-Hartman
8dddb6042d ANDROID: GKI: module.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct module.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2a764e9eac88f20e50d192112235da6d2f0f83bc
(cherry picked from commit b0c456e92b)
2020-05-30 02:28:41 +08:00
Steve Muckle
17b9a1bcfb ANDROID: unconditionally compile sig_ok in struct module
The generic kernel image must have module signing disabled so it can
load kernel modules from all vendors. Unfortunately loading a signed
kernel module into a kernel with module signing disabled will fail
because struct module_layout (which appears in kernel modules) contains
struct module, and struct module contains the sig_ok field, which is
conditionally compiled depending on CONFIG_MODULE_SIG (module signing).

Unconditionally compile the sig_ok field to work around this problem.

Bug: 135940219
Test: load a signed kernel module with module signing disabled
Change-Id: I5cc437c806f74f89c0e45ce4135136ca0c70738e
Signed-off-by: Steve Muckle <smuckle@google.com>
2020-05-30 02:07:20 +08:00
Greg Kroah-Hartman
b0c456e92b ANDROID: GKI: module.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct module.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2a764e9eac88f20e50d192112235da6d2f0f83bc
2020-05-01 15:18:11 +02:00
Steve Muckle
5a81e7ff4b ANDROID: unconditionally compile sig_ok in struct module
The generic kernel image must have module signing disabled so it can
load kernel modules from all vendors. Unfortunately loading a signed
kernel module into a kernel with module signing disabled will fail
because struct module_layout (which appears in kernel modules) contains
struct module, and struct module contains the sig_ok field, which is
conditionally compiled depending on CONFIG_MODULE_SIG (module signing).

Unconditionally compile the sig_ok field to work around this problem.

Bug: 135940219
Test: load a signed kernel module with module signing disabled
Change-Id: I5cc437c806f74f89c0e45ce4135136ca0c70738e
Signed-off-by: Steve Muckle <smuckle@google.com>
2019-10-18 18:21:57 +00:00
Ivaylo Georgiev
ab4949914c Merge android-4.19.49 (3f534fa) into msm-4.19
* refs/heads/tmp-3f534fa:
  Linux 4.19.49
  media: uvcvideo: Fix uvc_alloc_entity() allocation alignment
  of: overlay: set node fields from properties when add new overlay node
  of: overlay: validate overlay properties #address-cells and #size-cells
  scsi: lpfc: Fix backport of faf5a744f4f8 ("scsi: lpfc: avoid uninitialized variable warning")
  x86/kprobes: Set instruction page as executable
  x86/ftrace: Set trampoline pages as executable
  x86/ftrace: Do not call function graph from dynamic trampolines
  binder: fix race between munmap() and direct reclaim
  Revert "binder: fix handling of misaligned binder object"
  Revert "x86/build: Move _etext to actual end of .text"
  include/linux/module.h: copy __init/__exit attrs to init/cleanup_module
  Compiler Attributes: add support for __copy (gcc >= 9)
  drm/lease: Make sure implicit planes are leased
  drm/rockchip: shutdown drm subsystem on shutdown
  drm/sun4i: Fix sun8i HDMI PHY configuration for > 148.5 MHz
  drm/sun4i: Fix sun8i HDMI PHY clock initialization
  drm/vmwgfx: Don't send drm sysfs hotplug events on initial master set
  drm/tegra: gem: Fix CPU-cache maintenance for BO's allocated using get_pages()
  gcc-plugins: Fix build failures under Darwin host
  Revert "lockd: Show pid of lockd for remote locks"
  CIFS: cifs_read_allocate_pages: don't iterate through whole page array on ENOMEM
  cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case
  staging: wlan-ng: fix adapter initialization failure
  staging: vc04_services: prevent integer overflow in create_pagelist()
  serial: sh-sci: disable DMA for uart_console
  vt/fbcon: deinitialize resources in visual_init() after failed memory allocation
  evm: check hash algorithm passed to init_desc()
  ima: show rules with IMA_INMASK correctly
  doc: Cope with Sphinx logging deprecations
  doc: Cope with the deprecation of AutoReporter
  docs: Fix conf.py for Sphinx 2.0
  arm64: Fix the arm64_personality() syscall wrapper redirection
  kernel/signal.c: trace_signal_deliver when signal_group_exit
  memcg: make it work on sparse non-0-node systems
  tty: max310x: Fix external crystal register setup
  tty: serial: msm_serial: Fix XON/XOFF
  i2c: synquacer: fix synquacer_i2c_doxfer() return value
  i2c: mlxcpld: Fix wrong initialization order in probe
  drm/nouveau/i2c: Disable i2c bus access after ->fini()
  KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
  ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops
  ALSA: hda/realtek - Set default power save node to 0
  ALSA: line6: Assure canceling delayed work at disconnection
  powerpc/perf: Fix MMCRA corruption by bhrb_filter
  KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts
  s390/crypto: fix possible sleep during spinlock aquired
  s390/crypto: fix gcm-aes-s390 selftest failures
  iio: adc: ti-ads8688: fix timestamp is not updated in buffer
  iio: dac: ds4422/ds4424 fix chip verification
  Btrfs: incremental send, fix file corruption when no-holes feature is enabled
  Btrfs: fix fsync not persisting changed attributes of a directory
  Btrfs: fix race updating log root item during fsync
  Btrfs: fix wrong ctime and mtime of a directory after log replay
  tracing: Avoid memory leak in predicate_parse()
  scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
  scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
  brcmfmac: fix NULL pointer derefence during USB disconnect
  media: smsusb: better handle optional alignment
  media: usb: siano: Fix false-positive "uninitialized variable" warning
  media: usb: siano: Fix general protection fault in smsusb
  USB: rio500: fix memory leak in close after disconnect
  USB: rio500: refuse more than one device at a time
  USB: Add LPM quirk for Surface Dock GigE adapter
  USB: sisusbvga: fix oops in error path of sisusb_probe
  USB: Fix slab-out-of-bounds write in usb_get_bos_descriptor
  usbip: usbip_host: fix stub_dev lock context imbalance regression
  usbip: usbip_host: fix BUG: sleeping function called from invalid context
  usb: xhci: avoid null pointer deref when bos field is NULL
  xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic()
  xhci: Use %zu for printing size_t type
  xhci: update bounce buffer with correct sg num
  include/linux/bitops.h: sanitize rotate primitives
  sparc64: Fix regression in non-hypervisor TLB flush xcall
  ANDROID: uid_sys_stats: report uid_cputime stats in microseconds
  Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
  cuttlefish_defconfig: update with recent upstream change
  cuttlefish_defconfig: update with recent upstream change

Change-Id: I62be41246e49d33b20377ca090ae4a73bc6b592d
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-07-14 23:58:38 -07:00
Ivaylo Georgiev
d7864ac281 Merge android-4.19.48 (01f5de3) into msm-4.19
* refs/heads/tmp-01f5de3:
  Linux 4.19.48
  tipc: fix modprobe tipc failed after switch order of device registration
  Revert "tipc: fix modprobe tipc failed after switch order of device registration"
  xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
  jump_label: move 'asm goto' support test to Kconfig
  compiler.h: give up __compiletime_assert_fallback()
  include/linux/compiler*.h: define asm_volatile_goto
  crypto: vmx - ghash: do nosimd fallback manually
  net/tls: don't ignore netdev notifications if no TLS features
  net/tls: fix state removal with feature flags off
  bnxt_en: Fix aggregation buffer leak under OOM condition.
  net: stmmac: dma channel control register need to be init first
  net/mlx5e: Disable rxhash when CQE compress is enabled
  net/mlx5: Allocate root ns memory using kzalloc to match kfree
  tipc: Avoid copying bytes beyond the supplied data
  net/mlx5: Avoid double free in fs init error unwinding path
  usbnet: fix kernel crash after disconnect
  net: stmmac: fix reset gpio free missing
  net: sched: don't use tc_action->order during action dump
  net: phy: marvell10g: report if the PHY fails to boot firmware
  net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
  net: mvneta: Fix err code path of probe
  net-gro: fix use-after-free read in napi_gro_frags()
  net: fec: fix the clk mismatch in failed_reset path
  net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
  llc: fix skb leak in llc_build_and_send_ui_pkt()
  ipv6: Fix redirect with VRF
  ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
  ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
  ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
  inet: switch IP ID generator to siphash
  cxgb4: offload VLAN flows regardless of VLAN ethtype
  bonding/802.3ad: fix slave link initialization transition states

Conflicts:
	include/linux/compiler.h

Change-Id: I43dd2908aa00a247ac985c36d210e83370361315
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-07-14 23:58:35 -07:00
Ivaylo Georgiev
0f3194a0fa Merge android-4.19.45 (50f9143) into msm-4.19
* refs/heads/tmp-50f9143:
  Linux 4.19.45
  ext4: don't update s_rev_level if not required
  ext4: fix compile error when using BUFFER_TRACE
  pstore: Refactor compression initialization
  pstore: Allocate compression during late_initcall()
  pstore: Centralize init/exit routines
  iov_iter: optimize page_copy_sane()
  libnvdimm/namespace: Fix label tracking error
  xen/pvh: set xen_domain_type to HVM in xen_pvh_init
  kbuild: turn auto.conf.cmd into a mandatory include file
  KVM: lapic: Busy wait for timer to expire when using hv_timer
  KVM: x86: Skip EFER vs. guest CPUID checks for host-initiated writes
  jbd2: fix potential double free
  ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal microphone bug
  ALSA: hda/realtek - Fixup headphone noise via runtime suspend
  ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14)
  ext4: avoid panic during forced reboot due to aborted journal
  ext4: fix use-after-free in dx_release()
  ext4: fix data corruption caused by overlapping unaligned and aligned IO
  ext4: zero out the unused memory region in the extent tree block
  tty: Don't force RISCV SBI console as preferred console
  fs/writeback.c: use rcu_barrier() to wait for inflight wb switches going into workqueue when umount
  crypto: ccm - fix incompatibility between "ccm" and "ccm_base"
  ipmi:ssif: compare block number correctly for multi-part return messages
  bcache: never set KEY_PTRS of journal key to 0 in journal_reclaim()
  bcache: fix a race between cache register and cacheset unregister
  Btrfs: do not start a transaction at iterate_extent_inodes()
  Btrfs: do not start a transaction during fiemap
  Btrfs: send, flush dellaloc in order to avoid data loss
  btrfs: Honour FITRIM range constraints during free space trim
  btrfs: Correctly free extent buffer in case btree_read_extent_buffer_pages fails
  btrfs: Check the first key and level for cached extent buffer
  ext4: fix ext4_show_options for file systems w/o journal
  ext4: actually request zeroing of inode table after grow
  ext4: fix use-after-free race with debug_want_extra_isize
  ext4: avoid drop reference to iloc.bh twice
  ext4: ignore e_value_offs for xattrs with value-in-ea-inode
  ext4: make sanity check in mballoc more strict
  jbd2: check superblock mapped prior to committing
  tty/vt: fix write/write race in ioctl(KDSKBSENT) handler
  tty: vt.c: Fix TIOCL_BLANKSCREEN console blanking if blankinterval == 0
  mtd: spi-nor: intel-spi: Avoid crossing 4K address boundary on read/write
  mfd: max77620: Fix swapped FPS_PERIOD_MAX_US values
  mfd: da9063: Fix OTP control register names to match datasheets for DA9063/63L
  ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle
  userfaultfd: use RCU to free the task struct when fork fails
  ocfs2: fix ocfs2 read inode data panic in ocfs2_iget
  hugetlb: use same fault hash key for shared and private mappings
  mm/hugetlb.c: don't put_page in lock of hugetlb_lock
  mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses
  mm/mincore.c: make mincore() more conservative
  crypto: ccree - handle tee fips error during power management resume
  crypto: ccree - add function to handle cryptocell tee fips error
  crypto: ccree - HOST_POWER_DOWN_EN should be the last CC access during suspend
  crypto: ccree - pm resume first enable the source clk
  crypto: ccree - don't map AEAD key and IV on stack
  crypto: ccree - use correct internal state sizes for export
  crypto: ccree - don't map MAC key on stack
  crypto: ccree - fix mem leak on error path
  crypto: ccree - remove special handling of chained sg
  bpf, arm64: remove prefetch insn in xadd mapping
  ASoC: codec: hdac_hdmi add device_link to card device
  ASoC: fsl_esai: Fix missing break in switch statement
  ASoC: RT5677-SPI: Disable 16Bit SPI Transfers
  ASoC: max98090: Fix restore of DAPM Muxes
  ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)
  ALSA: hda/realtek - EAPD turn on later
  ALSA: hda/hdmi - Consider eld_valid when reporting jack event
  ALSA: hda/hdmi - Read the pin sense from register when repolling
  ALSA: usb-audio: Fix a memory leak bug
  ALSA: line6: toneport: Fix broken usage of timer for delayed execution
  mmc: core: Fix tag set memory leak
  crypto: arm64/aes-neonbs - don't access already-freed walk.iv
  crypto: arm/aes-neonbs - don't access already-freed walk.iv
  crypto: rockchip - update IV buffer to contain the next IV
  crypto: gcm - fix incompatibility between "gcm" and "gcm_base"
  crypto: arm64/gcm-aes-ce - fix no-NEON fallback code
  crypto: x86/crct10dif-pcl - fix use via crypto_shash_digest()
  crypto: crct10dif-generic - fix use via crypto_shash_digest()
  crypto: skcipher - don't WARN on unprocessed data after slow walk step
  crypto: vmx - fix copy-paste error in CTR mode
  crypto: ccp - Do not free psp_master when PLATFORM_INIT fails
  crypto: chacha20poly1305 - set cra_name correctly
  crypto: salsa20 - don't access already-freed walk.iv
  crypto: crypto4xx - fix cfb and ofb "overran dst buffer" issues
  crypto: crypto4xx - fix ctr-aes missing output IV
  sched/x86: Save [ER]FLAGS on context switch
  arm64: Save and restore OSDLR_EL1 across suspend/resume
  arm64: Clear OSDLR_EL1 on CPU boot
  arm64: compat: Reduce address limit
  arm64: arch_timer: Ensure counter register reads occur with seqlock held
  arm64: mmap: Ensure file offset is treated as unsigned
  power: supply: axp288_fuel_gauge: Add ACEPC T8 and T11 mini PCs to the blacklist
  power: supply: axp288_charger: Fix unchecked return value
  ARM: exynos: Fix a leaked reference by adding missing of_node_put
  mmc: sdhci-of-arasan: Add DTS property to disable DCMDs.
  ARM: dts: exynos: Fix audio (microphone) routing on Odroid XU3
  ARM: dts: exynos: Fix interrupt for shared EINTs on Exynos5260
  arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller.
  objtool: Fix function fallthrough detection
  x86/speculation/mds: Improve CPU buffer clear documentation
  x86/speculation/mds: Revert CPU buffer clear on double fault exit
  locking/rwsem: Prevent decrement of reader count before increment
  fs: sdcardfs: Add missing option to show_options
  BACKPORT: drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines
  ANDROID: x86: use the correct function type for sys_ni_syscall
  ANDROID: x86: use the correct function type for sys32_(rt_)sigreturn
  ANDROID: x86: use the correct function type for native_set_fixmap
  ANDROID: x86: use the correct function type in SYSCALL_DEFINE0
  ANDROID: x86: add support for CONFIG_LTO_CLANG
  ANDROID: x86: disable STACK_VALIDATION with LTO_CLANG
  ANDROID: x86: disable HAVE_ARCH_PREL32_RELOCATIONS with LTO_CLANG
  ANDROID: x86/vdso: disable LTO only for VDSO
  ANDROID: x86/cpu/vmware: use the full form of inl in VMWARE_PORT
  UPSTREAM: x86/build: Keep local relocations with ld.lld
  ANDROID: crypto: arm64/ghash: fix CFI for GHASH CE
  ANDROID: crypto: arm64/sha: fix CFI in SHA CE
  ANDROID: arm64: kvm: disable CFI
  ANDROID: arm64: mark kpti_install_ng_mappings as __nocfi
  ANDROID: arm64: disable CFI for cpu_replace_ttbr1
  FROMLIST: arm64: use the correct function type for __arm64_sys_ni_syscall
  FROMLIST: arm64: use the correct function type in SYSCALL_DEFINE0
  FROMLIST: arm64: fix syscall_fn_t type
  ANDROID: modpost: add an exception for CFI stubs
  ANDROID: ftrace: fix function type mismatches
  FROMLIST: 9p: pass the correct prototype to read_cache_page
  FROMLIST: jffs2: pass the correct prototype to read_cache_page
  UPSTREAM: nfs: pass the correct prototype to read_cache_page
  FROMLIST: mm: don't cast ->readpage to filler_t for do_read_cache_page
  UPSTREAM: netfilter: xt_IDLETIMER: fix sysfs callback function type
  ANDROID: kallsyms: strip the .cfi postfix from symbols with CONFIG_CFI_CLANG
  ANDROID: add support for clang Control Flow Integrity (CFI)
  FROMLIST: arm64: select ARCH_SUPPORTS_LTO_CLANG
  ANDROID: arm64: disable HAVE_ARCH_PREL32_RELOCATIONS with LTO_CLANG
  ANDROID: arm64: add atomic_ll_sc.o to obj-y if using lld
  ANDROID: arm64: lse: fix LSE atomics with LTO
  ANDROID: arm64: vdso: disable LTO
  FROMLIST: arm64: kvm: use -fno-jump-tables with clang
  BACKPORT: arm64: sysreg: Make mrs_s and msr_s macros work with Clang and LTO
  ANDROID: init: ensure initcall ordering with LTO
  ANDROID: drivers/misc: disable LTO for lkdtm_rodata.o
  FROMLIST: efi/libstub: disable LTO
  FROMLIST: scripts/mod: disable LTO for empty.c
  ANDROID: kbuild: disable LTO_CLANG with KASAN
  FROMLIST: kbuild: fix dynamic ftrace with clang LTO
  ANDROID: kbuild: add support for clang LTO
  ANDROID: kbuild: add CONFIG_LD_IS_LLD
  UPSTREAM: gcov: clang support
  UPSTREAM: gcov: docs: add a note on GCC vs Clang differences
  UPSTREAM: gcov: clang: move common GCC code into gcc_base.c
  UPSTREAM: module: add stubs for within_module functions
  UPSTREAM: bpf: relax inode permission check for retrieving bpf program

Conflicts:
	Makefile
	arch/Kconfig
	arch/arm64/kvm/hyp/Makefile
	arch/x86/include/asm/syscall_wrapper.h
	drivers/mmc/core/queue.c
	fs/nfs/dir.c
	fs/nfs/symlink.c
	include/asm-generic/vmlinux.lds.h
	include/linux/compiler-clang.h
	include/linux/pagemap.h
	kernel/cfi.c
	mm/filemap.c
	scripts/link-vmlinux.sh

Change-Id: I1e34675a86ecb60d7b8a87e16574ea8920f9cb12
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-07-08 00:33:34 -07:00
Greg Kroah-Hartman
3f534fa2fc Merge 4.19.49 into android-4.19
Changes in 4.19.49
	sparc64: Fix regression in non-hypervisor TLB flush xcall
	include/linux/bitops.h: sanitize rotate primitives
	xhci: update bounce buffer with correct sg num
	xhci: Use %zu for printing size_t type
	xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic()
	usb: xhci: avoid null pointer deref when bos field is NULL
	usbip: usbip_host: fix BUG: sleeping function called from invalid context
	usbip: usbip_host: fix stub_dev lock context imbalance regression
	USB: Fix slab-out-of-bounds write in usb_get_bos_descriptor
	USB: sisusbvga: fix oops in error path of sisusb_probe
	USB: Add LPM quirk for Surface Dock GigE adapter
	USB: rio500: refuse more than one device at a time
	USB: rio500: fix memory leak in close after disconnect
	media: usb: siano: Fix general protection fault in smsusb
	media: usb: siano: Fix false-positive "uninitialized variable" warning
	media: smsusb: better handle optional alignment
	brcmfmac: fix NULL pointer derefence during USB disconnect
	scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
	scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
	tracing: Avoid memory leak in predicate_parse()
	Btrfs: fix wrong ctime and mtime of a directory after log replay
	Btrfs: fix race updating log root item during fsync
	Btrfs: fix fsync not persisting changed attributes of a directory
	Btrfs: incremental send, fix file corruption when no-holes feature is enabled
	iio: dac: ds4422/ds4424 fix chip verification
	iio: adc: ti-ads8688: fix timestamp is not updated in buffer
	s390/crypto: fix gcm-aes-s390 selftest failures
	s390/crypto: fix possible sleep during spinlock aquired
	KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts
	powerpc/perf: Fix MMCRA corruption by bhrb_filter
	ALSA: line6: Assure canceling delayed work at disconnection
	ALSA: hda/realtek - Set default power save node to 0
	ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops
	KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
	drm/nouveau/i2c: Disable i2c bus access after ->fini()
	i2c: mlxcpld: Fix wrong initialization order in probe
	i2c: synquacer: fix synquacer_i2c_doxfer() return value
	tty: serial: msm_serial: Fix XON/XOFF
	tty: max310x: Fix external crystal register setup
	memcg: make it work on sparse non-0-node systems
	kernel/signal.c: trace_signal_deliver when signal_group_exit
	arm64: Fix the arm64_personality() syscall wrapper redirection
	docs: Fix conf.py for Sphinx 2.0
	doc: Cope with the deprecation of AutoReporter
	doc: Cope with Sphinx logging deprecations
	ima: show rules with IMA_INMASK correctly
	evm: check hash algorithm passed to init_desc()
	vt/fbcon: deinitialize resources in visual_init() after failed memory allocation
	serial: sh-sci: disable DMA for uart_console
	staging: vc04_services: prevent integer overflow in create_pagelist()
	staging: wlan-ng: fix adapter initialization failure
	cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case
	CIFS: cifs_read_allocate_pages: don't iterate through whole page array on ENOMEM
	Revert "lockd: Show pid of lockd for remote locks"
	gcc-plugins: Fix build failures under Darwin host
	drm/tegra: gem: Fix CPU-cache maintenance for BO's allocated using get_pages()
	drm/vmwgfx: Don't send drm sysfs hotplug events on initial master set
	drm/sun4i: Fix sun8i HDMI PHY clock initialization
	drm/sun4i: Fix sun8i HDMI PHY configuration for > 148.5 MHz
	drm/rockchip: shutdown drm subsystem on shutdown
	drm/lease: Make sure implicit planes are leased
	Compiler Attributes: add support for __copy (gcc >= 9)
	include/linux/module.h: copy __init/__exit attrs to init/cleanup_module
	Revert "x86/build: Move _etext to actual end of .text"
	Revert "binder: fix handling of misaligned binder object"
	binder: fix race between munmap() and direct reclaim
	x86/ftrace: Do not call function graph from dynamic trampolines
	x86/ftrace: Set trampoline pages as executable
	x86/kprobes: Set instruction page as executable
	scsi: lpfc: Fix backport of faf5a744f4f8 ("scsi: lpfc: avoid uninitialized variable warning")
	of: overlay: validate overlay properties #address-cells and #size-cells
	of: overlay: set node fields from properties when add new overlay node
	media: uvcvideo: Fix uvc_alloc_entity() allocation alignment
	Linux 4.19.49

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-06-09 09:27:18 +02:00
Miguel Ojeda
9468870f7c include/linux/module.h: copy __init/__exit attrs to init/cleanup_module
commit a6e60d84989fa0e91db7f236eda40453b0e44afa upstream.

The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target.

In particular, it triggers for all the init/cleanup_module
aliases in the kernel (defined by the module_init/exit macros),
ending up being very noisy.

These aliases point to the __init/__exit functions of a module,
which are defined as __cold (among other attributes). However,
the aliases themselves do not have the __cold attribute.

Since the compiler behaves differently when compiling a __cold
function as well as when compiling paths leading to calls
to __cold functions, the warning is trying to point out
the possibly-forgotten attribute in the alias.

In order to keep the warning enabled, we decided to silence
this case. Ideally, we would mark the aliases directly
as __init/__exit. However, there are currently around 132 modules
in the kernel which are missing __init/__exit in their init/cleanup
functions (either because they are missing, or for other reasons,
e.g. the functions being called from somewhere else); and
a section mismatch is a hard error.

A conservative alternative was to mark the aliases as __cold only.
However, since we would like to eventually enforce __init/__exit
to be always marked,  we chose to use the new __copy function
attribute (introduced by GCC 9 as well to deal with this).
With it, we copy the attributes used by the target functions
into the aliases. This way, functions that were not marked
as __init/__exit won't have their aliases marked either,
and therefore there won't be a section mismatch.

Note that the warning would go away marking either the extern
declaration, the definition, or both. However, we only mark
the definition of the alias, since we do not want callers
(which only see the declaration) to be compiled as if the function
was __cold (and therefore the paths leading to those calls
would be assumed to be unlikely).

Link: https://lore.kernel.org/lkml/20190123173707.GA16603@gmail.com/
Link: https://lore.kernel.org/lkml/20190206175627.GA20399@gmail.com/
Suggested-by: Martin Sebor <msebor@gcc.gnu.org>
Acked-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-09 09:17:23 +02:00
Greg Kroah-Hartman
01f5de3fbc Merge 4.19.48 into android-4.19
Changes in 4.19.48
	bonding/802.3ad: fix slave link initialization transition states
	cxgb4: offload VLAN flows regardless of VLAN ethtype
	inet: switch IP ID generator to siphash
	ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
	ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
	ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
	ipv6: Fix redirect with VRF
	llc: fix skb leak in llc_build_and_send_ui_pkt()
	net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
	net: fec: fix the clk mismatch in failed_reset path
	net-gro: fix use-after-free read in napi_gro_frags()
	net: mvneta: Fix err code path of probe
	net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
	net: phy: marvell10g: report if the PHY fails to boot firmware
	net: sched: don't use tc_action->order during action dump
	net: stmmac: fix reset gpio free missing
	usbnet: fix kernel crash after disconnect
	net/mlx5: Avoid double free in fs init error unwinding path
	tipc: Avoid copying bytes beyond the supplied data
	net/mlx5: Allocate root ns memory using kzalloc to match kfree
	net/mlx5e: Disable rxhash when CQE compress is enabled
	net: stmmac: dma channel control register need to be init first
	bnxt_en: Fix aggregation buffer leak under OOM condition.
	net/tls: fix state removal with feature flags off
	net/tls: don't ignore netdev notifications if no TLS features
	crypto: vmx - ghash: do nosimd fallback manually
	include/linux/compiler*.h: define asm_volatile_goto
	compiler.h: give up __compiletime_assert_fallback()
	jump_label: move 'asm goto' support test to Kconfig
	xen/pciback: Don't disable PCI_COMMAND on PCI device reset.
	Revert "tipc: fix modprobe tipc failed after switch order of device registration"
	tipc: fix modprobe tipc failed after switch order of device registration
	Linux 4.19.48

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2019-06-04 08:27:48 +02:00
Masahiro Yamada
0276ebf166 jump_label: move 'asm goto' support test to Kconfig
commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 upstream.

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 <yamada.masahiro@socionext.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
[nc: Fix trivial conflicts in 4.19
     arch/xtensa/kernel/jump_label.c doesn't exist yet
     Ensured CC_HAVE_ASM_GOTO and HAVE_JUMP_LABEL were sufficiently
     eliminated]
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-04 08:02:34 +02:00
Sami Tolvanen
4976b0dad5 ANDROID: add support for clang Control Flow Integrity (CFI)
This change adds the CONFIG_CFI_CLANG option, CFI error handling,
and a faster look-up table for cross module CFI checks.

Bug: 67506682
Bug: 133186739
Change-Id: Ic009f0a629b552a0eb16e6d89808c7029e91447d
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
2019-05-20 17:46:32 -07:00
Tri Vo
7483147643 UPSTREAM: module: add stubs for within_module functions
Provide stubs for within_module_core(), within_module_init(), and
within_module() to prevent build errors when !CONFIG_MODULES.

Suggested-by: Matthew Wilcox <willy@infradead.org>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kbuild test robot <lkp@intel.com>
Link: https://marc.info/?l=linux-mm&m=155384681109231&w=2
Signed-off-by: Tri Vo <trong@android.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
(cherry picked from commit dadec066d8fa7da227f623f632ea114690fecaf8)
Bug: 132997968
Test: defconfig + CONFIG_GCOV_KERNEL records coverage

Change-Id: I69448d0721a5174d4f39fff0774a86361f37b8ef
2019-05-17 16:00:22 -07:00
Ivaylo Georgiev
27031678b4 Merge android-4.19.16 (976f78d) into msm-4.19
* refs/heads/tmp-976f78d:
  Linux 4.19.16
  Btrfs: use nofs context when initializing security xattrs to avoid deadlock
  Btrfs: fix deadlock when enabling quotas due to concurrent snapshot creation
  Btrfs: fix access to available allocation bits when starting balance
  arm64: compat: Don't pull syscall number from regs in arm_compat_syscall
  KVM: arm/arm64: Fix VMID alloc race by reverting to lock-less
  sunrpc: use-after-free in svc_process_common()
  mm: page_mapped: don't assume compound page is huge or THP
  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
  rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
  drm/amdgpu: Don't fail resume process if resuming atomic state fails
  drm/amdgpu: Don't ignore rc from drm_dp_mst_topology_mgr_resume()
  drm/i915: Unwind failure on pinning the gen7 ppgtt
  drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2
  drm/fb_helper: Allow leaking fbdev smem_start
  drm/amd/display: Fix MST dp_blank REG_WAIT timeout
  PCI: dwc: Move interrupt acking into the proper callback
  PCI: dwc: Take lock when ACKing an interrupt
  PCI: dwc: Use interrupt masking instead of disabling
  drm/amdgpu: Add new VegaM pci id
  vfio/type1: Fix unmap overflow off-by-one
  mtd: rawnand: qcom: fix memory corruption that causes panic
  i2c: dev: prevent adapter retries and timeout being set as minus value
  ACPI/IORT: Fix rc_dma_get_range()
  ACPI / PMIC: xpower: Fix TS-pin current-source handling
  ACPI: power: Skip duplicate power resource references in _PRx
  mm, memcg: fix reclaim deadlock with writeback
  mm/usercopy.c: no check page span for stack objects
  slab: alien caches must not be initialized if the allocation of the alien cache failed
  USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB
  USB: storage: add quirk for SMI SM3350
  USB: storage: don't insert sane sense for SPC3+ when bad sense specified
  usb: cdc-acm: send ZLP for Telit 3G Intel based modems
  cifs: Fix potential OOB access of lock element array
  CIFS: Fix credit computation for compounded requests
  CIFS: Do not hide EINTR after sending network packets
  CIFS: Do not set credits to 1 if the server didn't grant anything
  CIFS: Fix adjustment of credits for MTU requests
  ALSA: hda/realtek - Disable headset Mic VREF for headset mode of ALC225
  ALSA: hda/realtek - Add unplug function into unplug state of Headset Mode for ALC225
  ALSA: hda/realtek - Support Dell headset mode for New AIO platform
  x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
  cpufreq: scmi: Fix frequency invariance in slow path
  staging: rtl8188eu: Fix module loading from tasklet for WEP encryption
  staging: rtl8188eu: Fix module loading from tasklet for CCMP encryption
  Btrfs: fix deadlock when using free space tree due to block group creation
  UPSTREAM: selftests/memfd: Add tests for F_SEAL_FUTURE_WRITE seal
  UPSTREAM: mm/memfd: Add an F_SEAL_FUTURE_WRITE seal to memfd
  Revert "UPSTREAM: mm: Add an F_SEAL_FUTURE_WRITE seal to memfd"
  Revert "UPSTREAM: mm/memfd: make F_SEAL_FUTURE_WRITE seal more robust"
  ANDROID: cuttlefish: enable CONFIG_NET_CLS_BPF=y
  Makefile: Fix 4.19.15 resolution
  ANDROID: f2fs: Complement "android_fs" tracepoint of read path

Change-Id: I9c9c1f53796798b4ac1038dcfcf0d70624c1cfca
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-02-27 02:23:17 -08:00
WANG Chao
4bef2bacb1 x86, modpost: Replace last remnants of RETPOLINE with CONFIG_RETPOLINE
commit e4f358916d528d479c3c12bd2fd03f2d5a576380 upstream.

Commit

  4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support")

replaced the RETPOLINE define with CONFIG_RETPOLINE checks. Remove the
remaining pieces.

 [ bp: Massage commit message. ]

Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support")
Signed-off-by: WANG Chao <chao.wang@ucloud.cn>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Jessica Yu <jeyu@kernel.org>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Kees Cook <keescook@chromium.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Cc: Michal Marek <michal.lkml@markovi.net>
Cc: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: linux-kbuild@vger.kernel.org
Cc: srinivas.eeda@oracle.com
Cc: stable <stable@vger.kernel.org>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20181210163725.95977-1-chao.wang@ucloud.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-16 22:04:29 +01:00
Rishabh Bhatnagar
db20ade943 Merge remote-tracking branch 'origin/tmp-84df952' into msm-kona
* origin/tmp-84df952:
  Linux 4.19
  MAINTAINERS: Add an entry for the code of conduct
  Code of Conduct: Change the contact email address
  Code of Conduct Interpretation: Put in the proper URL for the committee
  Code of Conduct: Provide links between the two documents
  Code of Conduct Interpretation: Properly reference the TAB correctly
  Code of Conduct Interpretation: Add document explaining how the Code of Conduct is to be interpreted
  Code of conduct: Fix wording around maintainers enforcing the code of conduct
  Revert "neighbour: force neigh_invalidate when NUD_FAILED update is from admin"
  net/ipv6: Fix index counter for unicast addresses in in6_dump_addrs
  i2c: rcar: cleanup DMA for all kinds of failure
  MAINTAINERS: Add entry for Broadcom STB I2C controller
  net: fix pskb_trim_rcsum_slow() with odd trim offset
  selftests: ftrace: Add synthetic event syntax testcase
  tracing: Fix synthetic event to allow semicolon at end
  tracing: Fix synthetic event to accept unsigned modifier
  Revert "bond: take rcu lock in netpoll_send_skb_on_dev"
  drm/sun4i: Fix an ulong overflow in the dotclock driver
  x86/swiotlb: Enable swiotlb for > 4GiG RAM on 32-bit kernels
  ip6_tunnel: Fix encapsulation layout
  tipc: fix info leak from kernel tipc_event
  net: socket: fix a missing-check bug
  net: sched: Fix for duplicate class dump
  r8169: fix NAPI handling under high load
  sparc: Revert unintended perf changes.
  drm: Get ref on CRTC commit object when waiting for flip_done
  block: don't deal with discard limit in blkdev_issue_discard()
  fscache: Fix out of bound read in long cookie keys
  fscache: Fix incomplete initialisation of inline key space
  cachefiles: fix the race between cachefiles_bury_object() and rmdir(2)
  mremap: properly flush TLB before releasing the page
  LICENSES: Remove CC-BY-SA-4.0 license text
  net: ipmr: fix unresolved entry dumps
  net: mscc: ocelot: Fix comment in ocelot_vlant_wait_for_completion()
  sctp: fix the data size calculation in sctp_data_size
  virtio_net: avoid using netif_tx_disable() for serializing tx routine
  udp6: fix encap return code for resubmitting
  mlxsw: core: Fix use-after-free when flashing firmware during init
  sctp: not free the new asoc when sctp_wait_for_connect returns err
  sctp: fix race on sctp_id2asoc
  r8169: re-enable MSI-X on RTL8168g
  net: bpfilter: use get_pid_task instead of pid_task
  ptp: fix Spectre v1 vulnerability
  sparc: vDSO: Silence an uninitialized variable warning
  net: qla3xxx: Remove overflowing shift statement
  geneve, vxlan: Don't set exceptions if skb->len < mtu
  geneve, vxlan: Don't check skb_dst() twice
  sparc: Fix syscall fallback bugs in VDSO.
  tracing: Use trace_clock_local() for looping in preemptirq_delay_test.c
  tracepoint: Fix tracepoint array element size mismatch
  usb: gadget: storage: Fix Spectre v1 vulnerability
  perf tools: Stop fallbacking to kallsyms for vdso symbols lookup
  x86/fpu: Fix i486 + no387 boot crash by only saving FPU registers on context switch if there is an FPU
  x86/fpu: Remove second definition of fpu in __fpu__restore_sig()
  x86/entry/64: Further improve paranoid_entry comments
  x86/entry/32: Clear the CS high bits
  perf tools: Pass build flags to traceevent build
  perf report: Don't crash on invalid inline debug information
  sctp: get pr_assoc and pr_stream all status with SCTP_PR_SCTP_ALL instead
  RDMA/ucma: Fix Spectre v1 vulnerability
  IB/ucm: Fix Spectre v1 vulnerability
  perf cpu_map: Align cpu map synthesized events properly.
  perf tools: Fix tracing_path_mount proper path
  perf tools: Fix use of alternatives to find JDIR
  drm/edid: VSDB yCBCr420 Deep Color mode bit definitions
  perf evsel: Store ids for events with their own cpus perf_event__synthesize_event_update_cpus
  USB: fix the usbfs flag sanitization for control transfers
  parisc: Fix uninitialized variable usage in unwind.c
  sched/fair: Fix the min_vruntime update logic in dequeue_entity()
  nfp: flower: use offsets provided by pedit instead of index for ipv6
  nfp: flower: fix multiple keys per pedit action
  nfp: flower: fix pedit set actions for multiple partial masks
  rxrpc: Fix a missing rxrpc_put_peer() in the error_report handler
  sctp: use the pmtu from the icmp packet to update transport pathmtu
  net: fec: don't dump RX FIFO register when not available
  qed: fix spelling mistake "Ireelevant" -> "Irrelevant"
  ipv6: mcast: fix a use-after-free in inet6_mc_check
  tipc: fix unsafe rcu locking when accessing publication list
  rxrpc: Fix incorrect conditional on IPV6
  ipv6: rate-limit probes for neighbourless routes
  net: bcmgenet: Poll internal PHY for GENETv5
  rxrpc: use correct kvec num when sending BUSY response packet
  rxrpc: Fix an uninitialised variable
  tipc: initialize broadcast link stale counter correctly
  llc: set SOCK_RCU_FREE in llc_sap_add_socket()
  net/sched: cls_api: add missing validation of netlink attributes
  ethtool: fix a privilege escalation bug
  ethtool: fix a missing-check bug
  r8169: Enable MSI-X on RTL8106e
  Revert "sparc: Convert to using %pOFn instead of device_node.name"
  idr: Change documentation license
  test_ida: Fix lockdep warning
  Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15IGM
  afs: Fix clearance of reply
  sparc64: Set %l4 properly on trap return after handling signals.
  sparc64: Make proc_id signed.
  x86/boot: Add -Wno-pointer-sign to KBUILD_CFLAGS
  x86/time: Correct the attribute on jiffies' definition
  x86/entry: Add some paranoid entry/exit CR3 handling comments
  x86/percpu: Fix this_cpu_read()
  x86/tsc: Force inlining of cyc2ns bits
  sparc: Throttle perf events properly.
  sparc: Fix single-pcr perf event counter management.
  perf vendor events intel: Fix wrong filter_band* values for uncore events
  xfrm: policy: use hlist rcu variants on insert
  net/xfrm: fix out-of-bounds packet access
  sched/fair: Fix throttle_list starvation with low CFS quota
  xsk: do not call synchronize_net() under RCU read lock
  net/mlx5: WQ, fixes for fragmented WQ buffers API
  net/mlx5: Take only bit 24-26 of wqe.pftype_wq for page fault type
  net/mlx5: Fix memory leak when setting fpga ipsec caps
  MAINTAINERS: update the SELinux mailing list location
  sparc: Wire up io_pgetevents system call.
  usb: xhci: pci: Enable Intel USB role mux on Apollo Lake platforms
  usb: roles: intel_xhci: Fix Unbalanced pm_runtime_enable
  cdc-acm: correct counting of UART states in serial state notification
  cdc-acm: do not reset notification buffer index upon urb unlinking
  cdc-acm: fix race between reset and control messaging
  usb: usbip: Fix BUG: KASAN: slab-out-of-bounds in vhci_hub_control()
  selftests: usbip: add wait after attach and before checking port status
  Revert "perf tools: Fix PMU term format max value calculation"
  sunvdc: Remove VLA usage
  tools headers uapi: Sync kvm.h copy
  tools arch uapi: Sync the x86 kvm.h copy
  nvme: remove ns sibling before clearing path
  bpf: do not blindly change rlimit in reuseport net selftest
  drm: fix use of freed memory in drm_mode_setcrtc
  drm: fb-helper: Reject all pixel format changing requests
  MAINTAINERS: Remove net/core/flow.c
  drm/edid: Add 6 bpc quirk for BOE panel in HP Pavilion 15-n233sl
  xfrm: fix gro_cells leak when remove virtual xfrm interfaces
  clk: sunxi-ng: sun4i: Set VCO and PLL bias current to lowest setting

Change-Id: If7954a79d86a24d2104b417da49be69b3452e70e
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
2018-10-22 12:13:36 -07:00
Mathieu Desnoyers
9c0be3f6b5 tracepoint: Fix tracepoint array element size mismatch
commit 46e0c9be20 ("kernel: tracepoints: add support for relative
references") changes the layout of the __tracepoint_ptrs section on
architectures supporting relative references. However, it does so
without turning struct tracepoint * const into const int elsewhere in
the tracepoint code, which has the following side-effect:

Setting mod->num_tracepoints is done in by module.c:

    mod->tracepoints_ptrs = section_objs(info, "__tracepoints_ptrs",
                                         sizeof(*mod->tracepoints_ptrs),
                                         &mod->num_tracepoints);

Basically, since sizeof(*mod->tracepoints_ptrs) is a pointer size
(rather than sizeof(int)), num_tracepoints is erroneously set to half the
size it should be on 64-bit arch. So a module with an odd number of
tracepoints misses the last tracepoint due to effect of integer
division.

So in the module going notifier:

        for_each_tracepoint_range(mod->tracepoints_ptrs,
                mod->tracepoints_ptrs + mod->num_tracepoints,
                tp_module_going_check_quiescent, NULL);

the expression (mod->tracepoints_ptrs + mod->num_tracepoints) actually
evaluates to something within the bounds of the array, but miss the
last tracepoint if the number of tracepoints is odd on 64-bit arch.

Fix this by introducing a new typedef: tracepoint_ptr_t, which
is either "const int" on architectures that have PREL32 relocations,
or "struct tracepoint * const" on architectures that does not have
this feature.

Also provide a new tracepoint_ptr_defer() static inline to
encapsulate deferencing this type rather than duplicate code and
ugly idefs within the for_each_tracepoint_range() implementation.

This issue appears in 4.19-rc kernels, and should ideally be fixed
before the end of the rc cycle.

Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Jessica Yu <jeyu@kernel.org>
Link: http://lkml.kernel.org/r/20181013191050.22389-1-mathieu.desnoyers@efficios.com
Link: http://lkml.kernel.org/r/20180704083651.24360-7-ard.biesheuvel@linaro.org
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morris <james.morris@microsoft.com>
Cc: James Morris <jmorris@namei.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Nicolas Pitre <nico@linaro.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Thomas Garnier <thgarnie@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2018-10-17 15:35:29 -04:00
Sami Tolvanen
db226f7ba8 RFC: ANDROID: add support for clang Control Flow Integrity (CFI)
This change adds the CONFIG_CFI_CLANG option, CFI error handling,
and a faster look-up table for cross module CFI checks.

Bug: 67506682
Change-Id: Ic009f0a629b552a0eb16e6d89808c7029e91447d
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
[AmitP: Rebased to newer kernels without clang LTO support]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2018-08-28 17:10:42 +05:30
Masahiro Yamada
996302c5e8 module: replace VMLINUX_SYMBOL_STR() with __stringify() or string literal
With the special case handling for Blackfin and Metag was removed by
commit 94e58e0ac3 ("export.h: remove code for prefixing symbols with
underscore"), VMLINUX_SYMBOL_STR() is now equivalent to __stringify().

Replace the remaining usages to prepare for the entire removal of
VMLINUX_SYMBOL_STR().

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
2018-06-25 11:18:29 +02:00
Yaowei Bai
171d864e75 kernel/module: module_is_live can be boolean
Make module_is_live return bool due to this particular function only using
either one or zero as its return value.

No functional change.

Link: http://lkml.kernel.org/r/1513266622-15860-6-git-send-email-baiyaowei@cmss.chinamobile.com
Signed-off-by: Yaowei Bai <baiyaowei@cmss.chinamobile.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-02-06 18:32:47 -08:00
Linus Torvalds
ab486bc9a5 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
Pull printk updates from Petr Mladek:

 - Add a console_msg_format command line option:

     The value "default" keeps the old "[time stamp] text\n" format. The
     value "syslog" allows to see the syslog-like "<log
     level>[timestamp] text" format.

     This feature was requested by people doing regression tests, for
     example, 0day robot. They want to have both filtered and full logs
     at hands.

 - Reduce the risk of softlockup:

     Pass the console owner in a busy loop.

     This is a new approach to the old problem. It was first proposed by
     Steven Rostedt on Kernel Summit 2017. It marks a context in which
     the console_lock owner calls console drivers and could not sleep.
     On the other side, printk() callers could detect this state and use
     a busy wait instead of a simple console_trylock(). Finally, the
     console_lock owner checks if there is a busy waiter at the end of
     the special context and eventually passes the console_lock to the
     waiter.

     The hand-off works surprisingly well and helps in many situations.
     Well, there is still a possibility of the softlockup, for example,
     when the flood of messages stops and the last owner still has too
     much to flush.

     There is increasing number of people having problems with
     printk-related softlockups. We might eventually need to get better
     solution. Anyway, this looks like a good start and promising
     direction.

 - Do not allow to schedule in console_unlock() called from printk():

     This reverts an older controversial commit. The reschedule helped
     to avoid softlockups. But it also slowed down the console output.
     This patch is obsoleted by the new console waiter logic described
     above. In fact, the reschedule made the hand-off less effective.

 - Deprecate "%pf" and "%pF" format specifier:

     It was needed on ia64, ppc64 and parisc64 to dereference function
     descriptors and show the real function address. It is done
     transparently by "%ps" and "pS" format specifier now.

     Sergey Senozhatsky found that all the function descriptors were in
     a special elf section and could be easily detected.

 - Remove printk_symbol() API:

     It has been obsoleted by "%pS" format specifier, and this change
     helped to remove few continuous lines and a less intuitive old API.

 - Remove redundant memsets:

     Sergey removed unnecessary memset when processing printk.devkmsg
     command line option.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
  printk: drop redundant devkmsg_log_str memsets
  printk: Never set console_may_schedule in console_trylock()
  printk: Hide console waiter logic into helpers
  printk: Add console owner and waiter logic to load balance console writes
  kallsyms: remove print_symbol() function
  checkpatch: add pF/pf deprecation warning
  symbol lookup: introduce dereference_symbol_descriptor()
  parisc64: Add .opd based function descriptor dereference
  powerpc64: Add .opd based function descriptor dereference
  ia64: Add .opd based function descriptor dereference
  sections: split dereference_function_descriptor()
  openrisc: Fix conflicting types for _exext and _stext
  lib: do not use print_symbol()
  irq debug: do not use print_symbol()
  sysfs: do not use print_symbol()
  drivers: do not use print_symbol()
  x86: do not use print_symbol()
  unicore32: do not use print_symbol()
  sh: do not use print_symbol()
  mn10300: do not use print_symbol()
  ...
2018-02-01 13:36:15 -08:00
Linus Torvalds
b2fe5fa686 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller:

 1) Significantly shrink the core networking routing structures. Result
    of http://vger.kernel.org/~davem/seoul2017_netdev_keynote.pdf

 2) Add netdevsim driver for testing various offloads, from Jakub
    Kicinski.

 3) Support cross-chip FDB operations in DSA, from Vivien Didelot.

 4) Add a 2nd listener hash table for TCP, similar to what was done for
    UDP. From Martin KaFai Lau.

 5) Add eBPF based queue selection to tun, from Jason Wang.

 6) Lockless qdisc support, from John Fastabend.

 7) SCTP stream interleave support, from Xin Long.

 8) Smoother TCP receive autotuning, from Eric Dumazet.

 9) Lots of erspan tunneling enhancements, from William Tu.

10) Add true function call support to BPF, from Alexei Starovoitov.

11) Add explicit support for GRO HW offloading, from Michael Chan.

12) Support extack generation in more netlink subsystems. From Alexander
    Aring, Quentin Monnet, and Jakub Kicinski.

13) Add 1000BaseX, flow control, and EEE support to mvneta driver. From
    Russell King.

14) Add flow table abstraction to netfilter, from Pablo Neira Ayuso.

15) Many improvements and simplifications to the NFP driver bpf JIT,
    from Jakub Kicinski.

16) Support for ipv6 non-equal cost multipath routing, from Ido
    Schimmel.

17) Add resource abstration to devlink, from Arkadi Sharshevsky.

18) Packet scheduler classifier shared filter block support, from Jiri
    Pirko.

19) Avoid locking in act_csum, from Davide Caratti.

20) devinet_ioctl() simplifications from Al viro.

21) More TCP bpf improvements from Lawrence Brakmo.

22) Add support for onlink ipv6 route flag, similar to ipv4, from David
    Ahern.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1925 commits)
  tls: Add support for encryption using async offload accelerator
  ip6mr: fix stale iterator
  net/sched: kconfig: Remove blank help texts
  openvswitch: meter: Use 64-bit arithmetic instead of 32-bit
  tcp_nv: fix potential integer overflow in tcpnv_acked
  r8169: fix RTL8168EP take too long to complete driver initialization.
  qmi_wwan: Add support for Quectel EP06
  rtnetlink: enable IFLA_IF_NETNSID for RTM_NEWLINK
  ipmr: Fix ptrdiff_t print formatting
  ibmvnic: Wait for device response when changing MAC
  qlcnic: fix deadlock bug
  tcp: release sk_frag.page in tcp_disconnect
  ipv4: Get the address of interface correctly.
  net_sched: gen_estimator: fix lockdep splat
  net: macb: Handle HRESP error
  net/mlx5e: IPoIB, Fix copy-paste bug in flow steering refactoring
  ipv6: addrconf: break critical section in addrconf_verify_rtnl()
  ipv6: change route cache aging logic
  i40e/i40evf: Update DESC_NEEDED value to reflect larger value
  bnxt_en: cleanup DIM work on device shutdown
  ...
2018-01-31 14:31:10 -08:00
Linus Torvalds
6304672b7f Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86/pti updates from Thomas Gleixner:
 "Another set of melted spectrum related changes:

   - Code simplifications and cleanups for RSB and retpolines.

   - Make the indirect calls in KVM speculation safe.

   - Whitelist CPUs which are known not to speculate from Meltdown and
     prepare for the new CPUID flag which tells the kernel that a CPU is
     not affected.

   - A less rigorous variant of the module retpoline check which merily
     warns when a non-retpoline protected module is loaded and reflects
     that fact in the sysfs file.

   - Prepare for Indirect Branch Prediction Barrier support.

   - Prepare for exposure of the Speculation Control MSRs to guests, so
     guest OSes which depend on those "features" can use them. Includes
     a blacklist of the broken microcodes. The actual exposure of the
     MSRs through KVM is still being worked on"

* 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/speculation: Simplify indirect_branch_prediction_barrier()
  x86/retpoline: Simplify vmexit_fill_RSB()
  x86/cpufeatures: Clean up Spectre v2 related CPUID flags
  x86/cpu/bugs: Make retpoline module warning conditional
  x86/bugs: Drop one "mitigation" from dmesg
  x86/nospec: Fix header guards names
  x86/alternative: Print unadorned pointers
  x86/speculation: Add basic IBPB (Indirect Branch Prediction Barrier) support
  x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes
  x86/pti: Do not enable PTI on CPUs which are not vulnerable to Meltdown
  x86/msr: Add definitions for new speculation control MSRs
  x86/cpufeatures: Add AMD feature bits for Speculation Control
  x86/cpufeatures: Add Intel feature bits for Speculation Control
  x86/cpufeatures: Add CPUID_7_EDX CPUID leaf
  module/retpoline: Warn about missing retpoline in module
  KVM: VMX: Make indirect call speculation safe
  KVM: x86: Make indirect calls in emulator speculation safe
2018-01-29 19:08:02 -08:00
Andi Kleen
caf7501a1b module/retpoline: Warn about missing retpoline in module
There's a risk that a kernel which has full retpoline mitigations becomes
vulnerable when a module gets loaded that hasn't been compiled with the
right compiler or the right option.

To enable detection of that mismatch at module load time, add a module info
string "retpoline" at build time when the module was compiled with
retpoline support. This only covers compiled C source, but assembler source
or prebuilt object files are not checked.

If a retpoline enabled kernel detects a non retpoline protected module at
load time, print a warning and report it in the sysfs vulnerability file.

[ tglx: Massaged changelog ]

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: gregkh@linuxfoundation.org
Cc: torvalds@linux-foundation.org
Cc: jeyu@kernel.org
Cc: arjan@linux.intel.com
Link: https://lkml.kernel.org/r/20180125235028.31211-1-andi@firstfloor.org
2018-01-26 15:03:56 +01:00
Masami Hiramatsu
663faf9f7b error-injection: Add injectable error types
Add injectable error types for each error-injectable function.

One motivation of error injection test is to find software flaws,
mistakes or mis-handlings of expectable errors. If we find such
flaws by the test, that is a program bug, so we need to fix it.

But if the tester miss input the error (e.g. just return success
code without processing anything), it causes unexpected behavior
even if the caller is correctly programmed to handle any errors.
That is not what we want to test by error injection.

To clarify what type of errors the caller must expect for each
injectable function, this introduces injectable error types:

 - EI_ETYPE_NULL : means the function will return NULL if it
		    fails. No ERR_PTR, just a NULL.
 - EI_ETYPE_ERRNO : means the function will return -ERRNO
		    if it fails.
 - EI_ETYPE_ERRNO_NULL : means the function will return -ERRNO
		       (ERR_PTR) or NULL.

ALLOW_ERROR_INJECTION() macro is expanded to get one of
NULL, ERRNO, ERRNO_NULL to record the error type for
each function. e.g.

 ALLOW_ERROR_INJECTION(open_ctree, ERRNO)

This error types are shown in debugfs as below.

  ====
  / # cat /sys/kernel/debug/error_injection/list
  open_ctree [btrfs]	ERRNO
  io_ctl_init [btrfs]	ERRNO
  ====

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2018-01-12 17:33:38 -08:00
Masami Hiramatsu
540adea380 error-injection: Separate error-injection from kprobe
Since error-injection framework is not limited to be used
by kprobes, nor bpf. Other kernel subsystems can use it
freely for checking safeness of error-injection, e.g.
livepatch, ftrace etc.
So this separate error-injection framework from kprobes.

Some differences has been made:

- "kprobe" word is removed from any APIs/structures.
- BPF_ALLOW_ERROR_INJECTION() is renamed to
  ALLOW_ERROR_INJECTION() since it is not limited for BPF too.
- CONFIG_FUNCTION_ERROR_INJECTION is the config item of this
  feature. It is automatically enabled if the arch supports
  error injection feature for kprobe or ftrace etc.

Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2018-01-12 17:33:38 -08:00
Sergey Senozhatsky
b865ea6430 sections: split dereference_function_descriptor()
There are two format specifiers to print out a pointer in symbolic
format: '%pS/%ps' and '%pF/%pf'. On most architectures, the two
mean exactly the same thing, but some architectures (ia64, ppc64,
parisc64) use an indirect pointer for C function pointers, where
the function pointer points to a function descriptor (which in
turn contains the actual pointer to the code). The '%pF/%pf, when
used appropriately, automatically does the appropriate function
descriptor dereference on such architectures.

The "when used appropriately" part is tricky. Basically this is
a subtle ABI detail, specific to some platforms, that made it to
the API level and people can be unaware of it and miss the whole
"we need to dereference the function" business out. [1] proves
that point (note that it fixes only '%pF' and '%pS', there might
be '%pf' and '%ps' cases as well).

It appears that we can handle everything within the affected
arches and make '%pS/%ps' smart enough to retire '%pF/%pf'.
Function descriptors live in .opd elf section and all affected
arches (ia64, ppc64, parisc64) handle it properly for kernel
and modules. So we, technically, can decide if the dereference
is needed by simply looking at the pointer: if it belongs to
.opd section then we need to dereference it.

The kernel and modules have their own .opd sections, obviously,
that's why we need to split dereference_function_descriptor()
and use separate kernel and module dereference arch callbacks.

This patch does the first step, it
a) adds dereference_kernel_function_descriptor() function.
b) adds a weak alias to dereference_module_function_descriptor()
   function.

So, for the time being, we will have:
1) dereference_function_descriptor()
   A generic function, that simply dereferences the pointer. There is
   bunch of places that call it: kgdbts, init/main.c, extable, etc.

2) dereference_kernel_function_descriptor()
   A function to call on kernel symbols that does kernel .opd section
   address range test.

3) dereference_module_function_descriptor()
   A function to call on modules' symbols that does modules' .opd
   section address range test.

[1] https://marc.info/?l=linux-kernel&m=150472969730573

Link: http://lkml.kernel.org/r/20171109234830.5067-2-sergey.senozhatsky@gmail.com
To: Fenghua Yu <fenghua.yu@intel.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Paul Mackerras <paulus@samba.org>
To: Michael Ellerman <mpe@ellerman.id.au>
To: James Bottomley <jejb@parisc-linux.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jessica Yu <jeyu@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-ia64@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Tested-by: Tony Luck <tony.luck@intel.com> #ia64
Tested-by: Santosh Sivaraj <santosh@fossix.org> #powerpc
Tested-by: Helge Deller <deller@gmx.de> #parisc64
Signed-off-by: Petr Mladek <pmladek@suse.com>
2018-01-09 10:45:37 +01:00
Josef Bacik
92ace9991d add infrastructure for tagging functions as error injectable
Using BPF we can override kprob'ed functions and return arbitrary
values.  Obviously this can be a bit unsafe, so make this feature opt-in
for functions.  Simply tag a function with KPROBE_ERROR_INJECT_SYMBOL in
order to give BPF access to that function for error injection purposes.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2017-12-12 08:56:26 -08:00
Bruno E. O. Meneguele
fda784e50a module: export module signature enforcement status
A static variable sig_enforce is used as status var to indicate the real
value of CONFIG_MODULE_SIG_FORCE, once this one is set the var will hold
true, but if the CONFIG is not set the status var will hold whatever
value is present in the module.sig_enforce kernel cmdline param: true
when =1 and false when =0 or not present.

Considering this cmdline param take place over the CONFIG value when
it's not set, other places in the kernel could misbehave since they
would have only the CONFIG_MODULE_SIG_FORCE value to rely on. Exporting
this status var allows the kernel to rely in the effective value of
module signature enforcement, being it from CONFIG value or cmdline
param.

Signed-off-by: Bruno E. O. Meneguele <brdeoliv@redhat.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
2017-11-08 15:16:36 -05:00
Matthias Kaehlcke
0bf8bf50ed module: Remove const attribute from alias for MODULE_DEVICE_TABLE
MODULE_DEVICE_TABLE(type, name) creates an alias of type 'extern const
typeof(name)'. If 'name' is already constant the 'const' attribute is
specified twice, which is not allowed in C89 (see discussion at
https://lkml.org/lkml/2017/5/23/1440). Since the kernel is built with
-std=gnu89 clang generates warnings like this:

drivers/thermal/x86_pkg_temp_thermal.c:509:1: warning: duplicate 'const'
  declaration specifier
      [-Wduplicate-decl-specifier]
MODULE_DEVICE_TABLE(x86cpu, pkg_temp_thermal_ids);
^
./include/linux/module.h:212:8: note: expanded from macro 'MODULE_DEVICE_TABLE'
extern const typeof(name) __mod_##type##__##name##_device_table

Remove the const attribute from the alias to avoid the duplicate
specifier. After all it is only an alias and the attribute shouldn't
have any effect.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
2017-07-29 23:39:23 +02:00
Linus Torvalds
e06fdaf40a Merge tag 'gcc-plugins-v4.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull structure randomization updates from Kees Cook:
 "Now that IPC and other changes have landed, enable manual markings for
  randstruct plugin, including the task_struct.

  This is the rest of what was staged in -next for the gcc-plugins, and
  comes in three patches, largest first:

   - mark "easy" structs with __randomize_layout

   - mark task_struct with an optional anonymous struct to isolate the
     __randomize_layout section

   - mark structs to opt _out_ of automated marking (which will come
     later)

  And, FWIW, this continues to pass allmodconfig (normal and patched to
  enable gcc-plugins) builds of x86_64, i386, arm64, arm, powerpc, and
  s390 for me"

* tag 'gcc-plugins-v4.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  randstruct: opt-out externally exposed function pointer structs
  task_struct: Allow randomized layout
  randstruct: Mark various structs for randomization
2017-07-19 08:55:18 -07:00
Kees Cook
3859a271a0 randstruct: Mark various structs for randomization
This marks many critical kernel structures for randomization. These are
structures that have been targeted in the past in security exploits, or
contain functions pointers, pointers to function pointer tables, lists,
workqueues, ref-counters, credentials, permissions, or are otherwise
sensitive. This initial list was extracted from Brad Spengler/PaX Team's
code in the last public patch of grsecurity/PaX based on my understanding
of the code. Changes or omissions from the original code are mine and
don't reflect the original grsecurity/PaX code.

Left out of this list is task_struct, which requires special handling
and will be covered in a subsequent patch.

Signed-off-by: Kees Cook <keescook@chromium.org>
2017-06-30 12:00:51 -07:00
Jeremy Linton
99be647c58 trace: rename struct module entry for trace enums
Each module has a list of enum's its contributing to the
enum map, rename that entry to reflect its use by more than
enums.

Link: http://lkml.kernel.org/r/20170531215653.3240-4-jeremy.linton@arm.com

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2017-06-13 17:09:31 -04:00
Jeremy Linton
00f4b652b6 trace: rename trace_enum_map to trace_eval_map
Each enum is loaded into the trace_enum_map, as we
are now using this for more than enums rename it.

Link: http://lkml.kernel.org/r/20170531215653.3240-3-jeremy.linton@arm.com

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2017-06-13 17:08:57 -04:00
Linus Torvalds
a1be8edda4 Merge tag 'modules-for-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux
Pull modules updates from Jessica Yu:

 - Minor code cleanups

 - Fix section alignment for .init_array

* tag 'modules-for-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
  kallsyms: Use bounded strnchr() when parsing string
  module: Unify the return value type of try_module_get
  module: set .init_array alignment to 8
2017-05-03 19:12:27 -07:00
Gao Feng
8ba4fcdf0f module: Unify the return value type of try_module_get
The prototypes of try_module_get are different with different macro.
When enable module and module unload, it returns bool, but others not.
Make the return type for try_module_get consistent across all module
config options.

Signed-off-by: Gao Feng <fgao@ikuai8.com>
[jeyu: slightly amended changelog to make it clearer]
Signed-off-by: Jessica Yu <jeyu@redhat.com>
2017-04-23 21:13:01 -07:00
Thomas Gleixner
383776fa75 locking/lockdep: Handle statically initialized PER_CPU locks properly
If a PER_CPU struct which contains a spin_lock is statically initialized
via:

DEFINE_PER_CPU(struct foo, bla) = {
	.lock = __SPIN_LOCK_UNLOCKED(bla.lock)
};

then lockdep assigns a seperate key to each lock because the logic for
assigning a key to statically initialized locks is to use the address as
the key. With per CPU locks the address is obvioulsy different on each CPU.

That's wrong, because all locks should have the same key.

To solve this the following modifications are required:

 1) Extend the is_kernel/module_percpu_addr() functions to hand back the
    canonical address of the per CPU address, i.e. the per CPU address
    minus the per CPU offset.

 2) Check the lock address with these functions and if the per CPU check
    matches use the returned canonical address as the lock key, so all per
    CPU locks have the same key.

 3) Move the static_obj(key) check into look_up_lock_class() so this check
    can be avoided for statically initialized per CPU locks.  That's
    required because the canonical address fails the static_obj(key) check
    for obvious reasons.

Reported-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[ Merged Dan's fixups for !MODULES and !SMP into this patch. ]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dan Murphy <dmurphy@ti.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20170227143736.pectaimkjkan5kow@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-03-16 09:57:08 +01:00
Linus Torvalds
6ef192f225 Merge tag 'modules-for-v4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux
Pull modules updates from Jessica Yu:
 "Summary of modules changes for the 4.11 merge window:

   - A few small code cleanups

   - Add modules git tree url to MAINTAINERS"

* tag 'modules-for-v4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
  MAINTAINERS: add tree for modules
  module: fix memory leak on early load_module() failures
  module: Optimize search_module_extables()
  modules: mark __inittest/__exittest as __maybe_unused
  livepatch/module: print notice of TAINT_LIVEPATCH
  module: Drop redundant declaration of struct module
2017-02-22 17:08:33 -08:00
Linus Torvalds
7bb033829e Merge tag 'rodata-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull rodata updates from Kees Cook:
 "This renames the (now inaccurate) DEBUG_RODATA and related
  SET_MODULE_RONX configs to the more sensible STRICT_KERNEL_RWX and
  STRICT_MODULE_RWX"

* tag 'rodata-v4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  arch: Rename CONFIG_DEBUG_RODATA and CONFIG_DEBUG_MODULE_RONX
  arch: Move CONFIG_DEBUG_RODATA and CONFIG_SET_MODULE_RONX to be common
2017-02-21 17:56:45 -08:00