8 Commits

Author SHA1 Message Date
lucaswei
bac74c1ae4 Merge android-4.9-q (4.9.237) into android-msm-pixel-4.9-lts
Merge 4.9.237 into android-4.9-q
Linux 4.9.237
    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
    serial: 8250_pci: Add Realtek 816a and 816b
    Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
    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 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
    i2c: algo: pca: Reapply i2c bus settings after reset
    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: pm8001: Fix memleak in pm8001_exec_internal_task_abort
    NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
  * net: handle the return value of pskb_carve_frag_list() correctly
      net/core/skbuff.c
  * gcov: add support for GCC 10.1
      kernel/gcov/Kconfig
    RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
    IB/rxe: Remove a pointless indirection layer
  * 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: 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()
    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
    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
    staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
  * USB: core: add helpers to retrieve endpoints
      drivers/usb/core/usb.c
      include/linux/usb.h
    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:light:max44000 Fix timestamp alignment and prevent data leak.
    iio:magnetometer:ak8975 Fix alignment and data leak issues.
    drivers: iio: magnetometer: Fix sparse endianness warnings cast to restricted __be16
    iio:adc:ti-adc081c Fix alignment and data leak issues
    iio:adc:ina2xx Fix timestamp alignment issue.
    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
    drivers/net/wan/hdlc_cisco: Add hard_header_len
    irqchip/eznps: Fix build error for !ARC700 builds
    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
    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
    Merge 4.9.236 into android-4.9-q
Linux 4.9.236
  * net: disable netpoll on fresh napis
      net/core/dev.c
    sctp: not disable bh in the whole sctp_get_port_local()
    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
    net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
    affs: fix basic permission bits to actually work
    fs/affs: use octal for permissions
    ALSA; firewire-tascam: exclude Tascam FE-8 from detection
  * 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 ( ... )
    vfio/pci: Fix SR-IOV VF handling with MMIO blocking
  * net: initialize fastreuse on inet_inherit_port
      net/ipv4/inet_hashtables.c
  * net: refactor bind_bucket fastreuse into helper
      include/net/inet_connection_sock.h
      net/ipv4/inet_connection_sock.c
  * 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
    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
  * 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
  * 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/uapi/linux/msdos_fs.h
  * block: allow for_each_bvec to support zero len bvec
      include/linux/bvec.h
    ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
    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
    qmi_wwan: new Telewell and Sierra device IDs
    drivers: net: usb: qmi_wwan: add QMI_QUIRK_SET_DTR for Telit PID 0x1201
    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
    bnxt_en: Fix PCI AER error recovery flow
    bnxt_en: Check for zero dir entries in NVRAM.
    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: hns: Fix memleak in hns_nic_dev_probe
    netfilter: nf_tables: fix destination register zeroing
    netfilter: nf_tables: incorrect enum nft_list_attributes definition
    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: 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
    ceph: don't allow setlease on cephfs
    nvmet: Disable keep-alive timer when kato is cleared to 0h
    hwmon: (applesmc) check status earlier.
    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.9.235
      include/linux/overflow.h
    Merge 4.9.235 into android-4.9-q
Linux 4.9.235
  * 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
    btrfs: check the right error variable in btrfs_del_dir_entries_in_log
    usb: storage: Add unusual_uas entry for Sony PSZ drives
  * 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()
  * 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
  * 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: 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()
      drivers/tty/vt/vt_ioctl.c
  * vt: defer kfree() of vc_screenbuf in vc_do_resize()
      drivers/tty/vt/vt.c
  * 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: 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
  * 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
  * 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
    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
    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
    media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()
    arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep
    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
  * bonding: show saner speed for broadcast mode
      drivers/net/bonding/bond_main.c
  * bonding: fix a potential double-unregister
      drivers/net/bonding/bond_main.c

Change-Id: Ic5e975d213782585fedbf8a5869b9b0aaad0bf66
Signed-off-by: lucaswei <lucaswei@google.com>
2020-10-20 17:40:55 +08:00
Ming Lei
0c7cee63ec 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-12 11:47:36 +02:00
Jaegeuk Kim
a865ac0d91 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>
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2018-08-30 00:19:50 -07:00
Neeraj Soni
36c6512ecd Enable hardware based FBE on f2fs and adapt ext4 fs
Hardware File Based Encryption (FBE) uses crypto engine to
encrypt the user data with unique key for each file.
File name and data both are encrypted with this feature.
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.
Other changes made to provide support framework for per
file encryption.

Change-Id: I7981fa7f8f0c4bc058b80b7b8e342cfd81697c74
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2018-05-28 10:56:49 +05:30
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