12 Commits

Author SHA1 Message Date
Wilson Sung
ffdcfa9ebe Merge android-4.14-stable (4.14.257) into android-msm-pixel-4.14-lts
Merge 4.14.257 into android-4.14-stable
Linux 4.14.257
    parisc: Mark cr16 CPU clocksource unstable on all SMP machines
  * serial: core: fix transmit-buffer reset and memleak
      drivers/tty/serial/serial_core.c
    serial: pl011: Add ACPI SBSA UART match id
    tty: serial: msm_serial: Deactivate RX DMA for polling support
    x86/64/mm: Map all kernel memory into trampoline_pgd
    usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
  * xhci: Fix commad ring abort, write all 64 bits to CRCR register.
      drivers/usb/host/xhci-ring.c
    vgacon: Propagate console boot parameters before calling `vc_resize'
    parisc: Fix "make install" on newer debian releases
    parisc: Fix KBUILD_IMAGE for self-extracting kernel
    net/smc: Keep smc_close_final rc during active close
    net/rds: correct socket tunable error in rds_tcp_tune()
    net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ is available
    net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
  * siphash: use _unaligned version by default
      include/linux/siphash.h
      lib/siphash.c
    net: mpls: Fix notifications when deleting a device
    net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings()
    natsemi: xtensa: fix section mismatch warnings
  * fget: check that the fd still exists after getting a ref to it
      fs/file.c
  * fs: add fget_many() and fput_many()
      fs/file.c
      fs/file_table.c
      include/linux/file.h
      include/linux/fs.h
    sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
    sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
  * kprobes: Limit max data_size of the kretprobe instances
      include/linux/kprobes.h
    vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
    perf hist: Fix memory leak of a perf_hpp_fmt
    net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock()
    net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
    ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port()
    scsi: iscsi: Unblock session then wake up error handler
  * thermal: core: Reset previous low and high trip during thermal zone init
      drivers/thermal/thermal_core.c
    btrfs: check-integrity: fix a warning on write caching disabled disk
    s390/setup: avoid using memblock_enforce_memory_limit
    platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
  * net: return correct error code
      net/ipv4/devinet.c
    hugetlb: take PMD sharing into account when flushing tlb/caches
    NFSv42: Fix pagecache invalidation after COPY/CLONE
    ipc: WARN if trying to remove ipc object which is absent
  * shm: extend forced shm destroy to support objects from several IPC nses
      include/linux/ipc_namespace.h
      include/linux/sched/task.h
      include/linux/shm.h
    tty: hvc: replace BUG_ON() with negative return value
    xen/netfront: don't trust the backend response data blindly
    xen/netfront: disentangle tx_skb_freelist
    xen/netfront: don't read data from request on the ring page
    xen/netfront: read response from backend only once
    xen/blkfront: don't trust the backend response data blindly
    xen/blkfront: don't take local copy of a request from the ring page
    xen/blkfront: read response from backend only once
    xen: sync include/xen/interface/io/ring.h with Xen's newest version
  * fuse: release pipe buf after last use
      fs/fuse/dev.c
    NFC: add NCI_UNREG flag to eliminate the race
    proc/vmcore: fix clearing user buffer by properly using clear_user()
  * hugetlbfs: flush TLBs correctly after huge_pmd_unshare
      include/asm-generic/tlb.h
      mm/memory.c
    arm64: dts: marvell: armada-37xx: Set pcie_reset_pin to gpio function
    arm64: dts: marvell: armada-37xx: declare PCIe reset pin
    pinctrl: armada-37xx: Correct PWM pins definitions
    pinctrl: armada-37xx: add missing pin: PCIe1 Wakeup
    pinctrl: armada-37xx: Correct mpp definitions
    PCI: aardvark: Fix checking for link up via LTSSM state
    PCI: aardvark: Fix link training
  * PCI: Add PCI_EXP_LNKCTL2_TLS* macros
      include/uapi/linux/pci_regs.h
    PCI: aardvark: Fix PCIe Max Payload Size setting
    PCI: aardvark: Configure PCIe resources from 'ranges' DT property
    PCI: aardvark: Remove PCIe outbound window configuration
    PCI: aardvark: Update comment about disabling link training
    PCI: aardvark: Move PCIe reset card code to advk_pcie_train_link()
    PCI: aardvark: Fix compilation on s390
    PCI: aardvark: Don't touch PCIe registers if no card connected
    PCI: aardvark: Introduce an advk_pcie_valid_device() helper
    PCI: aardvark: Indicate error in 'val' when config read fails
    PCI: aardvark: Replace custom macros by standard linux/pci_regs.h macros
    PCI: aardvark: Issue PERST via GPIO
    PCI: aardvark: Improve link training
    PCI: aardvark: Train link immediately after enabling training
    PCI: aardvark: Wait for endpoint to be ready before training link
    PCI: aardvark: Fix a leaked reference by adding missing of_node_put()
    PCI: aardvark: Fix I/O space page leak
    s390/mm: validate VMA in PGSTE manipulation functions
  * tracing: Check pid filtering when creating events
      kernel/trace/trace_events.c
    vhost/vsock: fix incorrect used length reported to the guest
    net/smc: Don't call clcsock shutdown twice when smc shutdown
    MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48
  * tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows
      net/ipv4/tcp_cubic.c
    PM: hibernate: use correct mode for swsusp_close()
    net/smc: Ensure the active closing peer first closes clcsock
  * ipv6: fix typos in __ip6_finish_output()
      net/ipv6/ip6_output.c
    drm/vc4: fix error code in vc4_create_object()
    scsi: mpt3sas: Fix kernel panic during drive powercycle test
    ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
    NFSv42: Don't fail clone() unless the OP_CLONE operation failed
  * net: ieee802154: handle iftypes as u32
      include/net/nl802154.h
    ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
    ARM: dts: BCM5301X: Add interrupt properties to GPIO node
    ARM: dts: BCM5301X: Fix I2C controller interrupt
    netfilter: ipvs: Fix reuse connection if RS weight is 0
  * tracing: Fix pid filtering when triggers are attached
      kernel/trace/trace.h
    xen: detect uninitialized xenbus in xenbus_init
    xen: don't continue xenstore initialization in case of errors
  * fuse: fix page stealing
      fs/fuse/dev.c
    staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
    HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
    media: cec: copy sequence field for the reply
    ALSA: ctxfi: Fix out-of-range access
  * binder: fix test regression due to sender_euid change
      drivers/android/binder.c
  * usb: hub: Fix locking issues with address0_mutex
      drivers/usb/core/hub.c
  * usb: hub: Fix usb enumeration issue due to address0 race
      drivers/usb/core/hub.c
    USB: serial: option: add Fibocom FM101-GL variants
    USB: serial: option: add Telit LE910S1 0x9200 composition
    Merge 4.14.256 into android-4.14-stable
Linux 4.14.256
    soc/tegra: pmc: Fix imbalanced clock disabling in error code path
    usb: max-3421: Use driver data instead of maintaining a list of bound devices
  * ASoC: DAPM: Cover regression by kctl change notification fix
      sound/soc/soc-dapm.c
    RDMA/netlink: Add __maybe_unused to static inline in C file
    batman-adv: Don't always reallocate the fragmentation skb head
    batman-adv: Reserve needed_*room for fragments
    batman-adv: Consider fragmentation for needed_headroom
    batman-adv: mcast: fix duplicate mcast packets from BLA backbone to mesh
    batman-adv: mcast: fix duplicate mcast packets in BLA backbone from LAN
  * perf/core: Avoid put_page() when GUP fails
      kernel/events/core.c
    drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors
    drm/udl: fix control-message timeout
  * cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
      net/wireless/util.c
    parisc/sticon: fix reverse colors
    btrfs: fix memory ordering between normal and ordered work functions
  * mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
      mm/slab.h
    hexagon: export raw I/O routines for modules
  * tun: fix bonding active backup with arp monitoring
      drivers/net/tun.c
    perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
    perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
    NFC: reorder the logic in nfc_{un,}register_device
    NFC: reorganize the functions in nci_request
    i40e: Fix NULL ptr dereference on VSI filter sync
  * net: virtio_net_hdr_to_skb: count transport header in UFO
      include/linux/virtio_net.h
    platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
    mips: lantiq: add support for clk_get_parent()
    mips: bcm63xx: add support for clk_get_parent()
    MIPS: generic/yamon-dt: fix uninitialized variable error
    iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
    net: bnx2x: fix variable dereferenced before check
  * sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
      kernel/sched/core.c
    mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
    sh: define __BIG_ENDIAN for math-emu
    sh: fix kconfig unmet dependency warning for FRAME_POINTER
    maple: fix wrong return value of maple_bus_init().
    sh: check return code of request_irq
    powerpc/dcr: Use cmplwi instead of 3-argument cmpli
    ALSA: gus: fix null pointer dereference on pointer block
    powerpc/5200: dts: fix memory node unit name
    scsi: target: Fix alua_tg_pt_gps_count tracking
    scsi: target: Fix ordered tag handling
    MIPS: sni: Fix the build
  * tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
      drivers/tty/tty_buffer.c
    usb: host: ohci-tmio: check return value after calling platform_get_resource()
    ARM: dts: omap: fix gpmc,mux-add-data type
    scsi: advansys: Fix kernel pointer leak
    usb: musb: tusb6010: check return value after calling platform_get_resource()
    scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
    arm64: zynqmp: Fix serial compatible string
  * PCI/MSI: Destroy sysfs before freeing entries
      drivers/pci/msi.c
    parisc/entry: fix trace test in syscall exit path
  * tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT
      kernel/trace/trace.c
  * ext4: fix lazy initialization next schedule time computation in more granular unit
      fs/ext4/super.c
  * PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
      include/uapi/linux/pci_regs.h
    s390/cio: check the subchannel validity for dev_busid
  * mm, oom: do not trigger out_of_memory from the #PF
      mm/oom_kill.c
  * mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
      mm/oom_kill.c
    powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
    powerpc/bpf: Validate branch ranges
    powerpc/lib: Add helper to check if offset is within conditional branch range
    ARM: 9156/1: drop cc-option fallbacks for architecture selection
    ARM: 9155/1: fix early early_iounmap()
    USB: chipidea: fix interrupt deadlock
    vsock: prevent unnecessary refcnt inc for nonblocking connect
    nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
  * llc: fix out-of-bound array index in llc_sk_dev_hash()
      include/net/llc.h
  * mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
      mm/zsmalloc.c
  * bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
      drivers/net/bonding/bond_sysfs_slave.c
    ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
    net: davinci_emac: Fix interrupt pacing disable
    xen-pciback: Fix return in pm_ctrl_init()
    i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
    scsi: qla2xxx: Turn off target reset during issue_lip
  * ar7: fix kernel builds for compiler test
      drivers/watchdog/Kconfig
    watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
    m68k: set a default value for MEMORY_RESERVE
  * dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
      drivers/dma/dmaengine.h
  * netfilter: nfnetlink_queue: fix OOB when mac header was cleared
      net/netfilter/nfnetlink_queue.c
    auxdisplay: ht16k33: Fix frame buffer device blanking
    auxdisplay: ht16k33: Connect backlight to fbdev
    auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
    dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
    mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
    fs: orangefs: fix error return code of orangefs_revalidate_lookup()
    NFS: Fix deadlocks in nfs_scan_commit_list()
    PCI: aardvark: Don't spam about PIO Response Status
  * drm/plane-helper: fix uninitialized variable reference
      drivers/gpu/drm/drm_plane_helper.c
    pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
  * rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
      include/linux/rpmsg.h
    apparmor: fix error check
    power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
    mips: cm: Convert to bitfield API to fix out-of-bounds access
    serial: xilinx_uartps: Fix race condition causing stuck TX
    ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
    ASoC: cs42l42: Correct some register default values
    RDMA/mlx4: Return missed an error if device doesn't support steering
    scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
    power: supply: rt5033_battery: Change voltage values to µV
    usb: gadget: hid: fix error code in do_config()
    serial: 8250_dw: Drop wrong use of ACPI_PTR()
    video: fbdev: chipsfb: use memset_io() instead of memset()
    memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
    soc/tegra: Fix an error handling path in tegra_powergate_power_up()
    arm: dts: omap3-gta04a4: accelerometer irq fix
    ALSA: hda: Reduce udelay() at SKL+ position reporting
    JFS: fix memleak in jfs_mount
    MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
    scsi: dc395: Fix error case unwinding
    ARM: dts: at91: tse850: the emac<->phy interface is rmii
    ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
    RDMA/rxe: Fix wrong port_cap_flags
    ibmvnic: Process crqs after enabling interrupts
    crypto: pcrypt - Delay write to padata->info
    net: phylink: avoid mvneta warning when setting pause parameters
    net: amd-xgbe: Toggle PLL settings during rate change
    libertas: Fix possible memory leak in probe and disconnect
    libertas_tf: Fix possible memory leak in probe and disconnect
    samples/kretprobes: Fix return value if register_kretprobe() failed
    irq: mips: avoid nested irq_enter()
    s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
    smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
    PM: hibernate: fix sparse warnings
  * phy: micrel: ksz8041nl: do not use power down mode
      drivers/net/phy/micrel.c
    mwifiex: Send DELBA requests according to spec
    platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
    mmc: mxs-mmc: disable regulator on error and in the remove function
  * net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
      net/core/stream.c
  * drm/msm: uninitialized variable in msm_gem_import()
      drivers/gpu/drm/msm/msm_gem.c
    ath10k: fix max antenna gain unit
  * hwmon: Fix possible memleak in __hwmon_device_register()
      drivers/hwmon/hwmon.c
    memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
    memstick: avoid out-of-range warning
    b43: fix a lower bounds test
    b43legacy: fix a lower bounds test
    hwrng: mtk - Force runtime pm ops for sleep ops
    crypto: qat - disregard spurious PFVF interrupts
    crypto: qat - detect PFVF collision after ACK
    ath9k: Fix potential interrupt storm on queue reset
  * cpuidle: Fix kobject memory leaks in error paths
      drivers/cpuidle/sysfs.c
    media: cx23885: Fix snd_card_free call on null card pointer
    media: si470x: Avoid card name truncation
    media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
    media: dvb-usb: fix ununit-value in az6027_rc_query
  * cgroup: Make rebind_subsystems() disable v2 controllers all at once
      kernel/cgroup/cgroup.c
    parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
  * task_stack: Fix end_of_stack() for architectures with upwards-growing stack
      include/linux/sched/task_stack.h
    parisc: fix warning in flush_tlb_all
    spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
    ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
  * gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
      net/ipv6/addrconf.c
    ARM: clang: Do not rely on lr register for stacktrace
    smackfs: use __GFP_NOFAIL for smk_cipso_doi()
    iwlwifi: mvm: disable RX-diversity in powersave
    PM: hibernate: Get block device exclusively in swsusp_check()
    mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
    tracing/cfi: Fix cmp_entries_* functions signature mismatch
  * lib/xz: Validate the value before assigning it to an enum variable
      lib/xz/xz_dec_stream.c
  * lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
      lib/xz/xz_dec_lzma2.c
    memstick: r592: Fix a UAF bug when removing the driver
    leaking_addresses: Always print a trailing newline
    ACPI: battery: Accept charges over the design capacity as full
    ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
  * tracefs: Have tracefs directories not set OTH permission bits by default
      fs/tracefs/inode.c
    media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
    ACPICA: Avoid evaluating methods too early during system resume
    ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
    media: mceusb: return without resubmitting URB in case of -EPROTO error.
    media: s5p-mfc: Add checking to s5p_mfc_probe().
    media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
  * media: uvcvideo: Set capability in s_param
      drivers/media/usb/uvc/uvc_v4l2.c
    media: netup_unidvb: handle interrupt properly according to the firmware
    media: mt9p031: Fix corrupted frame after restarting stream
    mwifiex: Properly initialize private structure on interface type changes
    mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
    x86: Increase exception stack sizes
    smackfs: Fix use-after-free in netlbl_catmap_walk()
    locking/lockdep: Avoid RCU-induced noinstr fail
    MIPS: lantiq: dma: reset correct number of channel
    MIPS: lantiq: dma: add small delay after reset
    platform/x86: wmi: do not fail if disabling fails
  * Bluetooth: fix use-after-free error in lock_sock_nested()
      net/bluetooth/l2cap_sock.c
  * Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
      net/bluetooth/sco.c
    USB: iowarrior: fix control-message timeouts
    USB: serial: keyspan: fix memleak on probe errors
    iio: dac: ad5446: Fix ad5622_write() return value
  * pinctrl: core: fix possible memory leak in pinctrl_enable()
      drivers/pinctrl/core.c
  * quota: correct error number in free_dqentry()
      fs/quota/quota_tree.c
  * quota: check block number when reading the block in quota file
      fs/quota/quota_tree.c
    PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
    PCI: aardvark: Fix return value of MSI domain .alloc() method
    PCI: aardvark: Do not unmask unused interrupts
    PCI: aardvark: Do not clear status bits of masked interrupts
    xen/balloon: add late_initcall_sync() for initial ballooning done
    ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
    ALSA: mixer: oss: Fix racy access to slots
  * serial: core: Fix initializing and restoring termios speed
      drivers/tty/serial/serial_core.c
      include/linux/console.h
    powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
    power: supply: max17042_battery: use VFSOC for capacity when no rsns
    power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
    signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
  * signal: Remove the bogus sigkill_pending in ptrace_stop
      kernel/signal.c
    RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
    wcn36xx: handle connection loss indication
    libata: fix checking of DMA state
    mwifiex: Read a PCI register after writing the TX ring write pointer
    wcn36xx: Fix HT40 capability for 2Ghz band
    evm: mark evm_fixmode as __ro_after_init
    rtl8187: fix control-message timeouts
  * PCI: Mark Atheros QCA6174 to avoid bus reset
      drivers/pci/quirks.c
    ath10k: fix division by zero in send path
    ath10k: fix control-message timeout
    ath6kl: fix control-message timeout
    ath6kl: fix division by zero in send path
    mwifiex: fix division by zero in fw download path
    EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
    regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
    regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
    hwmon: (pmbus/lm25066) Add offset coefficients
    btrfs: fix lost error handling when replaying directory deletes
    vmxnet3: do not stop tx queues after netif_device_detach()
    watchdog: Fix OMAP watchdog early handling
    spi: spl022: fix Microwire full duplex mode
    xen/netfront: stop tx queues during live migration
  * bpf: Prevent increasing bpf_jit_limit above max
      include/linux/filter.h
      kernel/bpf/core.c
      net/core/sysctl_net_core.c
  * mmc: winbond: don't build on M68K
      drivers/mmc/host/Kconfig
    hyperv/vmbus: include linux/bitops.h
    sfc: Don't use netif_info before net_device setup
    cavium: Fix return values of the probe function
    scsi: qla2xxx: Fix unmap of already freed sgl
    cavium: Return negative value when pci_alloc_irq_vectors() fails
    x86/irq: Ensure PI wakeup handler is unregistered before module unload
  * ALSA: timer: Unconditionally unlink slave instances, too
      sound/core/timer.c
  * ALSA: timer: Fix use-after-free problem
      sound/core/timer.c
    ALSA: synth: missing check for possible NULL after the call to kstrdup
    ALSA: line6: fix control and interrupt message timeouts
    ALSA: 6fire: fix control and bulk message timeouts
    ALSA: ua101: fix division by zero at probe
    media: ite-cir: IR receiver stop working after receive overflow
    tpm: Check for integer overflow in tpm2_map_response_body()
    parisc: Fix ptrace check on syscall return
    mmc: dw_mmc: Dont wait for DRTO on Write RSP error
    ocfs2: fix data corruption on truncate
    libata: fix read log timeout value
    Input: i8042 - Add quirk for Fujitsu Lifebook T725
    Input: elantench - fix misreporting trackpoint coordinates
  * binder: use cred instead of task for selinux checks
      drivers/android/binder.c
      include/linux/lsm_hooks.h
      include/linux/security.h
      security/security.c
      security/selinux/hooks.c
  * binder: use euid from cred instead of using task
      drivers/android/binder.c
  * xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
      drivers/usb/host/xhci-hub.c
  * ANDROID: usb: gadget: f_accessory: Mitgate handling of non-existent USB request
      drivers/usb/gadget/function/f_accessory.c
  * ANDROID: arm64: process: Match upstream formatting when dumping memory areas
      arch/arm64/kernel/process.c
  * FROMGIT: binder: fix test regression due to sender_euid change
      drivers/android/binder.c
  * BACKPORT: binder: use cred instead of task for selinux checks
      drivers/android/binder.c
      include/linux/lsm_hooks.h
      include/linux/security.h
      security/security.c
      security/selinux/hooks.c
  * UPSTREAM: binder: use euid from cred instead of using task
      drivers/android/binder.c
    Merge 4.14.255 into android-4.14-stable
Linux 4.14.255
    rsi: fix control-message timeout
    staging: rtl8192u: fix control-message timeouts
    staging: r8712u: fix control-message timeout
    comedi: vmk80xx: fix bulk and interrupt message timeouts
    comedi: vmk80xx: fix bulk-buffer overflow
    comedi: vmk80xx: fix transfer-buffer overflows
    comedi: ni_usb6501: fix NULL-deref in command paths
    comedi: dt9812: fix DMA buffers on stack
    isofs: Fix out of bound access for corrupted isofs image
  * printk/console: Allow to disable console output by using console="" or console=null
      kernel/printk/printk.c
  * usb-storage: Add compatibility quirk flags for iODD 2531/2541
      drivers/usb/storage/unusual_devs.h
    usb: musb: Balance list entry in musb_gadget_queue
  * usb: gadget: Mark USB_FSL_QE broken on 64-bit
      drivers/usb/gadget/udc/Kconfig
    Revert "x86/kvm: fix vcpu-id indexed array sizes"
  * block: introduce multi-page bvec helpers
      include/linux/bvec.h
    IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
    IB/qib: Use struct_size() helper
  * ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
      drivers/amba/bus.c
  * arch: pgtable: define MAX_POSSIBLE_PHYSMEM_BITS where needed
      include/asm-generic/pgtable.h
  * mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS
      mm/zsmalloc.c
    media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
  * scsi: core: Put LLD module refcnt after SCSI device is released
      drivers/scsi/scsi.c
      drivers/scsi/scsi_sysfs.c
  * UPSTREAM: security: selinux: allow per-file labeling for bpffs
      security/selinux/hooks.c

Bug: 210364486
Signed-off-by: JohnnLee <johnnlee@google.com>
Change-Id: I34320a77ca45e0f7d383820ce6b779c682200455
2022-01-04 06:14:00 +00:00
Ming Lei
783336f916 block: introduce multi-page bvec helpers
commit 3d75ca0adef4280650c6690a0c4702a74a6f3c95 upstream.

This patch introduces helpers of 'mp_bvec_iter_*' for multi-page bvec
support.

The introduced helpers treate one bvec as real multi-page segment,
which may include more than one pages.

The existed helpers of bvec_iter_* are interfaces for supporting current
bvec iterator which is thought as single-page by drivers, fs, dm and
etc. These introduced helpers will build single-page bvec in flight, so
this way won't break current bio/bvec users, which needn't any change.

Follows some multi-page bvec background:

- bvecs stored in bio->bi_io_vec is always multi-page style

- bvec(struct bio_vec) represents one physically contiguous I/O
  buffer, now the buffer may include more than one page after
  multi-page bvec is supported, and all these pages represented
  by one bvec is physically contiguous. Before multi-page bvec
  support, at most one page is included in one bvec, we call it
  single-page bvec.

- .bv_page of the bvec points to the 1st page in the multi-page bvec

- .bv_offset of the bvec is the offset of the buffer in the bvec

The effect on the current drivers/filesystem/dm/bcache/...:

- almost everyone supposes that one bvec only includes one single
  page, so we keep the sp interface not changed, for example,
  bio_for_each_segment() still returns single-page bvec

- bio_for_each_segment_all() will return single-page bvec too

- during iterating, iterator variable(struct bvec_iter) is always
  updated in multi-page bvec style, and bvec_iter_advance() is kept
  not changed

- returned(copied) single-page bvec is built in flight by bvec
  helpers from the stored multi-page bvec

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Cc: Zubin Mithra <zsm@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-12 14:28:23 +01:00
lucaswei
12fe94ef98 Merge android-4.14-q (4.14.199) into android-msm-pixel-4.14-lts
Merge 4.14.199 into android-4.14-q
Linux 4.14.199
    x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y
    powerpc/dma: Fix dma_map_ops::get_required_mask
  * ehci-hcd: Move include to keep CRC stable
      drivers/usb/host/ehci-hcd.c
      drivers/usb/host/ehci-hub.c
    serial: 8250_pci: Add Realtek 816a and 816b
    Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
    Input: trackpoint - add new trackpoint variant IDs
  * percpu: fix first chunk size calculation for populated bitmap
      mm/percpu.c
    i2c: i801: Fix resume bug
    usblp: fix race between disconnect() and read()
    USB: UAS: fix disconnect by unplugging a hub
  * USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin notebook
      drivers/usb/core/quirks.c
    drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
    drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail
    MIPS: SNI: Fix spurious interrupts
    fbcon: Fix user font detection test at fbcon_resize().
    perf test: Free formats for perf pmu parse test
    MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
    Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
    clk: rockchip: Fix initialization of mux_pll_src_4plls_p
  * KVM: MIPS: Change the definition of kvm type
      include/uapi/linux/kvm.h
  * spi: Fix memory leak on splited transfers
      drivers/spi/spi.c
  * i2c: algo: pca: Reapply i2c bus settings after reset
      include/linux/i2c-algo-pca.h
  * f2fs: fix indefinite loop scanning for free nid
      fs/f2fs/node.c
    nvme-fc: cancel async events before freeing event struct
    rapidio: Replace 'select' DMAENGINES 'with depends on'
    SUNRPC: stop printk reading past end of string
    spi: spi-loopback-test: Fix out-of-bounds read
    scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
    scsi: libfc: Fix for double free()
    scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
    NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
    hv_netvsc: Remove "unlikely" from netvsc_select_queue
  * net: handle the return value of pskb_carve_frag_list() correctly
      net/core/skbuff.c
    gfs2: initialize transaction tr_ailX_lists earlier
  * gcov: add support for GCC 10.1
      kernel/gcov/Kconfig
    usb: typec: ucsi: acpi: Check the _DEP dependencies
  * usb: Fix out of sync data toggle if a configured device is reconfigured
      drivers/usb/core/message.c
    USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
    USB: serial: option: support dynamic Quectel USB compositions
    USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
  * usb: core: fix slab-out-of-bounds Read in read_descriptors
      drivers/usb/core/sysfs.c
    staging: greybus: audio: fix uninitialized value issue
    video: fbdev: fix OOB read in vga_8planes_imageblit()
    ARM: dts: vfxxx: Add syscon compatible with OCOTP
    KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
  * vgacon: remove software scrollback support
      drivers/video/console/Kconfig
    fbcon: remove now unusued 'softback_lines' cursor() argument
    fbcon: remove soft scrollback code
    RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
    rbd: require global CAP_SYS_ADMIN for mapping and unmapping
    scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem
    scsi: target: iscsi: Fix data digest calculation
  * regulator: push allocation in set_consumer_device_supply() out of lock
      drivers/regulator/core.c
    btrfs: fix wrong address when faulting in pages in the search ioctl
    btrfs: fix lockdep splat in add_missing_dev
    btrfs: require only sector size alignment for parent eb bytenr
    staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
    iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
    iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
    iio: accel: kxsd9: Fix alignment of local buffer.
    iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
    iio:light:max44000 Fix timestamp alignment and prevent data leak.
    iio:magnetometer:ak8975 Fix alignment and data leak issues.
    iio:adc:ti-adc081c Fix alignment and data leak issues
    iio:adc:max1118 Fix alignment of timestamp and data leak issues
    iio:adc:ina2xx Fix timestamp alignment issue.
    iio:adc:ti-adc084s021 Fix alignment and data leak issues.
    iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
    iio:light:ltr501 Fix timestamp alignment issue.
    iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
    iio: adc: mcp3422: fix locking on error path
    iio: adc: mcp3422: fix locking scope
  * gcov: Disable gcov build with GCC 10
      kernel/gcov/Kconfig
    ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
    cpufreq: intel_pstate: Refuse to turn off with HWP enabled
    ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
    drivers/net/wan/hdlc_cisco: Add hard_header_len
  * irqchip/eznps: Fix build error for !ARC700 builds
      arch/arc/plat-eznps/include/plat/ctop.h
      include/soc/nps/common.h
    xfs: initialize the shortform attr header padding entry
    drivers/net/wan/lapbether: Set network_header before transmitting
    ALSA: hda: Fix 2 channel swapping for Tegra
    firestream: Fix memleak in fs_open
    NFC: st95hf: Fix memleak in st95hf_in_send_cmd
    drivers/net/wan/lapbether: Added needed_tailroom
    dmaengine: acpi: Put the CSRT table after using it
    ARC: HSDK: wireup perf irq
    arm64: dts: ns2: Fixed QSPI compatible string
    ARM: dts: BCM5301X: Fixed QSPI compatible string
    mmc: sdhci-msm: Add retries when all tuning phases are found valid
    RDMA/core: Fix reported speed and width
    scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
    RDMA/rxe: Drop pointless checks in rxe_init_ports
    RDMA/rxe: Fix memleak in rxe_mem_init_user
    ARM: dts: socfpga: fix register entry for timer3 on Arria10
  * ANDROID: Fix mismerge of f2fs into android-4.14-q
      fs/f2fs/super.c
    Merge 4.14.198 into android-4.14-q
Linux 4.14.198
  * net: disable netpoll on fresh napis
      net/core/dev.c
    tipc: fix shutdown() of connectionless socket
  * sctp: not disable bh in the whole sctp_get_port_local()
      net/sctp/socket.c
    net: usb: dm9601: Add USB ID of Keenetic Plus DSL
  * netlabel: fix problems with mapping removal
      net/netlabel/netlabel_domainhash.c
    bnxt: don't enable NAPI until rings are ready
    vfio/pci: Fix SR-IOV VF handling with MMIO blocking
    vfio-pci: Invalidate mmaps and block MMIO access on disabled memory
    vfio-pci: Fault mmaps to enable vma tracking
    vfio/type1: Support faulting PFNMAP vmas
  * block: ensure bdi->io_pages is always initialized
      block/blk-core.c
    ALSA; firewire-tascam: exclude Tascam FE-8 from detection
    Merge 4.14.197 into android-4.14-q
Linux 4.14.197
  * net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
      drivers/net/usb/asix_common.c
  * cfg80211: regulatory: reject invalid hints
      net/wireless/reg.c
    mm/hugetlb: fix a race between hugetlb sysctl handlers
    checkpatch: fix the usage of capture group ( ... )
  * KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception
      arch/arm64/include/asm/kvm_arm.h
  * KVM: arm64: Survive synchronous exceptions caused by AT instructions
      arch/arm64/include/asm/kvm_asm.h
    KVM: arm64: Defer guest entry when an asynchronous exception is pending
  * KVM: arm64: Add kvm_extable for vaxorcism code
      arch/arm64/include/asm/kvm_asm.h
      arch/arm64/kernel/vmlinux.lds.S
  * mm: slub: fix conversion of freelist_corrupted()
      mm/slub.c
    dm thin metadata: Avoid returning cmd->bm wild pointer on error
    dm cache metadata: Avoid returning cmd->bm wild pointer on error
  * libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
      include/linux/libata.h
  * block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>
      drivers/block/brd.c
      drivers/block/zram/zram_drv.h
      include/linux/blkdev.h
      include/linux/device-mapper.h
      include/linux/ide.h
      include/uapi/linux/msdos_fs.h
  * block: allow for_each_bvec to support zero len bvec
      include/linux/bvec.h
    affs: fix basic permission bits to actually work
    ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
    ALSA: hda/hdmi: always check pin power status in i915 pin fixup
    ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
    ALSA: ca0106: fix error code handling
    usb: qmi_wwan: add D-Link DWM-222 A2 device ID
    net: usb: qmi_wwan: add Telit 0x1050 composition
    btrfs: fix potential deadlock in the search ioctl
  * uaccess: Add non-pagefault user-space write function
      include/linux/uaccess.h
      mm/maccess.c
  * uaccess: Add non-pagefault user-space read functions
      include/linux/uaccess.h
      mm/maccess.c
    btrfs: set the lockdep class for log tree extent buffers
    btrfs: Remove extraneous extent_buffer_get from tree_mod_log_rewind
    btrfs: Remove redundant extent_buffer_get in get_old_root
    btrfs: drop path before adding new uuid tree entry
  * include/linux/log2.h: add missing () around n in roundup_pow_of_two()
      include/linux/log2.h
    thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
    iommu/vt-d: Serialize IOMMU GCMD register modifications
    tg3: Fix soft lockup when tg3_reset_task() fails.
  * fix regression in "epoll: Keep a reference on files added to the check list"
      fs/eventpoll.c
    net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
    perf tools: Correct SNOOPX field offset
    nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()'
    bnxt_en: Fix PCI AER error recovery flow
    bnxt_en: Check for zero dir entries in NVRAM.
    gtp: add GTPA_LINK info to msg sent to userspace
    dmaengine: pl330: Fix burst length if burst size is smaller than bus width
    net: arc_emac: Fix memleak in arc_mdio_probe
    ravb: Fixed to be able to unload modules
    net: systemport: Fix memleak in bcm_sysport_probe
    net: hns: Fix memleak in hns_nic_dev_probe
  * netfilter: nf_tables: fix destination register zeroing
      include/net/netfilter/nf_tables.h
  * netfilter: nf_tables: incorrect enum nft_list_attributes definition
      include/uapi/linux/netfilter/nf_tables.h
    netfilter: nf_tables: add NFTA_SET_USERDATA if not null
    MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
    MIPS: mm: BMIPS5000 has inclusive physical caches
    dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate()
    batman-adv: bla: use netif_rx_ni when not in interrupt context
    batman-adv: Fix own OGM check in aggregated OGMs
    batman-adv: Avoid uninitialized chaddr when handling DHCP
  * dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
      drivers/dma/of-dma.c
    xen/xenbus: Fix granting of vmalloc'd memory
  * s390: don't trace preemption in percpu macros
      arch/s390/include/asm/percpu.h
  * cpuidle: Fixup IRQ state
      drivers/cpuidle/cpuidle.c
    ceph: don't allow setlease on cephfs
    nvmet: Disable keep-alive timer when kato is cleared to 0h
    hwmon: (applesmc) check status earlier.
  * drm/msm: add shutdown support for display platform_driver
      drivers/gpu/drm/msm/msm_drv.c
    perf record/stat: Explicitly call out event modifiers in the documentation
  * HID: core: Sanitize event code and type when mapping input
      drivers/hid/hid-input.c
      drivers/hid/hid-multitouch.c
      include/linux/hid.h
  * HID: core: Correctly handle ReportSize being zero
      drivers/hid/hid-core.c
  * ANDROID: overflow.h: fix merge issue with 4.14.196
      include/linux/overflow.h
    Merge 4.14.196 into android-4.14-q
Linux 4.14.196
  * ALSA: usb-audio: Update documentation comment for MS2109 quirk
      sound/usb/quirks-table.h
  * HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
      drivers/hid/usbhid/hiddev.c
    tpm: Unify the mismatching TPM space buffer sizes
    btrfs: check the right error variable in btrfs_del_dir_entries_in_log
    usb: storage: Add unusual_uas entry for Sony PSZ drives
    USB: cdc-acm: rework notification_buffer resizing
  * USB: gadget: u_f: Unbreak offset calculation in VLAs
      drivers/usb/gadget/u_f.h
  * USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()
      drivers/usb/gadget/function/f_ncm.c
  * USB: gadget: u_f: add overflow checks to VLA macros
      drivers/usb/gadget/u_f.h
  * overflow.h: Add allocation size calculation helpers
      drivers/md/dm-table.c
      include/linux/overflow.h
    usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()
  * USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge
      drivers/usb/storage/unusual_devs.h
  * USB: quirks: Add no-lpm quirk for another Raydium touchscreen
      drivers/usb/core/quirks.c
    usb: uas: Add quirk for PNY Pro Elite
    USB: yurex: Fix bad gfp argument
    drm/amdgpu: Fix buffer overflow in INFO ioctl
  * device property: Fix the secondary firmware node handling in set_primary_fwnode()
      drivers/base/core.c
  * PM: sleep: core: Fix the handling of pending runtime resume requests
      drivers/base/power/main.c
  * xhci: Do warm-reset when both CAS and XDEV_RESUME are set
      drivers/usb/host/xhci-hub.c
    XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information.
  * writeback: Fix sync livelock due to b_dirty_time processing
      fs/fs-writeback.c
      include/trace/events/writeback.h
  * writeback: Avoid skipping inode writeback
      fs/fs-writeback.c
      include/linux/fs.h
  * writeback: Protect inode->i_io_list with inode->i_lock
      fs/fs-writeback.c
    serial: 8250: change lock order in serial8250_do_startup()
    serial: 8250_exar: Fix number of ports for Commtech PCIe cards
    serial: pl011: Don't leak amba_ports entry on driver register error
    serial: pl011: Fix oops on -EPROBE_DEFER
    serial: samsung: Removes the IRQ not found warning
    vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()
    vt: defer kfree() of vc_screenbuf in vc_do_resize()
  * USB: lvtest: return proper error code in probe
      drivers/usb/misc/lvstest.c
    fbcon: prevent user font height or width change from causing potential out-of-bounds access
    btrfs: fix space cache memory leak after transaction abort
    HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
    powerpc/perf: Fix soft lockups due to missed interrupt accounting
    net: gianfar: Add of_node_put() before goto statement
  * scsi: ufs: Clean up completed request without interrupt notification
      drivers/scsi/ufs/ufshcd.c
  * scsi: ufs: Improve interrupt handling for shared interrupts
      drivers/scsi/ufs/ufshcd.c
  * scsi: ufs: Fix possible infinite loop in ufshcd_hold
      drivers/scsi/ufs/ufshcd.c
    s390/cio: add cond_resched() in the slow_eval_known_fn() loop
    spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate
  * fs: prevent BUG_ON in submit_bh_wbc()
      fs/buffer.c
      fs/ext4/super.c
  * jbd2: abort journal if free a async write error metadata buffer
      fs/jbd2/transaction.c
  * ext4: don't BUG on inconsistent journal feature
      fs/ext4/super.c
  * jbd2: make sure jh have b_transaction set in refile/unfile_buffer
      fs/jbd2/transaction.c
    usb: gadget: f_tcm: Fix some resource leaks in some error paths
    i2c: rcar: in slave mode, clear NACK earlier
    null_blk: fix passing of REQ_FUA flag in null_handle_rq
    nvme-fc: Fix wrong return value in __nvme_fc_init_request()
    media: gpio-ir-tx: improve precision of transmitted signal due to scheduling
    Revert "ath10k: fix DMA related firmware crashes on multiple devices"
  * efi: provide empty efi_enter_virtual_mode implementation
      include/linux/efi.h
    USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
    powerpc/spufs: add CONFIG_COREDUMP dependency
    KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe
    media: davinci: vpif_capture: fix potential double free
    EDAC/ie31200: Fallback if host bridge device is already initialized
    scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()
    ceph: fix potential mdsc use-after-free crash
    scsi: iscsi: Do not put host in iscsi_set_flashnode_param()
    locking/lockdep: Fix overflow in presentation of average lock-time
    drm/nouveau: Fix reference count leak in nouveau_connector_detect
    drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open
  * f2fs: fix use-after-free issue
      fs/f2fs/super.c
    cec-api: prevent leaking memory through hole in structure
    mips/vdso: Fix resource leaks in genvdso.c
    rtlwifi: rtl8192cu: Prevent leaking urb
  * PCI: Fix pci_create_slot() reference count leak
      drivers/pci/slot.c
    omapfb: fix multiple reference count leaks due to pm_runtime_get_sync
    selftests/powerpc: Purge extra count_pmc() calls of ebb selftests
    scsi: lpfc: Fix shost refcount mismatch when deleting vport
    drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails
    drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config
    drm/amd/display: fix ref count leak in amdgpu_drm_ioctl
    drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms
    drm/radeon: fix multiple reference count leak
    drm/amdkfd: Fix reference count leaks.
  * iommu/iova: Don't BUG on invalid PFNs
      drivers/iommu/iova.c
    scsi: target: tcmu: Fix crash on ARM during cmd completion
  * blktrace: ensure our debugfs dir exists
      kernel/trace/blktrace.c
    media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()
    powerpc/xive: Ignore kmemleak false positives
    arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
    mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
    ASoC: tegra: Fix reference count leaks.
    ALSA: pci: delete repeated words in comments
  * gre6: Fix reception with IP6_TNL_F_RCV_DSCP_COPY
      net/ipv6/ip6_tunnel.c
    ipvlan: fix device features
    tipc: fix uninit skb->data in tipc_nl_compat_dumpit()
  * net: Fix potential wrong skb->protocol in skb_vlan_untag()
      net/core/skbuff.c
    powerpc/64s: Don't init FSCR_DSCR in __init_FSCR()

Change-Id: I859e5233b7b9e6b1cd64de707f4ee4a00c0860a6
Signed-off-by: lucaswei <lucaswei@google.com>
2020-10-20 16:59:48 +08:00
Ming Lei
b7aae706e8 block: allow for_each_bvec to support zero len bvec
commit 7e24969022cbd61ddc586f14824fc205661bb124 upstream.

Block layer usually doesn't support or allow zero-length bvec. Since
commit 1bdc76aea1 ("iov_iter: use bvec iterator to implement
iterate_bvec()"), iterate_bvec() switches to bvec iterator. However,
Al mentioned that 'Zero-length segments are not disallowed' in iov_iter.

Fixes for_each_bvec() so that it can move on after seeing one zero
length bvec.

Fixes: 1bdc76aea1 ("iov_iter: use bvec iterator to implement iterate_bvec()")
Reported-by: syzbot <syzbot+61acc40a49a3e46e25ea@syzkaller.appspotmail.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Tested-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>
Link: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2262077.html
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-09 19:03:12 +02:00
Jaegeuk Kim
8dbee71a2a fscrypt: pfk: ice: cover ICE-related data structures in CONFIG_PFK
This patch makes CONFIG_PFK cover all the per-file key structures.
Otherwise, for example, f2fs will set DUN, resulting in IO fragmentation,
even if PFK is not set.

Bug: 68721442
Change-Id: I93808db0b00feae53888fd9ae6c91fc2727ffca9
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
[neersoni@codeaurora.org: Removed redundant assignment operation.]
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2018-10-19 01:11:58 +05:30
Shivaprasad Hongal
367c46b11c Enable hardware based FBE on f2fs and adapt ext4 fs
Hardware File Based Encryption (FBE) uses inline crypto
engine to encrypt the user data.
1. security/pfk: changes to support per file
   encryption for f2fs using hardware crypto engine.
2. fs/ext4: adapted crypto APIs for generic crypto layer.
3. fs/f2fs: support hardware crypto engine based per file
   encryption.
4. fs/crypto: export APIs to support hardware crypto
   engine based per file encryption.
5. security/pfe: added wrapped key support based on
   upstream changes.
Other changes made to provide support framework for per
file encryption.

Reverting commit e02a4e21f6 ("ext4: Add HW File Based
Encryption on ext4 file system") and adding changes to
have FBE in sync with upstream implementation of FBE.

Change-Id: I17f9909c43ba744eb874f6d237745fbf88a2b848
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-08-22 10:56:07 -07:00
Dmitry Monakhov
f9df1cd99e bio: add bvec_iter rewind API
Some ->bi_end_io handlers (for example: pi_verify or decrypt handlers)
need to know original data vector, but after bio traverse io-stack it may
be advanced, splited and relocated many times so it is hard to guess
original iterator. Let's add 'bi_done' conter which accounts number
of bytes iterator was advanced during it's evolution. Later end_io handler
may easily restore original iterator by rewinding iterator to
iter->bi_done.

Note: this change makes sizeof (struct bvec_iter) multiple to 8

Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
[hch: switched to true/false return]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2017-07-03 16:56:28 -06:00
Dmitry Monakhov
b1fb2c52b2 block: guard bvec iteration logic
Currently if some one try to advance bvec beyond it's size we simply
dump WARN_ONCE and continue to iterate beyond bvec array boundaries.
This simply means that we endup dereferencing/corrupting random memory
region.

Sane reaction would be to propagate error back to calling context
But bvec_iter_advance's calling context is not always good for error
handling. For safity reason let truncate iterator size to zero which
will break external iteration loop which prevent us from unpredictable
memory range corruption. And even it caller ignores an error, it will
corrupt it's own bvecs, not others.

This patch does:
- Return error back to caller with hope that it will react on this
- Truncate iterator size

Code was added long time ago here 4550dd6c, luckily no one hit it
in real life :)

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
[hch: switch to true/false returns instead of errno values]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2017-07-03 16:56:26 -06:00
Johannes Berg
1ea049b2de bvec: avoid variable shadowing warning
Due to the (indirect) nesting of min(..., min(...)), sparse will
show a variable shadowing warning whenever bvec.h is included.

Avoid that by assigning the inner min() to a temporary variable first.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-08-11 09:41:35 -06:00
Ming Lei
80f162ff06 block: mark 1st parameter of bvec_iter_advance as const
bvec_iter_advance() only writes the parameter of iterator,
so the base address of bvec can be marked as const safely.

Without the change, we can see compiling warning in the
following patch for implementing iterate_bvec(): lib/iov_iter.c
with bvec iterator.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Tested-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-09 10:02:47 -06:00
Ming Lei
0781e79eb2 block: move two bvec structure into bvec.h
This patch moves 'struct bio_vec' and 'struct bvec_iter'
into 'include/linux/bvec.h', then always include this header
into 'include/linux/blk_types.h'.

With this change, both 'struct bvec_iter' and bvec iterator
helpers don't depend on CONFIG_BLOCK any more, then we can
use bvec iterator to implement iterate_bvec(): lib/iov_iter.c.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Suggested-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Tested-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-09 10:02:47 -06:00
Ming Lei
8fc554552c block: move bvec iterator into include/linux/bvec.h
bvec iterator helpers should be used to implement by
iterate_bvec():lib/iov_iter.c too, and move them into
one header, so that we can keep bvec iterator header
out of CONFIG_BLOCK. Then we can remove the reinventing
of wheel in iterate_bvec().

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Tested-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-09 10:00:58 -06:00