Commit Graph

75 Commits

Author SHA1 Message Date
lucaswei
1c4149c525 Merge android-4.19-stable (4.19.135) into android-msm-pixel-4.19-lts
Merge 4.19.135 into android-4.19-stable
Linux 4.19.135
    ath9k: Fix regression with Atheros 9271
    ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
  * dm integrity: fix integrity recalculation that is improperly skipped
      drivers/md/dm.c
      include/linux/device-mapper.h
  * ASoC: qcom: Drop HAS_DMA dependency to fix link failure
      sound/soc/qcom/Kconfig
  * ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
      include/sound/rt5670.h
  * x86, vmlinux.lds: Page-align end of ..page_aligned sections
      include/asm-generic/vmlinux.lds.h
    parisc: Add atomic64_set_release() define to avoid CPU soft lockups
    drm/amd/powerplay: fix a crash when overclocking Vega M
    drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
  * io-mapping: indicate mapping failure
      include/linux/io-mapping.h
  * mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
      mm/slab_common.c
  * mm: memcg/slab: synchronize access to kmem_cache dying flag using a spinlock
      mm/slab_common.c
  * mm/memcg: fix refcount error while moving and swapping
      mm/memcontrol.c
  * Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
      Makefile
    vt: Reject zero-sized screen buffer size.
    fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
    serial: 8250_mtk: Fix high-speed baud rates clamping
    serial: 8250: fix null-ptr-deref in serial8250_start_tx()
    staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
    staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: wlan-ng: properly check endpoint types
    Revert "cifs: Fix the target file was deleted when rename failed."
  * usb: xhci: Fix ASM2142/ASM3142 DMA addressing
      drivers/usb/host/xhci-pci.c
    usb: xhci-mtk: fix the failure of bandwidth allocation
  * binder: Don't use mmput() from shrinker function.
      drivers/android/binder_alloc.c
    RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
    x86: math-emu: Fix up 'cmp' insn for clang ias
  * arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
      arch/arm64/kernel/debug-monitors.c
    hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
    hwmon: (adm1275) Make sure we are reading enough data for different chips
    usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
    Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
    dmaengine: ioat setting ioat timeout as module parameter
    hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
  * regmap: dev_get_regmap_match(): fix string comparison
      drivers/base/regmap/regmap.c
    spi: mediatek: use correct SPI_CFG2_REG MACRO
  * Input: add `SW_MACHINE_COVER`
      include/linux/mod_devicetable.h
      include/uapi/linux/input-event-codes.h
    dmaengine: tegra210-adma: Fix runtime PM imbalance on error
  * HID: apple: Disable Fn-key key-re-mapping on clone keyboards
      drivers/hid/hid-apple.c
    HID: steam: fixes race in handling device list.
    HID: alps: support devices with report id 2
    HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
    scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
    scripts/decode_stacktrace: strip basepath from all paths
    serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
  * bonding: check return value of register_netdevice() in bond_newlink()
      drivers/net/bonding/bond_netlink.c
    i2c: rcar: always clear ICSAR to avoid side effects
    net: ethernet: ave: Fix error returns in ave_init
    ipvs: fix the connection sync failed in some cases
    qed: suppress "don't support RoCE & iWARP" flooding on HW init
    mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
  * bonding: check error value of register_netdevice() immediately
      drivers/net/bonding/bond_main.c
    net: smc91x: Fix possible memory leak in smc_drv_probe()
    drm: sun4i: hdmi: Fix inverted HPD result
    ieee802154: fix one possible memleak in adf7242_probe
    net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
  * ax88172a: fix ax88172a_unbind() failures
      drivers/net/usb/ax88172a.c
    hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
    fpga: dfl: fix bug in port reset handshake
    bnxt_en: Fix race when modifying pause settings.
    btrfs: fix page leaks after failure to lock page for delalloc
    btrfs: fix mount failure caused by race with umount
    btrfs: fix double free on ulist after backref resolution failure
    ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
  * ALSA: info: Drop WARN_ON() from buffer NULL sanity check
      sound/core/info.c
  * uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
      kernel/events/uprobes.c
    IB/umem: fix reference count leak in ib_umem_odp_get()
  * tipc: clean up skb list lock handling on send path
      net/tipc/bcast.c
      net/tipc/group.c
      net/tipc/link.c
      net/tipc/node.c
      net/tipc/socket.c
    spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
    SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
    irqdomain/treewide: Keep firmware node unconditionally allocated
  * fuse: fix weird page warning
      fs/fuse/dev.c
    drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
    drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
    net: sky2: initialize return of gm_phy_read
    drivers/net/wan/lapbether: Fixed the value of hard_header_len
    xtensa: update *pos in cpuinfo_op.next
    xtensa: fix __sync_fetch_and_{and,or}_4 declarations
    scsi: scsi_transport_spi: Fix function pointer check
    mac80211: allow rx of mesh eapol frames with default rx key
    pinctrl: amd: fix npins for uart0 in kerncz_groups
    gpio: arizona: put pm_runtime in case of failure
    gpio: arizona: handle pm_runtime_get_sync failure case
  * soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
      drivers/soc/qcom/rpmh.c
    ANDROID: build: update ABI definitions
  * ANDROID: update the kernel release format for GKI
      Makefile
      scripts/setlocalversion
  * ANDROID: Incremental fs: magic number compatible 32-bit
      fs/incfs/vfs.c
  * ANDROID: kbuild: don't merge .*..compoundliteral in modules
      scripts/module-lto.lds.S
  * ANDROID: GKI: preserve ABI for struct sock_cgroup_data
      include/linux/cgroup-defs.h
  * Revert "genetlink: remove genl_bind"
      include/net/genetlink.h
      net/netlink/genetlink.c
  * Revert "arm64/alternatives: use subsections for replacement sequences"
      arch/arm64/include/asm/alternative.h
      arch/arm64/kernel/vmlinux.lds.S
    Merge 4.19.134 into android-4.19-stable
Linux 4.19.134
    spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH
  * rxrpc: Fix trace string
      include/trace/events/rxrpc.h
    libceph: don't omit recovery_deletes in target_copy()
  * printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
      include/linux/printk.h
      init/main.c
      kernel/printk/internal.h
      kernel/printk/printk.c
      kernel/printk/printk_safe.c
  * genirq/affinity: Handle affinity setting on inactive interrupts correctly
      kernel/irq/manage.c
  * sched/fair: handle case of task_h_load() returning 0
      kernel/sched/fair.c
  * sched: Fix unreliable rseq cpu_id for new tasks
      kernel/sched/core.c
  * arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return
      arch/arm64/include/asm/syscall.h
      arch/arm64/kernel/syscall.c
  * arm64: ptrace: Consistently use pseudo-singlestep exceptions
      arch/arm64/include/asm/thread_info.h
      arch/arm64/kernel/ptrace.c
      arch/arm64/kernel/signal.c
      arch/arm64/kernel/syscall.c
  * arm64: ptrace: Override SPSR.SS when single-stepping is enabled
      arch/arm64/include/asm/debug-monitors.h
      arch/arm64/kernel/debug-monitors.c
      arch/arm64/kernel/ptrace.c
  * thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power
      drivers/thermal/cpu_cooling.c
    misc: atmel-ssc: lock with mutex instead of spinlock
    dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
    intel_th: Fix a NULL dereference when hub driver is not loaded
    intel_th: pci: Add Emmitsburg PCH support
    intel_th: pci: Add Tiger Lake PCH-H support
    intel_th: pci: Add Jasper Lake CPU support
    powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey
    hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
    riscv: use 16KB kernel stack on 64-bit
    MIPS: Fix build for LTS kernel caused by backporting lpj adjustment
  * timer: Fix wheel index calculation on last level
      kernel/time/timer.c
  * timer: Prevent base->clk from moving backward
      kernel/time/timer.c
    uio_pdrv_genirq: fix use without device tree and no interrupt
    Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
    mei: bus: don't clean driver pointer
  * Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
      drivers/block/zram/zram_drv.c
  * fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
      fs/fuse/file.c
  * ovl: fix unneeded call to ovl_change_flags()
      fs/overlayfs/file.c
  * ovl: relax WARN_ON() when decoding lower directory file handle
      fs/overlayfs/export.c
  * ovl: inode reference leak in ovl_is_inuse true case.
      fs/overlayfs/super.c
    serial: mxs-auart: add missed iounmap() in probe failure and remove
    virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
    virt: vbox: Fix guest capabilities mask check
  * virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
      include/uapi/linux/vboxguest.h
    USB: serial: option: add Quectel EG95 LTE modem
    USB: serial: option: add GosunCn GM500 series
    USB: serial: ch341: add new Product ID for CH340
    USB: serial: cypress_m8: enable Simply Automated UPB PIM
    USB: serial: iuu_phoenix: fix memory corruption
    usb: gadget: function: fix missing spinlock in f_uac1_legacy
    usb: chipidea: core: add wakeup support for extcon
    usb: dwc2: Fix shutdown callback in platform
    USB: c67x00: fix use after free in c67x00_giveback_urb
    ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
    ALSA: hda/realtek - change to suitable link model for ASUS platform
  * ALSA: usb-audio: Fix race against the error recovery URB submission
      sound/usb/midi.c
    ALSA: line6: Sync the pending work cancel at disconnection
    ALSA: line6: Perform sanity check for each URB creation
  * HID: quirks: Ignore Simply Automated UPB PIM
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
  * HID: quirks: Always poll Obins Anne Pro 2 keyboard
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
  * HID: magicmouse: do not set up autorepeat
      drivers/hid/hid-magicmouse.c
    slimbus: core: Fix mismatch in of_node_get/put
    mtd: rawnand: oxnas: Release all devices in the _remove() path
    mtd: rawnand: oxnas: Unregister all devices on error
    mtd: rawnand: oxnas: Keep track of registered devices
    mtd: rawnand: brcmnand: fix CS0 layout
    mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
    mtd: rawnand: marvell: Fix probe error path
    mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
  * soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
      drivers/soc/qcom/rpmh-rsc.c
  * soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
      drivers/soc/qcom/rpmh-rsc.c
  * soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
      drivers/soc/qcom/rpmh.c
  * soc: qcom: rpmh: Update dirty flag only when data changes
      drivers/soc/qcom/rpmh.c
    perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
    apparmor: ensure that dfa state tables have entries
    copy_xstate_to_kernel: Fix typo which caused GDB regression
  * regmap: debugfs: Don't sleep while atomic for fast_io regmaps
      drivers/base/regmap/regmap-debugfs.c
    ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
    Revert "thermal: mediatek: fix register index error"
    staging: comedi: verify array index is correct before using it
    usb: gadget: udc: atmel: fix uninitialized read in debug printk
    spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate
    arm64: dts: meson: add missing gxl rng clock
    phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
    iio:health:afe4404 Fix timestamp alignment and prevent data leak.
  * ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S
      sound/usb/quirks.c
    ACPI: video: Use native backlight on Acer TravelMate 5735Z
    Input: mms114 - add extra compatible for mms345l
  * ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
      sound/usb/quirks.c
    ACPI: video: Use native backlight on Acer Aspire 5783z
  * ALSA: usb-audio: Rewrite registration quirk handling
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/quirks.h
    mmc: sdhci: do not enable card detect interrupt for gpio cd type
    doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in park mode
  * ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp (0951:16d8)
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/quirks.h
  * scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
      drivers/scsi/Kconfig
    ARM: at91: pm: add quirk for sam9x60's ulp1
  * HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
      drivers/hid/hid-quirks.c
    net: sfp: add some quirks for GPON modules
    net: sfp: add support for module quirks
  * Revert "usb/ehci-platform: Set PM runtime as active on resume"
      drivers/usb/host/ehci-platform.c
  * Revert "usb/xhci-plat: Set PM runtime as active on resume"
      drivers/usb/host/xhci-plat.c
  * Revert "usb/ohci-platform: Fix a warning when hibernating"
      drivers/usb/host/ohci-platform.c
  * of: of_mdio: Correct loop scanning logic
      drivers/of/of_mdio.c
    net: dsa: bcm_sf2: Fix node reference count
    spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
    spi: fix initial SPI_SR value in spi-fsl-dspi
    iio:health:afe4403 Fix timestamp alignment and prevent data leak.
    iio:pressure:ms5611 Fix buffer element alignment
    iio:humidity:hts221 Fix alignment and data leak issues
    iio: pressure: zpa2326: handle pm_runtime_get_sync failure
    iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
    iio: magnetometer: ak8974: Fix runtime PM imbalance on error
    iio:humidity:hdc100x Fix alignment and data leak issues
    iio:magnetometer:ak8974: Fix alignment and data leak issues
  * arm64/alternatives: don't patch up internal branches
      arch/arm64/kernel/alternative.c
    i2c: eg20t: Load module automatically if ID matches
    gfs2: read-only mounts should grab the sd_freeze_gl glock
    tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
  * arm64/alternatives: use subsections for replacement sequences
      arch/arm64/include/asm/alternative.h
      arch/arm64/kernel/vmlinux.lds.S
    m68k: mm: fix node memblock init
    m68k: nommu: register start of the memory with memblock
    drm/exynos: fix ref count leak in mic_pre_enable
    drm/msm: fix potential memleak in error branch
  * vlan: consolidate VLAN parsing code and limit max parsing depth
      include/linux/if_vlan.h
  * sched: consistently handle layer3 header accesses in the presence of VLANs
      include/linux/if_vlan.h
      include/net/inet_ecn.h
      include/net/pkt_sched.h
      net/core/filter.c
      net/sched/act_skbedit.c
      net/sched/cls_api.c
      net/sched/cls_flow.c
      net/sched/em_meta.c
  * cgroup: Fix sock_cgroup_data on big-endian.
      include/linux/cgroup-defs.h
  * cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
      include/linux/cgroup-defs.h
      include/linux/cgroup.h
      kernel/cgroup/cgroup.c
      net/core/sock.c
  * tcp: md5: allow changing MD5 keys in all socket states
      net/ipv4/tcp.c
  * tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
      net/ipv4/tcp.c
      net/ipv4/tcp_ipv4.c
  * tcp: md5: do not send silly options in SYNCOOKIES
      net/ipv4/tcp_output.c
  * tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
      net/ipv4/tcp.c
      net/ipv4/tcp_ipv4.c
  * tcp: make sure listeners don't initialize congestion-control state
      net/ipv4/tcp.c
      net/ipv4/tcp_cong.c
  * tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
      net/ipv4/tcp_input.c
    net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
    net_sched: fix a memory leak in atm_tc_init()
  * net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
      include/net/dst.h
    llc: make sure applications use ARPHRD_ETHER
  * l2tp: remove skb_dst_set() from l2tp_xmit_skb()
      net/l2tp/l2tp_core.c
  * ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
      net/ipv4/ping.c
  * genetlink: remove genl_bind
      include/net/genetlink.h
      net/netlink/genetlink.c
  * net: rmnet: fix lower interface leak
      drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
    perf: Make perf able to build with latest libbfd
  * UPSTREAM: media: v4l2-ctrl: Add H264 profile and levels
      drivers/media/v4l2-core/v4l2-ctrls.c
      include/uapi/linux/v4l2-controls.h
  * UPSTREAM: media: v4l2-ctrl: Add control for h.264 chroma qp offset
      drivers/media/v4l2-core/v4l2-ctrls.c
      include/uapi/linux/v4l2-controls.h
  * ANDROID: GKI: ASoC: compress: revert some code to avoid race condition
      sound/core/compress_offload.c
    ANDROID: GKI: Update the ABI xml representation.
  * ANDROID: GKI: kernel: tick-sched: Add an API for wakeup callbacks
      include/linux/tick.h
      kernel/time/tick-sched.c
  * ANDROID: ASoC: Compress: Check and set pcm_new driver op
      sound/soc/soc-compress.c
    Revert "ANDROID: GKI: arm64: gki_defconfig: Disable CONFIG_ARM64_TAGGED_ADDR_ABI"
    ANDROID: arm64: configs: enabe CONFIG_TMPFS
  * Revert "ALSA: compress: fix partial_drain completion state"
      include/sound/compress_driver.h
      sound/core/compress_offload.c
    Merge 4.19.133 into android-4.19-stable
    ANDROID: GKI: enable CONFIG_EXT4_FS_POSIX_ACL.
    ANDROID: GKI: set CONFIG_STATIC_USERMODEHELPER_PATH
Linux 4.19.133
    s390/mm: fix huge pte soft dirty copying
    ARC: elf: use right ELF_ARCH
    ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
  * dm: use noio when sending kobject event
      drivers/md/dm.c
    drm/radeon: fix double free
    btrfs: fix fatal extent_buffer readahead vs releasepage race
    Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb"
  * bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
      include/linux/filter.h
      kernel/bpf/syscall.c
      net/core/sysctl_net_core.c
    kprobes: Do not expose probe addresses to non-CAP_SYSLOG
  * module: Do not expose section addresses to non-CAP_SYSLOG
      kernel/module.c
  * module: Refactor section attr into bin attribute
      kernel/module.c
  * kernel: module: Use struct_size() helper
      kernel/module.c
  * kallsyms: Refactor kallsyms_show_value() to take cred
      include/linux/filter.h
      include/linux/kallsyms.h
      kernel/kallsyms.c
      kernel/module.c
    KVM: x86: Mark CR4.TSD as being possibly owned by the guest
    KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
    KVM: x86: bit 8 of non-leaf PDPEs is not reserved
    KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
  * KVM: arm64: Fix definition of PAGE_HYP_DEVICE
      arch/arm64/include/asm/pgtable-prot.h
  * ALSA: usb-audio: add quirk for MacroSilicon MS2109
      sound/usb/quirks-table.h
    ALSA: hda - let hs_mic be picked ahead of hp_mic
    ALSA: opl3: fix infoleak in opl3
    mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
    net: macb: mark device wake capable when "magic-packet" property present
    bnxt_en: fix NULL dereference in case SR-IOV configuration fails
    cxgb4: fix all-mask IP address comparison
    nbd: Fix memory leak in nbd_add_socket
    arm64: kgdb: Fix single-step exception handling oops
  * ALSA: compress: fix partial_drain completion state
      include/sound/compress_driver.h
      sound/core/compress_offload.c
    net: hns3: fix use-after-free when doing self test
    smsc95xx: avoid memory leak in smsc95xx_bind
    smsc95xx: check return value of smsc95xx_reset
    net: cxgb4: fix return error value in t4_prep_fw
    drm/mediatek: Check plane visibility in atomic_update
  * net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
      net/qrtr/qrtr.c
    x86/entry: Increase entry_stack size to a full page
    nvme-rdma: assign completion vector correctly
    block: release bip in a right way in error path
    usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
    scsi: mptscsih: Fix read sense data size
    ARM: imx6: add missing put_device() call in imx6q_suspend_init()
    cifs: update ctime and mtime during truncate
    s390/kasan: fix early pgm check handler execution
  * drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
      drivers/gpu/drm/drm_panel_orientation_quirks.c
  * drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
      drivers/gpu/drm/drm_panel_orientation_quirks.c
    i40e: protect ring accesses with READ- and WRITE_ONCE
    ixgbe: protect ring accesses with READ- and WRITE_ONCE
  * spi: spidev: fix a potential use-after-free in spidev_release()
      drivers/spi/spidev.c
  * spi: spidev: fix a race between spidev_release and spidev_remove
      drivers/spi/spidev.c
    gpu: host1x: Detach driver on unregister
    drm/tegra: hub: Do not enable orphaned window group
    ARM: dts: omap4-droid4: Fix spi configuration and increase rate
  * regmap: fix alignment issue
      drivers/base/regmap/regmap.c
    spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
    spi: spi-fsl-dspi: use IRQF_SHARED mode to request IRQ
    spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
    spi: spi-fsl-dspi: Adding shutdown hook
    KVM: s390: reduce number of IO pins to 1
    ANDROID: GKI: update abi based on padding fields being added
  * ANDROID: GKI: USB: Gadget: add Android ABI padding to struct usb_gadget
      include/linux/usb/gadget.h
  * ANDROID: GKI: sound/usb/card.h: add Android ABI padding to struct snd_usb_endpoint
      sound/usb/card.h
  * ANDROID: fscrypt: fix DUN contiguity with inline encryption + IV_INO_LBLK_32 policies
      fs/crypto/bio.c
      fs/crypto/inline_crypt.c
  * ANDROID: f2fs: add back compress inode check
      fs/f2fs/f2fs.h
    Merge 4.19.132 into android-4.19-stable
Linux 4.19.132
  * efi: Make it possible to disable efivar_ssdt entirely
      drivers/firmware/efi/Kconfig
    dm zoned: assign max_io_len correctly
  * irqchip/gic: Atomically update affinity
      drivers/irqchip/irq-gic.c
    MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
    cifs: Fix the target file was deleted when rename failed.
    SMB3: Honor lease disabling for multiuser mounts
    SMB3: Honor persistent/resilient handle flags for multiuser mounts
    SMB3: Honor 'seal' flag for multiuser mounts
  * Revert "ALSA: usb-audio: Improve frames size computation"
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    nfsd: apply umask on fs without ACL support
    i2c: mlxcpld: check correct size of maximum RECV_LEN packet
    i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
    nvme: fix a crash in nvme_mpath_add_disk
    SMB3: Honor 'posix' flag for multiuser mounts
    virtio-blk: free vblk-vqs in error path of virtblk_probe()
    drm: sun4i: hdmi: Remove extra HPD polling
    hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
    hwmon: (max6697) Make sure the OVERT mask is set correctly
    cxgb4: fix SGE queue dump destination buffer context
    cxgb4: use correct type for all-mask IP address comparison
    cxgb4: parse TC-U32 key values and masks natively
    cxgb4: use unaligned conversion for fetching timestamp
    drm/msm/dpu: fix error return code in dpu_encoder_init
  * crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
      include/crypto/if_alg.h
    kgdb: Avoid suspicious RCU usage warning
    nvme-multipath: fix deadlock between ana_work and scan_work
    nvme-multipath: set bdi capabilities once
    s390/debug: avoid kernel warning on too large number of pages
    usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
  * mm/slub: fix stack overruns with SLUB_STATS
      mm/slub.c
  * mm/slub.c: fix corrupted freechain in deactivate_slab()
      mm/slub.c
    usbnet: smsc95xx: Fix use-after-free after removal
    EDAC/amd64: Read back the scrub rate PCI register on F15h
  * mm: fix swap cache node allocation mask
      mm/swap_state.c
    btrfs: fix a block group ref counter leak after failure to remove block group
    ANDROID: Update ABI representation for libabigail update
    ANDROID: Update the ABI representation
    ANDROID: Update the ABI xml representation
  * ANDROID: GKI: fix ABI diffs caused by GPU heap and pool vmstat additions
      include/linux/mmzone.h
      mm/vmstat.c
  * ANDROID: sched: consider stune boost margin when computing energy
      kernel/sched/cpufreq_schedutil.c
      kernel/sched/fair.c
      kernel/sched/sched.h
      kernel/sched/tune.c
      kernel/sched/tune.h
    ANDROID: GKI: move abi files to android/
    ANDROID: GKI: drop unneeded "_whitelist" off of symbol filenames
  * UPSTREAM: binder: fix null deref of proc->context
      drivers/android/binder.c
  * ANDROID: cpufreq: schedutil: maintain raw cache when next_f is not changed
      kernel/sched/cpufreq_schedutil.c
  * UPSTREAM: net: bpf: Make bpf_ktime_get_ns() available to non GPL programs
      kernel/bpf/helpers.c
    UPSTREAM: usb: musb: mediatek: add reset FADDR to zero in reset interrupt handle
  * ANDROID: GKI: scripts: Makefile: update the lz4 command (#2)
      scripts/Makefile.lib
    ANDROID: Update the ABI xml representation
  * Revert "drm/dsi: Fix byte order of DCS set/get brightness"
      drivers/gpu/drm/drm_mipi_dsi.c
      include/drm/drm_mipi_dsi.h
    Merge 4.19.131 into android-4.19-stable
Linux 4.19.131
    Revert "tty: hvc: Fix data abort due to race in hvc_open"
    xfs: add agf freeblocks verify in xfs_agf_verify
    dm writecache: add cond_resched to loop in persistent_memory_claim()
    dm writecache: correct uncommitted_block when discarding uncommitted entry
    NFSv4 fix CLOSE not waiting for direct IO compeletion
    pNFS/flexfiles: Fix list corruption if the mirror count changes
    SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
    sunrpc: fixed rollback in rpc_gssd_dummy_populate()
    Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate()
    drm/radeon: fix fb_div check in ni_init_smc_spll_table()
  * drm: rcar-du: Fix build error
      drivers/gpu/drm/rcar-du/Kconfig
  * ring-buffer: Zero out time extend if it is nested and not absolute
      kernel/trace/ring_buffer.c
  * tracing: Fix event trigger to accept redundant spaces
      kernel/trace/trace_events_trigger.c
  * arm64: perf: Report the PC value in REGS_ABI_32 mode
      arch/arm64/kernel/perf_regs.c
    ocfs2: fix panic on nfs server over ocfs2
    ocfs2: fix value of OCFS2_INVALID_SLOT
    ocfs2: load global_inode_alloc
    ocfs2: avoid inode removal while nfsd is accessing it
  * mm/slab: use memzero_explicit() in kzfree()
      mm/slab_common.c
    btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
    btrfs: fix data block group relocation failure due to concurrent scrub
    x86/asm/64: Align start of __clear_user() loop to 16-bytes
    KVM: nVMX: Plumb L2 GPA through to PML emulation
    KVM: X86: Fix MSR range of APIC registers in X2APIC mode
    erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup
    ACPI: sysfs: Fix pm_profile_attr type
    ALSA: hda/realtek - Add quirk for MSI GE63 laptop
    ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
    RISC-V: Don't allow write+exec only page mapping request in mmap
  * blktrace: break out of blktrace setup on concurrent calls
      kernel/trace/blktrace.c
  * kbuild: improve cc-option to clean up all temporary files
      scripts/Kbuild.include
  * arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n
      arch/arm64/kernel/fpsimd.c
    s390/vdso: fix vDSO clock_getres()
    s390/ptrace: fix setting syscall number
    net: alx: fix race condition in alx_remove
    ibmvnic: Harden device login requests
    hwrng: ks-sa - Fix runtime PM imbalance on error
    riscv/atomic: Fix sign extension for RV64I
    drm/amd/display: Use kfree() to free rgb_user in calculate_user_regamma_ramp()
    ata/libata: Fix usage of page address by page_address in ata_scsi_mode_select_xlat function
    sata_rcar: handle pm_runtime_get_sync failure cases
  * sched/core: Fix PI boosting between RT and DEADLINE tasks
      kernel/sched/core.c
  * sched/deadline: Initialize ->dl_boosted
      kernel/sched/deadline.c
  * i2c: core: check returned size of emulated smbus block read
      drivers/i2c/i2c-core-smbus.c
    i2c: fsi: Fix the port number field in status register
    net: bcmgenet: use hardware padding of runt frames
    netfilter: ipset: fix unaligned atomic access
    usb: gadget: udc: Potential Oops in error handling code
    ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
    cxgb4: move handling L2T ARP failures to caller
    net: qed: fix excessive QM ILT lines consumption
    net: qed: fix NVMe login fails over VFs
  * net: qed: fix left elements count calculation
      include/linux/qed/qed_chain.h
    RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
    ASoC: rockchip: Fix a reference count leak.
    RDMA/cma: Protect bind_list and listen_list while finding matching cm id
    RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
    rxrpc: Fix handling of rwind from an ACK packet
    ARM: dts: NSP: Correct FA2 mailbox node
  * regmap: Fix memory leak from regmap_register_patch
      drivers/base/regmap/regmap.c
    x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in rdt_cdp_peer_get()
    ARM: dts: Fix duovero smsc interrupt for suspend
    ASoC: fsl_ssi: Fix bclk calculation for mono channel
    regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
    efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
    ASoC: q6asm: handle EOS correctly
  * xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
      include/net/xfrm.h
      net/xfrm/xfrm_device.c
    cifs/smb3: Fix data inconsistent when zero file range
    cifs/smb3: Fix data inconsistent when punch hole
    IB/mad: Fix use after free when destroying MAD agent
  * loop: replace kill_bdev with invalidate_bdev
      drivers/block/loop.c
    cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
  * xhci: Return if xHCI doesn't support LPM
      drivers/usb/host/xhci.c
  * xhci: Fix enumeration issue when setting max packet size for FS devices.
      drivers/usb/host/xhci.c
  * xhci: Fix incorrect EP_STATE_MASK
      drivers/usb/host/xhci.h
    scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action
  * ALSA: usb-audio: Fix OOB access of mixer element list
      sound/usb/mixer.c
      sound/usb/mixer.h
      sound/usb/mixer_quirks.c
  * ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
      sound/usb/quirks.c
  * ALSA: usb-audio: add quirk for Denon DCD-1500RE
      sound/usb/quirks.c
    usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
    usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
  * xhci: Poll for U0 after disabling USB2 LPM
      drivers/usb/host/xhci.c
    usb: host: xhci-mtk: avoid runtime suspend when removing hcd
  * USB: ehci: reopen solution for Synopsys HC bug
      drivers/usb/host/ehci-pci.c
  * usb: add USB_QUIRK_DELAY_INIT for Logitech C922
      drivers/usb/core/quirks.c
    usb: dwc2: Postponed gadget registration to the udc class driver
    USB: ohci-sm501: Add missed iounmap() in remove
  * net: core: reduce recursion limit value
      include/linux/netdevice.h
  * net: Do not clear the sock TX queue in sk_set_socket()
      include/net/sock.h
      net/core/sock.c
  * net: Fix the arp error in some cases
      net/ipv4/fib_semantics.c
    sch_cake: don't call diffserv parsing code when it is not needed
  * tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
      net/ipv4/tcp_cubic.c
    sch_cake: fix a few style nits
    sch_cake: don't try to reallocate or unshare skb unconditionally
  * ip_tunnel: fix use-after-free in ip_tunnel_lookup()
      net/ipv4/ip_tunnel.c
  * net: phy: Check harder for errors in get_phy_id()
      drivers/net/phy/phy_device.c
    ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
    tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
  * tcp: grow window for OOO packets only for SACK flows
      net/ipv4/tcp_input.c
  * tcp: don't ignore ECN CWR on pure ACK
      net/ipv4/tcp_input.c
  * sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
      include/net/sctp/constants.h
      net/sctp/associola.c
      net/sctp/bind_addr.c
      net/sctp/protocol.c
    rxrpc: Fix notification call on completion of discarded calls
    rocker: fix incorrect error handling in dma_rings_init
  * net: usb: ax88179_178a: fix packet alignment padding
      drivers/net/usb/ax88179_178a.c
  * net: increment xmit_recursion level in dev_direct_xmit()
      net/core/dev.c
      net/core/sock.c
  * net: use correct this_cpu primitive in dev_recursion_level
      include/linux/netdevice.h
  * net: place xmit recursion in softnet data
      include/linux/netdevice.h
      net/core/dev.c
      net/core/filter.c
  * net: fix memleak in register_netdevice()
      net/core/dev.c
  * net: bridge: enfore alignment for ethernet address
      net/bridge/br_private.h
  * mld: fix memory leak in ipv6_mc_destroy_dev()
      net/ipv6/mcast.c
    ibmveth: Fix max MTU limit
    apparmor: don't try to replace stale label in ptraceme check
    ALSA: hda/realtek - Enable micmute LED on and HP system
    ALSA: hda/realtek: Enable mute LED on an HP system
    ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
    fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"
    i2c: tegra: Fix Maximum transfer size
    i2c: tegra: Add missing kerneldoc for some fields
    i2c: tegra: Cleanup kerneldoc comments
    EDAC/amd64: Add Family 17h Model 30h PCI IDs
  * net: sched: export __netdev_watchdog_up()
      net/sched/sch_generic.c
    net: bcmgenet: remove HFB_CTRL access
    mtd: rawnand: marvell: Fix the condition on a return code
    fanotify: fix ignore mask logic for events on child and on dir
    block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed
  * net: be more gentle about silly gso requests coming from user
      include/linux/virtio_net.h
  * ANDROID: lib/vdso: do not update timespec if clock_getres() fails
      lib/vdso/gettimeofday.c
  * Revert "ANDROID: fscrypt: add key removal notifier chain"
      fs/crypto/keyring.c
      include/linux/fscrypt.h
    ANDROID: update the ABI xml and qcom whitelist
  * ANDROID: fs: export vfs_{read|write}
      fs/read_write.c
    ANDROID: GKI: update abi definitions now that sdcardfs is gone
  * Revert "ANDROID: sdcardfs: Enable modular sdcardfs"
      fs/fs_struct.c
      fs/read_write.c
      security/security.c
  * Revert "ANDROID: vfs: Add setattr2 for filesystems with per mount permissions"
      fs/attr.c
      fs/coredump.c
      fs/inode.c
      fs/namei.c
      fs/open.c
      fs/utimes.c
      include/linux/fs.h
  * Revert "ANDROID: vfs: fix export symbol type"
      fs/attr.c
  * Revert "ANDROID: vfs: Add permission2 for filesystems with per mount permissions"
      fs/attr.c
      fs/exec.c
      fs/namei.c
      fs/notify/inotify/inotify_user.c
      fs/open.c
      fs/xattr.c
      include/linux/fs.h
      include/linux/namei.h
  * Revert "ANDROID: vfs: fix export symbol types"
      fs/namei.c
  * Revert "ANDROID: vfs: add d_canonical_path for stacked filesystem support"
      fs/notify/inotify/inotify_user.c
      include/linux/dcache.h
      include/linux/fsnotify.h
  * Revert "ANDROID: fs: Restore vfs_path_lookup() export"
      fs/internal.h
      include/linux/namei.h
  * ANDROID: sdcardfs: remove sdcardfs from system
      fs/Kconfig
      fs/Makefile
  * Revert "ALSA: usb-audio: Improve frames size computation"
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    Merge 4.19.130 into android-4.19-stable
  * ANDROID: Makefile: append BUILD_NUMBER to version string when defined
      Makefile
    ANDROID: GKI: Update ABI for incremental fs
    ANDROID: GKI: Update cuttlefish whitelist
    ANDROID: GKI: Disable INCREMENTAL_FS on x86 too
  * ANDROID: cpufreq: schedutil: drop cache when update skipped due to rate limit
      kernel/sched/cpufreq_schedutil.c
Linux 4.19.130
    KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
    kvm: x86: Fix reserved bits related calculation errors caused by MKTME
    kvm: x86: Move kvm_set_mmio_spte_mask() from x86.c to mmu.c
  * md: add feature flag MD_FEATURE_RAID0_LAYOUT
      include/uapi/linux/raid/md_p.h
    Revert "dpaa_eth: fix usage as DSA master, try 3"
  * net: core: device_rename: Use rwsem instead of a seqcount
      net/core/dev.c
  * sched/rt, net: Use CONFIG_PREEMPTION.patch
      net/core/dev.c
  * kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
      include/linux/kprobes.h
    net: octeon: mgmt: Repair filling of RX ring
    e1000e: Do not wake up the system via WOL if device wakeup is disabled
    kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
  * crypto: algboss - don't wait during notifier callback
      crypto/algboss.c
    crypto: algif_skcipher - Cap recv SG list at ctx->used
    drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
    drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
    s390: fix syscall_get_error for compat processes
    mtd: rawnand: tmio: Fix the probe error path
    mtd: rawnand: mtk: Fix the probe error path
    mtd: rawnand: plat_nand: Fix the probe error path
    mtd: rawnand: socrates: Fix the probe error path
    mtd: rawnand: oxnas: Fix the probe error path
    mtd: rawnand: oxnas: Add of_node_put()
    mtd: rawnand: orion: Fix the probe error path
    mtd: rawnand: xway: Fix the probe error path
    mtd: rawnand: sharpsl: Fix the probe error path
    mtd: rawnand: diskonchip: Fix the probe error path
  * mtd: rawnand: Pass a nand_chip object to nand_release()
      include/linux/mtd/rawnand.h
  * mtd: rawnand: Pass a nand_chip object to nand_scan()
      include/linux/mtd/rawnand.h
  * block: nr_sects_write(): Disable preemption on seqcount write
      include/linux/genhd.h
    x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
  * drm/dp_mst: Increase ACT retry timeout to 3s
      drivers/gpu/drm/drm_dp_mst_topology.c
  * ext4: avoid race conditions when remounting with options that change dax
      fs/ext4/super.c
  * ext4: fix partial cluster initialization when splitting extent
      fs/ext4/extents.c
  * selinux: fix double free
      security/selinux/ss/services.c
    drm/amdgpu: Replace invalid device ID with a valid device ID
    drm/qxl: Use correct notify port address when creating cursor ring
  * drm/dp_mst: Reformat drm_dp_check_act_status() a bit
      drivers/gpu/drm/drm_dp_mst_topology.c
  * drm: encoder_slave: fix refcouting error for modules
      drivers/gpu/drm/drm_encoder_slave.c
  * libata: Use per port sync for detach
      include/linux/libata.h
  * arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
      arch/arm64/kernel/hw_breakpoint.c
  * block: Fix use-after-free in blkdev_get()
      fs/block_dev.c
    afs: afs_write_end() should change i_size under the right lock
    afs: Fix non-setting of mtime when writing into mmap
    bcache: fix potential deadlock problem in btree_gc_coalesce
  * ext4: stop overwrite the errcode in ext4_setup_super
      fs/ext4/super.c
    perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events()
  * usb/ehci-platform: Set PM runtime as active on resume
      drivers/usb/host/ehci-platform.c
  * usb: host: ehci-platform: add a quirk to avoid stuck
      drivers/usb/host/ehci-platform.c
      include/linux/usb/ehci_def.h
  * usb/xhci-plat: Set PM runtime as active on resume
      drivers/usb/host/xhci-plat.c
    xdp: Fix xsk_generic_xmit errno
  * net/filter: Permit reading NET in load_bytes_relative when MAC not set
      net/core/filter.c
    x86/idt: Keep spurious entries unset in system_vectors
    scsi: acornscsi: Fix an error handling path in acornscsi_probe()
    drm/sun4i: hdmi ddc clk: Fix size of m divider
    ASoC: rt5645: Add platform-data for Asus T101HA
    ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
  * ASoC: core: only convert non DPCM link to DPCM link
      sound/soc/soc-core.c
    afs: Fix memory leak in afs_put_sysnames()
    selftests/net: in timestamping, strncpy needs to preserve null byte
    drivers/perf: hisi: Fix wrong value for all counters enable
    NTB: ntb_test: Fix bug when counting remote files
    NTB: perf: Fix race condition when run with ntb_test
    NTB: perf: Fix support for hardware that doesn't have port numbers
    NTB: perf: Don't require one more memory window than number of peers
    NTB: Revert the change to use the NTB device dev for DMA allocations
    NTB: ntb_tool: reading the link file should not end in a NULL byte
    ntb_tool: pass correct struct device to dma_alloc_coherent
    ntb_perf: pass correct struct device to dma_alloc_coherent
    gfs2: fix use-after-free on transaction ail lists
  * blktrace: fix endianness for blk_log_remap()
      kernel/trace/blktrace.c
  * blktrace: fix endianness in get_pdu_int()
      kernel/trace/blktrace.c
  * blktrace: use errno instead of bi_status
      kernel/trace/blktrace.c
    selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
  * elfnote: mark all .note sections SHF_ALLOC
      include/linux/elfnote.h
  * include/linux/bitops.h: avoid clang shift-count-overflow warnings
      include/linux/bitops.h
  * lib/zlib: remove outdated and incorrect pre-increment optimization
      lib/zlib_inflate/inffast.c
    geneve: change from tx_error to tx_dropped on missing metadata
    crypto: omap-sham - add proper load balancing support for multicore
    pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
    pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
  * scsi: ufs: Don't update urgent bkops level when toggling auto bkops
      drivers/scsi/ufs/ufshcd.c
    scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
    gfs2: Allow lock_nolock mount to specify jid=X
    openrisc: Fix issue with argument clobbering for clone/fork
    rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
    vfio/mdev: Fix reference count leak in add_mdev_supported_type
    ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
    extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
    powerpc/4xx: Don't unmap NULL mbase
  * of: Fix a refcounting bug in __of_attach_node_sysfs()
      drivers/of/kobj.c
    NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
    net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
    clk: sprd: return correct type of value for _sprd_pll_recalc_rate
    KVM: PPC: Book3S HV: Ignore kmemleak false positives
  * scsi: ufs-qcom: Fix scheduling while atomic issue
      drivers/scsi/ufs/ufs-qcom.c
    clk: bcm2835: Fix return type of bcm2835_register_gate
    scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
    ASoC: fix incomplete error-handling in img_i2s_in_probe.
    x86/apic: Make TSC deadline timer detection message visible
    RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
  * usb: gadget: Fix issue with config_ep_by_speed function
      drivers/usb/gadget/composite.c
      include/linux/usb/composite.h
    usb: gadget: fix potential double-free in m66592_probe.
    usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
    USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke
    usb: dwc2: gadget: move gadget resume after the core is in L0 state
    watchdog: da9062: No need to ping manually before setting timeout
    IB/cma: Fix ports memory leak in cma_configfs
    PCI: dwc: Fix inner MSI IRQ domain registration
    PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
    dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
    powerpc/64s/pgtable: fix an undefined behaviour
    arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
    scsi: target: tcmu: Userspace must not complete queued commands
    clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
    fpga: dfl: afu: Corrected error handling levels
    tty: n_gsm: Fix bogus i++ in gsm_data_kick
    USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
    ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
    drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
  * usb/ohci-platform: Fix a warning when hibernating
      drivers/usb/host/ohci-platform.c
    vfio-pci: Mask cap zero
    powerpc/ps3: Fix kexec shutdown hang
    powerpc/pseries/ras: Fix FWNMI_VALID off by one
    ipmi: use vzalloc instead of kmalloc for user creation
  * HID: Add quirks for Trust Panora Graphic Tablet
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
    tty: n_gsm: Fix waking up upper tty layer when room available
    tty: n_gsm: Fix SOF skipping
    powerpc/64: Don't initialise init_task->thread.regs
  * PCI: Fix pci_register_host_bridge() device_register() error handling
      drivers/pci/probe.c
    clk: ti: composite: fix memory leak
    dlm: remove BUG() before panic()
    pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
    scsi: mpt3sas: Fix double free warnings
    power: supply: smb347-charger: IRQSTAT_D is volatile
    power: supply: lp8788: Fix an error handling path in 'lp8788_charger_probe()'
    scsi: qla2xxx: Fix warning after FC target reset
    PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
    PCI: rcar: Fix incorrect programming of OB windows
  * drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish
      drivers/base/platform.c
    serial: amba-pl011: Make sure we initialize the port.lock spinlock
    i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
    PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
    staging: sm750fb: add missing case while setting FB_VISUAL
  * usb: dwc3: gadget: Properly handle failed kick_transfer
      drivers/usb/dwc3/gadget.c
    thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
    slimbus: ngd: get drvdata from correct device
    tty: hvc: Fix data abort due to race in hvc_open
    s390/qdio: put thinint indicator after early error
  * ALSA: usb-audio: Fix racy list management in output queue
      sound/usb/endpoint.c
  * ALSA: usb-audio: Improve frames size computation
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    staging: gasket: Fix mapping refcnt leak when register/store fails
    staging: gasket: Fix mapping refcnt leak when put attribute fails
  * firmware: qcom_scm: fix bogous abuse of dma-direct internals
      drivers/firmware/qcom_scm.c
    pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
    scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing
    gpio: dwapb: Append MODULE_ALIAS for platform driver
    ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
    scsi: qedi: Do not flush offload work if ARP not resolved
    arm64: dts: mt8173: fix unit name warnings
    staging: greybus: fix a missing-check bug in gb_lights_light_config()
    x86/purgatory: Disable various profiling and sanitizing options
    apparmor: fix nnp subset test for unconfined
    scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
    scsi: sr: Fix sr_probe() missing deallocate of device minor
    ASoC: meson: add missing free_irq() in error path
    apparmor: check/put label on apparmor_sk_clone_security()
    apparmor: fix introspection of of task mode for unconfined tasks
  * mksysmap: Fix the mismatch of '.L' symbols in System.map
      scripts/mksysmap
    NTB: Fix the default port and peer numbers for legacy drivers
    NTB: ntb_pingpong: Choose doorbells based on port number
    yam: fix possible memory leak in yam_init_driver
    pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
    powerpc/crashkernel: Take "mem=" option into account
    PCI: vmd: Filter resource type bits from shadow register
    nfsd: Fix svc_xprt refcnt leak when setup callback client failed
    powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run
    clk: clk-flexgen: fix clock-critical handling
    scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
    mfd: wm8994: Fix driver operation if loaded as modules
    gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration
    m68k/PCI: Fix a memory leak in an error handling path
    RDMA/mlx5: Add init2init as a modify command
    vfio/pci: fix memory leaks in alloc_perm_bits()
    ps3disk: use the default segment boundary
    PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only register
    dm mpath: switch paths in dm_blk_ioctl() code path
    serial: 8250: Fix max baud limit in generic 8250 port
    usblp: poison URBs upon disconnect
    clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
    i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
  * f2fs: report delalloc reserve as non-free in statfs for project quota
      fs/f2fs/super.c
    iio: bmp280: fix compensation of humidity
    scsi: qla2xxx: Fix issue with adapter's stopping state
  * PCI: Allow pci_resize_resource() for devices on root bus
      drivers/pci/setup-res.c
    ALSA: isa/wavefront: prevent out of bounds write in ioctl
    ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
    scsi: qedi: Check for buffer overflow in qedi_set_path()
    ARM: integrator: Add some Kconfig selections
    ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
    backlight: lp855x: Ensure regulators are disabled on probe failure
    clk: qcom: msm8916: Fix the address location of pll->config_reg
    remoteproc: Fix IDR initialisation in rproc_alloc()
    iio: pressure: bmp280: Tolerate IRQ before registering
    i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
    ASoC: tegra: tegra_wm8903: Support nvidia, headset property
    clk: sunxi: Fix incorrect usage of round_down()
  * power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
      drivers/power/supply/Kconfig
  * ANDROID: ext4: Optimize match for casefolded encrypted dirs
      fs/ext4/ext4.h
      fs/ext4/namei.c
  * ANDROID: ext4: Handle casefolding with encryption
      fs/ext4/dir.c
      fs/ext4/ext4.h
      fs/ext4/hash.c
      fs/ext4/ialloc.c
      fs/ext4/inline.c
      fs/ext4/namei.c
      fs/ext4/super.c
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
  * ANDROID: extcon: Remove redundant EXPORT_SYMBOL_GPL
      include/linux/extcon.h
    ANDROID: update the ABI xml representation
  * ANDROID: GKI: cfg80211: add ABI changes for CONFIG_NL80211_TESTMODE
      include/net/cfg80211.h
      include/net/mac80211.h
    ANDROID: gki_defconfig: x86: Enable KERNEL_LZ4
  * ANDROID: GKI: scripts: Makefile: update the lz4 command
      scripts/Makefile.lib
  * FROMLIST: f2fs: fix use-after-free when accessing bio->bi_crypt_context
      fs/f2fs/data.c
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
  * UPSTREAM: fdt: Update CRC check for rng-seed
      drivers/of/fdt.c
    ANDROID: GKI: Update ABI for incremental fs
    ANDROID: GKI: Update whitelist and defconfig for incfs
    ANDROID: Use depmod from the hermetic toolchain
    Merge 4.19.129 into android-4.19-stable
Linux 4.19.129
    perf symbols: Fix debuginfo search for Ubuntu
    perf probe: Check address correctness by map instead of _etext
    perf probe: Fix to check blacklist address correctly
    perf probe: Do not show the skipped events
    w1: omap-hdq: cleanup to add missing newline for some dev_dbg
    mtd: rawnand: pasemi: Fix the probe error path
    mtd: rawnand: brcmnand: fix hamming oob layout
  * sunrpc: clean up properly in gss_mech_unregister()
      include/linux/sunrpc/gss_api.h
      include/linux/sunrpc/svcauth_gss.h
    sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations.
  * kbuild: force to build vmlinux if CONFIG_MODVERSION=y
      Makefile
    powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
    powerpc/64s: Don't let DT CPU features set FSCR_DSCR
    drivers/macintosh: Fix memleak in windfarm_pm112 driver
    ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
    ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
    ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
    ARM: tegra: Correct PL310 Auxiliary Control Register initialization
  * kernel/cpu_pm: Fix uninitted local in cpu_pm
      kernel/cpu_pm.c
    alpha: fix memory barriers so that they conform to the specification
    dm crypt: avoid truncating the logical block size
    sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
    sparc32: fix register window handling in genregs32_[gs]et()
    gnss: sirf: fix error return code in sirf_probe()
    pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
    pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
    power: vexpress: add suppress_bind_attrs to true
    igb: Report speed and duplex as unknown when device is runtime suspended
    media: ov5640: fix use of destroyed mutex
    b43_legacy: Fix connection problem with WPA3
    b43: Fix connection problem with WPA3
    b43legacy: Fix case where channel status is corrupted
    Bluetooth: hci_bcm: fix freeing not-requested IRQ
    media: go7007: fix a miss of snd_card_free
    carl9170: remove P2P_GO support
    e1000e: Relax condition to trigger reset for ME workaround
    e1000e: Disable TSO for buffer overrun workaround
  * PCI: Program MPS for RCiEP devices
      drivers/pci/probe.c
    ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
    btrfs: fix wrong file range cleanup after an error filling dealloc range
    btrfs: fix error handling when submitting direct I/O bio
  * PCI: Generalize multi-function power dependency device links
      drivers/pci/quirks.c
  * PCI: Unify ACS quirk desired vs provided checking
      drivers/pci/quirks.c
  * PCI: Make ACS quirk implementations more uniform
      drivers/pci/quirks.c
  * serial: 8250_pci: Move Pericom IDs to pci_ids.h
      include/linux/pci_ids.h
  * PCI: Add Loongson vendor ID
      include/linux/pci_ids.h
  * x86/amd_nb: Add Family 19h PCI IDs
      include/linux/pci_ids.h
  * PCI: vmd: Add device id for VMD device 8086:9A0B
      include/linux/pci_ids.h
  * PCI: Add Amazon's Annapurna Labs vendor ID
      include/linux/pci_ids.h
  * PCI: Add Genesys Logic, Inc. Vendor ID
      include/linux/pci_ids.h
  * ALSA: lx6464es - add support for LX6464ESe pci express variant
      include/linux/pci_ids.h
  * x86/amd_nb: Add PCI device IDs for family 17h, model 70h
      include/linux/pci_ids.h
  * PCI: mediatek: Add controller support for MT7629
      include/linux/pci_ids.h
  * PCI: Enable NVIDIA HDA controllers
      drivers/pci/quirks.c
      include/linux/pci_ids.h
  * PCI: Add NVIDIA GPU multi-function power dependencies
      drivers/pci/quirks.c
  * PCI: Add Synopsys endpoint EDDA Device ID
      include/linux/pci_ids.h
    misc: pci_endpoint_test: Add support to test PCI EP in AM654x
    misc: pci_endpoint_test: Add the layerscape EP device support
  * PCI: Move Rohm Vendor ID to generic list
      include/linux/pci_ids.h
  * PCI: Move Synopsys HAPS platform device IDs
      drivers/usb/dwc3/dwc3-haps.c
      include/linux/pci_ids.h
  * PCI: add USR vendor id and use it in r8169 and w6692 driver
      include/linux/pci_ids.h
  * x86/amd_nb: Add PCI device IDs for family 17h, model 30h
      include/linux/pci_ids.h
  * hwmon/k10temp, x86/amd_nb: Consolidate shared device IDs
      include/linux/pci_ids.h
  * pci:ipmi: Move IPMI PCI class id defines to pci_ids.h
      include/linux/pci_ids.h
  * PCI: Remove unused NFP32xx IDs
      include/linux/pci_ids.h
  * PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
      drivers/pci/quirks.c
  * PCI: Add ACS quirk for iProc PAXB
      drivers/pci/quirks.c
  * PCI: Avoid FLR for AMD Starship USB 3.0
      drivers/pci/quirks.c
  * PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
      drivers/pci/quirks.c
  * PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
      drivers/pci/quirks.c
  * ext4: fix race between ext4_sync_parent() and rename()
      fs/ext4/fsync.c
  * ext4: fix error pointer dereference
      fs/ext4/xattr.c
  * ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
      fs/ext4/ext4_extents.h
    evm: Fix possible memory leak in evm_calc_hmac_or_hash()
    ima: Directly assign the ima_default_policy pointer to ima_rules
    ima: Fix ima digest hash table key calculation
  * mm: initialize deferred pages with interrupts enabled
      include/linux/mmzone.h
      mm/page_alloc.c
    mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
    btrfs: send: emit file capabilities after chown
    btrfs: include non-missing as a qualifier for the latest_bdev
  * string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
      include/linux/string.h
    platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type
    platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
    platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
  * cpuidle: Fix three reference count leaks
      drivers/cpuidle/sysfs.c
    spi: dw: Return any value retrieved from the dma_transfer callback
    mmc: sdhci-esdhc-imx: fix the mask for tuning start point
    ixgbe: fix signed-integer-overflow warning
    mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
    staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
    mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
    bcache: fix refcount underflow in bcache_device_free()
    MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
  * PCI: Don't disable decoding when mmio_always_on is set
      drivers/pci/probe.c
    macvlan: Skip loopback packets in RX handler
    btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new qgroup
    m68k: mac: Don't call via_flush_cache() on Mac IIfx
    x86/mm: Stop printing BRK addresses
    crypto: stm32/crc32 - fix multi-instance
    crypto: stm32/crc32 - fix run-time self test issue.
    crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
    mips: Add udelay lpj numbers adjustment
    mips: MAAR: Use more precise address mask
    x86/boot: Correct relocation destination on old linkers
    mwifiex: Fix memory corruption in dump_station
    rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
    net/mlx5e: IPoIB, Drop multicast packets that this interface sent
  * veth: Adjust hard_start offset on redirect XDP frames
      drivers/net/veth.c
    md: don't flush workqueue unconditionally in md_open
    mt76: avoid rx reorder buffer overflow
    net: qed*: Reduce RX and TX default ring count when running inside kdump kernel
    wcn36xx: Fix error handling path in 'wcn36xx_probe()'
    ath10k: Remove msdu from idr when management pkt send fails
    nvme: refine the Qemu Identify CNS quirk
    platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and "Portable" chassis-types
    platform/x86: intel-vbtn: Do not advertise switches to userspace if they are not there
    platform/x86: intel-vbtn: Split keymap into buttons and switches parts
    platform/x86: intel-vbtn: Use acpi_evaluate_integer()
    xfs: fix duplicate verification from xfs_qm_dqflush()
    xfs: reset buffer write failure state on successful completion
  * kgdb: Fix spurious true from in_dbg_master()
      include/linux/kgdb.h
    mips: cm: Fix an invalid error code of INTVN_*_ERR
    MIPS: Truncate link address into 32bit for 32bit kernel
    Crypto/chcr: fix for ccm(aes) failed test
    xfs: clean up the error handling in xfs_swap_extents
    powerpc/spufs: fix copy_to_user while atomic
    net: allwinner: Fix use correct return type for ndo_start_xmit()
    media: cec: silence shift wrapping warning in __cec_s_log_addrs()
    net: lpc-enet: fix error return code in lpc_mii_init()
    drivers/perf: hisi: Fix typo in events attribute array
  * sched/core: Fix illegal RCU from offline CPUs
      include/linux/sched/mm.h
      kernel/cpu.c
      kernel/sched/core.c
  * exit: Move preemption fixup up, move blocking operations down
      kernel/exit.c
  * lib/mpi: Fix 64-bit MIPS build with Clang
      lib/mpi/longlong.h
    net: bcmgenet: set Rx mode before starting netif
    selftests/bpf: Fix memory leak in extract_build_id()
    netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
  * audit: fix a net reference leak in audit_list_rules_send()
      kernel/audit.c
      kernel/audit.h
      kernel/auditfilter.c
    Bluetooth: btbcm: Add 2 missing models to subver tables
    MIPS: Make sparse_init() using top-down allocation
    media: platform: fcp: Set appropriate DMA parameters
    media: dvb: return -EREMOTEIO on i2c transfer failure.
  * audit: fix a net reference leak in audit_send_reply()
      kernel/audit.c
    dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
    e1000: Distribute switch variables for initialization
    tools api fs: Make xxx__mountpoint() more scalable
    brcmfmac: fix wrong location to get firmware feature
  * staging: android: ion: use vmap instead of vm_map_ram
      drivers/staging/android/ion/ion_heap.c
    net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss()
  * x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
      include/uapi/linux/kvm.h
    spi: dw: Fix Rx-only DMA transfers
    mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
    batman-adv: Revert "disable ethtool link speed detection when auto negotiation off"
    ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
    btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
    clocksource: dw_apb_timer_of: Fix missing clockevent timers
    clocksource: dw_apb_timer: Make CPU-affiliation being optional
    spi: dw: Enable interrupts in accordance with DMA xfer mode
    kgdb: Prevent infinite recursive entries to the debugger
    kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
  * Bluetooth: Add SCO fallback for invalid LMP parameters error
      net/bluetooth/hci_event.c
    MIPS: Loongson: Build ATI Radeon GPU driver as module
    ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
  * arm64: insn: Fix two bugs in encoding 32-bit logical immediates
      arch/arm64/kernel/insn.c
    spi: dw: Zero DMA Tx and Rx configurations on stack
  * arm64: cacheflush: Fix KGDB trap detection
      arch/arm64/include/asm/cacheflush.h
    efi/libstub/x86: Work around LLVM ELF quirk build regression
    net: ena: fix error returning in ena_com_get_hash_function()
    net: atlantic: make hw_get_regs optional
    spi: pxa2xx: Apply CS clk quirk to BXT
    objtool: Ignore empty alternatives
    media: si2157: Better check for running tuner in init
  * crypto: ccp -- don't "select" CONFIG_DMADEVICES
      drivers/crypto/ccp/Kconfig
    drm: bridge: adv7511: Extend list of audio sample rates
    ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
  * KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception
      arch/arm64/include/asm/kvm_host.h
    xen/pvcalls-back: test for errors when calling backend_connect()
    mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
    ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
    mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
    agp/intel: Reinforce the barrier after GTT updates
  * perf: Add cond_resched() to task_function_call()
      kernel/events/core.c
  * fat: don't allow to mount if the FAT length == 0
      fs/fat/inode.c
  * mm/slub: fix a memory leak in sysfs_slab_add()
      mm/slub.c
    drm/vkms: Hold gem object while still in-use
  * Smack: slab-out-of-bounds in vsscanf
      security/smack/smackfs.c
    ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
    ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
    ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
    ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
    scsi: megaraid_sas: TM command refire leads to controller firmware crash
  * KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
      arch/arm64/include/asm/kvm_host.h
    KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
    KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
    KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
    KVM: nSVM: leave ASID aside in copy_vmcb_control_area
    KVM: nSVM: fix condition for filtering async PF
    video: fbdev: w100fb: Fix a potential double free.
  * proc: Use new_inode not new_inode_pseudo
      fs/proc/inode.c
      fs/proc/self.c
      fs/proc/thread_self.c
  * ovl: initialize error in ovl_copy_xattr
      fs/overlayfs/copy_up.c
    selftests/net: in rxtimestamp getopt_long needs terminating null entry
    crypto: virtio: Fix dest length calculation in __virtio_crypto_skcipher_do_req()
    crypto: virtio: Fix src/dst scatterlist calculation in __virtio_crypto_skcipher_do_req()
    crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req()
    spi: pxa2xx: Fix runtime PM ref imbalance on probe error
    spi: pxa2xx: Balance runtime PM enable/disable on error
    spi: bcm2835: Fix controller unregister order
    spi: pxa2xx: Fix controller unregister order
  * spi: Fix controller unregister order
      drivers/spi/spi.c
  * spi: No need to assign dummy value in spi_unregister_controller()
      drivers/spi/spi.c
    x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
    x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced IBRS.
    x86/speculation: Add support for STIBP always-on preferred mode
    x86/speculation: Change misspelled STIPB to STIBP
    KVM: x86: only do L1TF workaround on affected processors
    KVM: x86/mmu: Consolidate "is MMIO SPTE" code
    kvm: x86: Fix L1TF mitigation for shadow MMU
  * KVM: x86: Fix APIC page invalidation race
      include/linux/kvm_host.h
  * x86/{mce,mm}: Unmap the entire page if the whole page is affected and poisoned
      include/linux/set_memory.h
  * ALSA: pcm: disallow linking stream to itself
      sound/core/pcm_native.c
    crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when ndevlist is fully iterated
  * PM: runtime: clk: Fix clk_pm_runtime_get() error path
      drivers/clk/clk.c
    spi: bcm-qspi: when tx/rx buffer is NULL set to 0
    spi: bcm2835aux: Fix controller unregister order
    spi: dw: Fix controller unregister order
    nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
  * cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
      fs/fs-writeback.c
    ACPI: PM: Avoid using power resources if there are none for D0
    ACPI: GED: add support for _Exx / _Lxx handler methods
    ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
    ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
  * ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt Dock
      sound/usb/quirks-table.h
  * ALSA: usb-audio: Fix inconsistent card PM state after resume
      sound/usb/card.c
      sound/usb/usbaudio.h
    ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
    ALSA: es1688: Add the missed snd_card_free()
    efi/efivars: Add missing kobject_put() in sysfs entry creation error path
    x86/reboot/quirks: Add MacBook6,1 reboot quirk
    x86/speculation: Prevent rogue cross-process SSBD shutdown
    x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
    x86_64: Fix jiffies ODR violation
    btrfs: tree-checker: Check level for leaves and nodes
  * aio: fix async fsync creds
      fs/aio.c
  * mm: add kvfree_sensitive() for freeing sensitive data objects
      include/linux/mm.h
      mm/util.c
      security/keys/internal.h
      security/keys/keyctl.c
    perf probe: Accept the instance number of kretprobe event
    x86/cpu/amd: Make erratum #1054 a legacy erratum
    RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
    ath9k_htc: Silence undersized packet warnings
    powerpc/xive: Clear the page tables for the ESB IO mapping
    drivers/net/ibmvnic: Update VNIC protocol version reporting
    Input: synaptics - add a second working PNP_ID for Lenovo T470s
  * sched/fair: Don't NUMA balance for kthreads
      kernel/sched/fair.c
    ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
    Input: mms114 - fix handling of mms345l
    crypto: talitos - fix ECB and CBC algs ivsize
    btrfs: Detect unbalanced tree with empty leaf before crashing btree operations
    btrfs: merge btrfs_find_device and find_device
  * lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()
      lib/strncpy_from_user.c
      lib/strnlen_user.c
    x86: uaccess: Inhibit speculation past access_ok() in user_access_begin()
    arch/openrisc: Fix issues with access_ok()
    Fix 'acccess_ok()' on alpha and SH
  * make 'user_access_begin()' do 'access_ok()'
      include/linux/uaccess.h
      kernel/compat.c
      kernel/exit.c
      lib/strncpy_from_user.c
      lib/strnlen_user.c
    selftests: bpf: fix use of undeclared RET_IF macro
  * tun: correct header offsets in napi frags mode
      drivers/net/tun.c
    vxlan: Avoid infinite loop when suppressing NS messages with invalid options
  * bridge: Avoid infinite loop when suppressing NS messages with invalid options
      net/bridge/br_arp_nd_proxy.c
    net_failover: fixed rollback in net_failover_open()
  * ipv6: fix IPV6_ADDRFORM operation logic
      net/ipv6/ipv6_sockglue.c
  * writeback: Drop I_DIRTY_TIME_EXPIRE
      fs/ext4/inode.c
      fs/fs-writeback.c
      include/linux/fs.h
      include/trace/events/writeback.h
  * 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
  * Revert "writeback: Avoid skipping inode writeback"
      fs/fs-writeback.c
      include/linux/fs.h
    ANDROID: gki_defconfig: increase vbus_draw to 500mA
  * fscrypt: remove stale definition
      include/linux/fscrypt.h
  * fs-verity: remove unnecessary extern keywords
      fs/verity/fsverity_private.h
      include/linux/fsverity.h
  * fs-verity: fix all kerneldoc warnings
      fs/verity/enable.c
      fs/verity/fsverity_private.h
      fs/verity/measure.c
      fs/verity/open.c
      fs/verity/signature.c
      fs/verity/verify.c
      include/linux/fsverity.h
  * fscrypt: add support for IV_INO_LBLK_32 policies
      fs/crypto/crypto.c
      fs/crypto/fscrypt_private.h
      fs/crypto/keyring.c
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      include/uapi/linux/fscrypt.h
  * fscrypt: make test_dummy_encryption use v2 by default
      fs/crypto/policy.c
  * fscrypt: support test_dummy_encryption=v2
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      fs/ext4/ext4.h
      fs/ext4/super.c
      fs/ext4/sysfs.c
      fs/f2fs/f2fs.h
      fs/f2fs/super.c
      fs/f2fs/sysfs.c
      include/linux/fscrypt.h
  * fscrypt: add fscrypt_add_test_dummy_key()
      fs/crypto/fscrypt_private.h
      fs/crypto/keyring.c
  * linux/parser.h: add include guards
      include/linux/parser.h
  * fscrypt: remove unnecessary extern keywords
      fs/crypto/fscrypt_private.h
      include/linux/fscrypt.h
  * fscrypt: name all function parameters
      include/linux/fscrypt.h
  * fscrypt: fix all kerneldoc warnings
      fs/crypto/crypto.c
      fs/crypto/fname.c
      fs/crypto/fscrypt_private.h
      fs/crypto/hooks.c
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      include/linux/fscrypt.h
    ANDROID: Update the ABI
  * ANDROID: GKI: power: power-supply: Add POWER_SUPPLY_PROP_CHARGER_STATUS property
      drivers/power/supply/power_supply_sysfs.c
      include/linux/power_supply.h
  * ANDROID: GKI: add dev to usb_gsi_request
      include/linux/usb/gadget.h
  * ANDROID: GKI: dma-buf: add dent_count to dma_buf
      include/linux/dma-buf.h
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
    ANDROID: Update the ABI xml and whitelist
    ANDROID: GKI: update whitelist
  * ANDROID: extcon: Export symbol of `extcon_get_edev_name`
      drivers/extcon/extcon.c
      include/linux/extcon.h
  * ANDROID: kbuild: merge more sections with LTO
      scripts/module-lto.lds.S
  * UPSTREAM: timekeeping/vsyscall: Update VDSO data unconditionally
      arch/arm64/include/asm/vdso/vsyscall.h
      include/asm-generic/vdso/vsyscall.h
      kernel/time/vsyscall.c
  * ANDROID: GKI: Revert "genetlink: disallow subscribing to unknown mcast groups"
      net/netlink/genetlink.c
  * BACKPORT: usb: musb: Add support for MediaTek musb controller
      drivers/usb/musb/Kconfig
    UPSTREAM: usb: musb: Add musb_clearb/w() interface
    UPSTREAM: usb: musb: Add noirq type of dma create interface
    UPSTREAM: usb: musb: Add get/set toggle hooks
    UPSTREAM: dt-bindings: usb: musb: Add support for MediaTek musb controller
    Merge 4.19.128 into android-4.19-stable
  * FROMGIT: driver core: Remove unnecessary is_fwnode_dev variable in device_add()
      drivers/base/core.c
  * FROMGIT: driver core: Remove check in driver_deferred_probe_force_trigger()
      drivers/base/dd.c
  * FROMGIT: of: platform: Batch fwnode parsing when adding all top level devices
      drivers/of/platform.c
  * FROMGIT: BACKPORT: driver core: fw_devlink: Add support for batching fwnode parsing
      drivers/base/base.h
      drivers/base/core.c
      drivers/base/dd.c
      include/linux/fwnode.h
  * BACKPORT: driver core: Look for waiting consumers only for a fwnode's primary device
      drivers/base/core.c
  * BACKPORT: driver core: Add device links from fwnode only for the primary device
      drivers/base/core.c
Linux 4.19.128
    Revert "net/mlx5: Annotate mutex destroy for root ns"
  * uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly aligned
      kernel/events/uprobes.c
    x86/speculation: Add Ivy Bridge to affected list
    x86/speculation: Add SRBDS vulnerability and mitigation documentation
  * x86/speculation: Add Special Register Buffer Data Sampling (SRBDS) mitigation
      drivers/base/cpu.c
    x86/cpu: Add 'table' argument to cpu_matches()
  * x86/cpu: Add a steppings field to struct x86_cpu_id
      include/linux/mod_devicetable.h
  * nvmem: qfprom: remove incorrect write support
      drivers/nvmem/qfprom.c
    CDC-ACM: heed quirk also in error handling
    staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
    tty: hvc_console, fix crashes on parallel open/close
    vt: keyboard: avoid signed integer overflow in k_ascii
    usb: musb: Fix runtime PM imbalance on error
    usb: musb: start session in resume for host port
    iio: vcnl4000: Fix i2c swapped word reading.
    USB: serial: option: add Telit LE910C1-EUX compositions
    USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
    USB: serial: qcserial: add DW5816e QDL support
  * net: check untrusted gso_size at kernel entry
      include/linux/virtio_net.h
    vsock: fix timeout in vsock_accept()
    NFC: st21nfca: add missed kfree_skb() in an error path
    net: usb: qmi_wwan: add Telit LE910C1-EUX composition
  * l2tp: do not use inet_hash()/inet_unhash()
      net/l2tp/l2tp_ip.c
      net/l2tp/l2tp_ip6.c
  * l2tp: add sk_family checks to l2tp_validate_socket
      net/l2tp/l2tp_core.c
  * devinet: fix memleak in inetdev_init()
      net/ipv4/devinet.c
  * Revert "ANDROID: Remove default y on BRIDGE_IGMP_SNOOPING"
      net/bridge/Kconfig
    ANDROID: Update the ABI xml and whitelist
    ANDROID: GKI: update whitelist
  * ANDROID: arch: arm64: vdso: export the symbols for time()
      arch/arm64/include/asm/vdso/compat_gettimeofday.h
      arch/arm64/include/asm/vdso/gettimeofday.h
      arch/arm64/kernel/vdso/vdso.lds.S
      arch/arm64/kernel/vdso/vgettimeofday.c
      arch/arm64/kernel/vdso32/vdso.lds.S
      arch/arm64/kernel/vdso32/vgettimeofday.c
  * ANDROID: Incremental fs: Remove dependency on PKCS7_MESSAGE_PARSER
      fs/incfs/Kconfig
      fs/incfs/integrity.c
    ANDROID: dm-bow: Add block_size option
  * f2fs: attach IO flags to the missing cases
      fs/f2fs/data.c
  * f2fs: add node_io_flag for bio flags likewise data_io_flag
      fs/f2fs/data.c
      fs/f2fs/f2fs.h
      fs/f2fs/sysfs.c
    f2fs: remove unused parameter of f2fs_put_rpages_mapping()
  * f2fs: handle readonly filesystem in f2fs_ioc_shutdown()
      fs/f2fs/file.c
  * f2fs: avoid utf8_strncasecmp() with unstable name
      fs/f2fs/dir.c
  * f2fs: don't return vmalloc() memory from f2fs_kmalloc()
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/node.c
      fs/f2fs/super.c
    ANDROID: GKI: set CONFIG_BLK_DEV_LOOP_MIN_COUNT to 16
  * ANDROID: Incremental fs: Cache successful hash calculations
      fs/incfs/data_mgmt.c
      fs/incfs/data_mgmt.h
      fs/incfs/vfs.c
  * ANDROID: Incremental fs: Fix four error-path bugs
      fs/incfs/data_mgmt.c
      fs/incfs/data_mgmt.h
    Merge 4.19.127 into android-4.19-stable
Linux 4.19.127
    net: smsc911x: Fix runtime PM imbalance on error
    net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
    net/ethernet/freescale: rework quiesce/activate for ucc_geth
    null_blk: return error for invalid zone size
    s390/mm: fix set_huge_pte_at() for empty ptes
  * drm/edid: Add Oculus Rift S to non-desktop list
      drivers/gpu/drm/drm_edid.c
    net: bmac: Fix read of MAC address from ROM
    x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
    i2c: altera: Fix race between xfer_msg and isr thread
    evm: Fix RCU list related warnings
    ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
    ARC: Fix ICCM & DCCM runtime size checks
    s390/ftrace: save traced function caller
    spi: dw: use "smp_mb()" to avoid sending spi data error
    powerpc/powernv: Avoid re-registration of imc debugfs directory
    scsi: hisi_sas: Check sas_port before using it
    drm/i915: fix port checks for MST support on gen >= 11
    airo: Fix read overflows sending packets
    net: dsa: mt7530: set CPU port to fallback mode
  * scsi: ufs: Release clock if DMA map fails
      drivers/scsi/ufs/ufshcd.c
  * mmc: fix compilation of user API
      include/uapi/linux/mmc/ioctl.h
    kernel/relay.c: handle alloc_percpu returning NULL in relay_open
    p54usb: add AirVasT USB stick device-id
    HID: i2c-hid: add Schneider SCL142ALM to descriptor override
  * HID: sony: Fix for broken buttons on DS3 USB dongles
      drivers/hid/hid-sony.c
  * mm: Fix mremap not considering huge pmd devmap
      mm/mremap.c
    libnvdimm: Fix endian conversion issues 
  * Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race window"
      kernel/cgroup/rstat.c
  * f2fs: fix retry logic in f2fs_write_cache_pages()
      fs/f2fs/data.c
    ANDROID: Update ABI representation
    Merge 4.19.126 into android-4.19-stable
Linux 4.19.126
  * mm/vmalloc.c: don't dereference possible NULL pointer in __vunmap()
      mm/vmalloc.c
  * netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
      include/linux/netfilter/nf_conntrack_pptp.h
      net/netfilter/nf_conntrack_pptp.c
  * bonding: Fix reference count leak in bond_sysfs_slave_add.
      drivers/net/bonding/bond_sysfs_slave.c
    crypto: chelsio/chtls: properly set tp->lsndtime
    qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
    xsk: Add overflow check for u64 division, stored into u32
    bnxt_en: Fix accumulation of bp->net_stats_prev.
    esp6: get the right proto for transport mode in esp6_gso_encap
  * netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
      include/linux/netfilter/nf_conntrack_pptp.h
      net/ipv4/netfilter/nf_nat_pptp.c
      net/netfilter/nf_conntrack_pptp.c
    netfilter: nfnetlink_cthelper: unbreak userspace helper support
    netfilter: ipset: Fix subcounter update skip
    netfilter: nft_reject_bridge: enable reject with bridge vlan
  * ip_vti: receive ipip packet by calling ip_tunnel_rcv
      net/ipv4/ip_vti.c
  * vti4: eliminated some duplicate code.
      net/ipv4/ip_vti.c
  * xfrm: fix error in comment
      include/uapi/linux/xfrm.h
  * xfrm: fix a NULL-ptr deref in xfrm_local_error
      net/xfrm/xfrm_output.c
  * xfrm: fix a warning in xfrm_policy_insert_list
      net/xfrm/xfrm_policy.c
  * xfrm interface: fix oops when deleting a x-netns interface
      net/xfrm/xfrm_interface.c
  * xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
      net/xfrm/xfrm_output.c
  * xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
      net/xfrm/xfrm_input.c
    copy_xstate_to_kernel(): don't leave parts of destination uninitialized
    x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
    mac80211: mesh: fix discovery timer re-arming issue / crash
  * RDMA/core: Fix double destruction of uobject
      include/rdma/uverbs_std_types.h
    mmc: core: Fix recursive locking issue in CQE recovery path
    parisc: Fix kernel panic in mem_init()
  * iommu: Fix reference count leak in iommu_group_alloc.
      drivers/iommu/iommu.c
  * include/asm-generic/topology.h: guard cpumask_of_node() macro argument
      include/asm-generic/topology.h
  * fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
      fs/binfmt_elf.c
  * mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
      include/linux/mm.h
    IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
    libceph: ignore pool overlay and cache logic on redirects
    ALSA: hda/realtek - Add new codec supported for ALC287
  * ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
      sound/usb/mixer_maps.c
      sound/usb/quirks-table.h
  * exec: Always set cap_ambient in cap_bprm_set_creds
      security/commoncap.c
  * ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
      sound/usb/mixer.c
    ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
  * ALSA: hwdep: fix a left shifting 1 by 31 UB bug
      sound/core/hwdep.c
    RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
    mmc: block: Fix use-after-free issue for rpmb
    ARM: dts: bcm: HR2: Fix PPI interrupt types
    ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
    ARM: dts/imx6q-bx50v3: Set display interface clock parents
    IB/qib: Call kobject_put() when kobject_init_and_add() fails
    gpio: exar: Fix bad handling for ida_simple_get error path
    ARM: uaccess: fix DACR mismatch with nested exceptions
    ARM: uaccess: integrate uaccess_save and uaccess_restore
    ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
    ARM: 8843/1: use unified assembler in headers
    ARM: 8970/1: decompressor: increase tag size
    Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
    Input: synaptics-rmi4 - really fix attn_data use-after-free
    Input: i8042 - add ThinkPad S230u to i8042 reset list
    Input: dlink-dir685-touchkeys - fix a typo in driver name
  * Input: xpad - add custom init packet for Xbox One S controllers
      drivers/input/joystick/xpad.c
  * Input: evdev - call input_flush_device() on release(), not flush()
      drivers/input/evdev.c
    Input: usbtouchscreen - add support for BonXeon TP
    samples: bpf: Fix build error
    cifs: Fix null pointer check in cifs_read
    riscv: stacktrace: Fix undefined reference to `walk_stackframe'
    IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
  * net: freescale: select CONFIG_FIXED_PHY where needed
      drivers/net/ethernet/freescale/Kconfig
      drivers/net/ethernet/freescale/dpaa/Kconfig
    usb: gadget: legacy: fix redundant initialization warnings
    usb: dwc3: pci: Enable extcon driver for Intel Merrifield
    cachefiles: Fix race between read_waiter and read_copier involving op->to_do
    gfs2: move privileged user check to gfs2_quota_lock_check
    net: microchip: encx24j600: add missed kthread_stop
  * ALSA: usb-audio: add mapping for ASRock TRX40 Creator
      sound/usb/mixer_maps.c
      sound/usb/quirks-table.h
    gpio: tegra: mask GPIO IRQs during IRQ shutdown
    ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
    ARM: dts: rockchip: swap clock-names of gpu nodes
    arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
    arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
    ARM: dts: rockchip: fix phy nodename for rk3228-evb
    mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails
    net/mlx4_core: fix a memory leak bug.
    net: sun: fix missing release regions in cas_init_one().
    net/mlx5: Annotate mutex destroy for root ns
    net/mlx5e: Update netdev txq on completions during closure
  * sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed
      net/sctp/sm_statefuns.c
  * sctp: Don't add the shutdown timer if its already been added
      net/sctp/sm_sideeffect.c
  * r8152: support additional Microsoft Surface Ethernet Adapter variant
      drivers/net/usb/cdc_ether.c
      drivers/net/usb/r8152.c
  * net sched: fix reporting the first-time use timestamp
      include/net/act_api.h
  * net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"
      net/ipv4/route.c
  * net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
      net/qrtr/qrtr.c
  * net/mlx5: Add command entry handling completion
      include/linux/mlx5/driver.h
    net: ipip: fix wrong address family in init error path
  * net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
      net/ipv4/inet_connection_sock.c
  * __netif_receive_skb_core: pass skb by reference
      net/core/dev.c
    net: dsa: mt7530: fix roaming from DSA user ports
    dpaa_eth: fix usage as DSA master, try 3
    ax25: fix setsockopt(SO_BINDTODEVICE)
  * ANDROID: modules: fix lockprove warning
      kernel/module.c
    FROMGIT: USB: dummy-hcd: use configurable endpoint naming scheme
    UPSTREAM: usb: raw-gadget: fix null-ptr-deref when reenabling endpoints
    UPSTREAM: usb: raw-gadget: documentation updates
  * UPSTREAM: usb: raw-gadget: support stalling/halting/wedging endpoints
      include/uapi/linux/usb/raw_gadget.h
  * UPSTREAM: usb: raw-gadget: fix gadget endpoint selection
      include/uapi/linux/usb/raw_gadget.h
  * UPSTREAM: usb: raw-gadget: improve uapi headers comments
      include/uapi/linux/usb/raw_gadget.h
    UPSTREAM: usb: raw-gadget: fix return value of ep read ioctls
    UPSTREAM: usb: raw-gadget: fix raw_event_queue_fetch locking
    UPSTREAM: usb: raw-gadget: Fix copy_to/from_user() checks
  * f2fs: fix wrong discard space
      fs/f2fs/segment.c
    f2fs: compress: don't compress any datas after cp stop
  * f2fs: remove unneeded return value of __insert_discard_tree()
      fs/f2fs/segment.c
  * f2fs: fix wrong value of tracepoint parameter
      fs/f2fs/namei.c
  * f2fs: protect new segment allocation in expand_inode_data
      fs/f2fs/file.c
  * f2fs: code cleanup by removing ifdef macro surrounding
      fs/f2fs/file.c
      fs/f2fs/namei.c
      fs/f2fs/xattr.h
  * writeback: Avoid skipping inode writeback
      fs/fs-writeback.c
      include/linux/fs.h
    ANDROID: GKI: Update the ABI
    ANDROID: GKI: update whitelist
  * ANDROID: GKI: support mm_event for FS/IO/UFS path
      include/linux/blk_types.h
      include/linux/mm_event.h
      mm/mm_event.c
  * ANDROID: net: bpf: permit redirect from ingress L3 to egress L2 devices at near max mtu
      net/core/filter.c
  * FROMGIT: driver core: Update device link status correctly for SYNC_STATE_ONLY links
      drivers/base/core.c
  * UPSTREAM: driver core: Fix handling of SYNC_STATE_ONLY + STATELESS device links
      drivers/base/core.c
  * BACKPORT: driver core: Fix SYNC_STATE_ONLY device link implementation
      drivers/base/core.c
    ANDROID: Bulk update the ABI xml and qcom whitelist
  * Revert "ANDROID: Incremental fs: Avoid continually recalculating hashes"
      fs/incfs/data_mgmt.c
  * f2fs: avoid inifinite loop to wait for flushing node pages at cp_error
      fs/f2fs/node.c
    f2fs: compress: fix zstd data corruption
  * f2fs: add compressed/gc data read IO stat
      fs/f2fs/data.c
      fs/f2fs/f2fs.h
      fs/f2fs/gc.c
      fs/f2fs/sysfs.c
      include/trace/events/f2fs.h
  * f2fs: fix potential use-after-free issue
      fs/f2fs/data.c
  * f2fs: compress: don't handle non-compressed data in workqueue
      fs/f2fs/data.c
  * f2fs: remove redundant assignment to variable err
      fs/f2fs/namei.c
  * f2fs: refactor resize_fs to avoid meta updates in progress
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
      fs/f2fs/gc.c
      fs/f2fs/super.c
      include/trace/events/f2fs.h
  * f2fs: use round_up to enhance calculation
      fs/f2fs/file.c
  * f2fs: introduce F2FS_IOC_RESERVE_COMPRESS_BLOCKS
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: Avoid double lock for cp_rwsem during checkpoint
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/node.c
  * f2fs: report delalloc reserve as non-free in statfs for project quota
      fs/f2fs/super.c
  * f2fs: Fix wrong stub helper update_sit_info
      fs/f2fs/f2fs.h
    f2fs: compress: let lz4 compressor handle output buffer budget properly
  * f2fs: remove blk_plugging in block_operations
      fs/f2fs/checkpoint.c
  * f2fs: introduce F2FS_IOC_RELEASE_COMPRESS_BLOCKS
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: shrink spinlock coverage
      fs/f2fs/node.c
      fs/f2fs/node.h
  * f2fs: correctly fix the parent inode number during fsync()
      fs/f2fs/file.c
  * f2fs: introduce mempool for {,de}compress intermediate page allocation
      fs/f2fs/f2fs.h
      fs/f2fs/super.c
  * f2fs: introduce f2fs_bmap_compress()
      fs/f2fs/data.c
  * f2fs: support fiemap on compressed inode
      fs/f2fs/data.c
  * f2fs: support partial truncation on compressed inode
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: remove redundant compress inode check
      fs/f2fs/f2fs.h
  * f2fs: use strcmp() in parse_options()
      fs/f2fs/super.c
  * f2fs: Use the correct style for SPDX License Identifier
      fs/f2fs/acl.h
      fs/f2fs/f2fs.h
      fs/f2fs/gc.h
      fs/f2fs/node.h
      fs/f2fs/segment.h
      fs/f2fs/trace.h
      fs/f2fs/xattr.h

Change-Id: I2a678a32a4d72309fd00887a7ac56241293304a9
Signed-off-by: lucaswei <lucaswei@google.com>
2020-10-27 15:33:35 +08:00
Greg Kroah-Hartman
b96549a28b Merge 4.19.130 into android-4.19-stable
Changes in 4.19.130
	power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
	clk: sunxi: Fix incorrect usage of round_down()
	ASoC: tegra: tegra_wm8903: Support nvidia, headset property
	i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
	iio: pressure: bmp280: Tolerate IRQ before registering
	remoteproc: Fix IDR initialisation in rproc_alloc()
	clk: qcom: msm8916: Fix the address location of pll->config_reg
	backlight: lp855x: Ensure regulators are disabled on probe failure
	ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
	ARM: integrator: Add some Kconfig selections
	scsi: qedi: Check for buffer overflow in qedi_set_path()
	ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
	ALSA: isa/wavefront: prevent out of bounds write in ioctl
	PCI: Allow pci_resize_resource() for devices on root bus
	scsi: qla2xxx: Fix issue with adapter's stopping state
	iio: bmp280: fix compensation of humidity
	f2fs: report delalloc reserve as non-free in statfs for project quota
	i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
	clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
	usblp: poison URBs upon disconnect
	serial: 8250: Fix max baud limit in generic 8250 port
	dm mpath: switch paths in dm_blk_ioctl() code path
	PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only register
	ps3disk: use the default segment boundary
	vfio/pci: fix memory leaks in alloc_perm_bits()
	RDMA/mlx5: Add init2init as a modify command
	m68k/PCI: Fix a memory leak in an error handling path
	gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration
	mfd: wm8994: Fix driver operation if loaded as modules
	scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
	clk: clk-flexgen: fix clock-critical handling
	powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run
	nfsd: Fix svc_xprt refcnt leak when setup callback client failed
	PCI: vmd: Filter resource type bits from shadow register
	powerpc/crashkernel: Take "mem=" option into account
	pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
	yam: fix possible memory leak in yam_init_driver
	NTB: ntb_pingpong: Choose doorbells based on port number
	NTB: Fix the default port and peer numbers for legacy drivers
	mksysmap: Fix the mismatch of '.L' symbols in System.map
	apparmor: fix introspection of of task mode for unconfined tasks
	apparmor: check/put label on apparmor_sk_clone_security()
	ASoC: meson: add missing free_irq() in error path
	scsi: sr: Fix sr_probe() missing deallocate of device minor
	scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
	apparmor: fix nnp subset test for unconfined
	x86/purgatory: Disable various profiling and sanitizing options
	staging: greybus: fix a missing-check bug in gb_lights_light_config()
	arm64: dts: mt8173: fix unit name warnings
	scsi: qedi: Do not flush offload work if ARP not resolved
	ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
	gpio: dwapb: Append MODULE_ALIAS for platform driver
	scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing
	pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
	firmware: qcom_scm: fix bogous abuse of dma-direct internals
	staging: gasket: Fix mapping refcnt leak when put attribute fails
	staging: gasket: Fix mapping refcnt leak when register/store fails
	ALSA: usb-audio: Improve frames size computation
	ALSA: usb-audio: Fix racy list management in output queue
	s390/qdio: put thinint indicator after early error
	tty: hvc: Fix data abort due to race in hvc_open
	slimbus: ngd: get drvdata from correct device
	thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
	usb: dwc3: gadget: Properly handle failed kick_transfer
	staging: sm750fb: add missing case while setting FB_VISUAL
	PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
	i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
	serial: amba-pl011: Make sure we initialize the port.lock spinlock
	drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish
	PCI: rcar: Fix incorrect programming of OB windows
	PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
	scsi: qla2xxx: Fix warning after FC target reset
	power: supply: lp8788: Fix an error handling path in 'lp8788_charger_probe()'
	power: supply: smb347-charger: IRQSTAT_D is volatile
	scsi: mpt3sas: Fix double free warnings
	pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
	dlm: remove BUG() before panic()
	clk: ti: composite: fix memory leak
	PCI: Fix pci_register_host_bridge() device_register() error handling
	powerpc/64: Don't initialise init_task->thread.regs
	tty: n_gsm: Fix SOF skipping
	tty: n_gsm: Fix waking up upper tty layer when room available
	HID: Add quirks for Trust Panora Graphic Tablet
	ipmi: use vzalloc instead of kmalloc for user creation
	powerpc/pseries/ras: Fix FWNMI_VALID off by one
	powerpc/ps3: Fix kexec shutdown hang
	vfio-pci: Mask cap zero
	usb/ohci-platform: Fix a warning when hibernating
	drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
	ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
	USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
	tty: n_gsm: Fix bogus i++ in gsm_data_kick
	fpga: dfl: afu: Corrected error handling levels
	clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
	scsi: target: tcmu: Userspace must not complete queued commands
	arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
	powerpc/64s/pgtable: fix an undefined behaviour
	dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
	PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
	PCI: dwc: Fix inner MSI IRQ domain registration
	IB/cma: Fix ports memory leak in cma_configfs
	watchdog: da9062: No need to ping manually before setting timeout
	usb: dwc2: gadget: move gadget resume after the core is in L0 state
	USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke
	usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
	usb: gadget: fix potential double-free in m66592_probe.
	usb: gadget: Fix issue with config_ep_by_speed function
	RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
	x86/apic: Make TSC deadline timer detection message visible
	ASoC: fix incomplete error-handling in img_i2s_in_probe.
	scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
	clk: bcm2835: Fix return type of bcm2835_register_gate
	scsi: ufs-qcom: Fix scheduling while atomic issue
	KVM: PPC: Book3S HV: Ignore kmemleak false positives
	clk: sprd: return correct type of value for _sprd_pll_recalc_rate
	net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
	NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
	of: Fix a refcounting bug in __of_attach_node_sysfs()
	powerpc/4xx: Don't unmap NULL mbase
	extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
	ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
	vfio/mdev: Fix reference count leak in add_mdev_supported_type
	rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
	openrisc: Fix issue with argument clobbering for clone/fork
	gfs2: Allow lock_nolock mount to specify jid=X
	scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
	scsi: ufs: Don't update urgent bkops level when toggling auto bkops
	pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
	pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
	crypto: omap-sham - add proper load balancing support for multicore
	geneve: change from tx_error to tx_dropped on missing metadata
	lib/zlib: remove outdated and incorrect pre-increment optimization
	include/linux/bitops.h: avoid clang shift-count-overflow warnings
	elfnote: mark all .note sections SHF_ALLOC
	selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
	blktrace: use errno instead of bi_status
	blktrace: fix endianness in get_pdu_int()
	blktrace: fix endianness for blk_log_remap()
	gfs2: fix use-after-free on transaction ail lists
	ntb_perf: pass correct struct device to dma_alloc_coherent
	ntb_tool: pass correct struct device to dma_alloc_coherent
	NTB: ntb_tool: reading the link file should not end in a NULL byte
	NTB: Revert the change to use the NTB device dev for DMA allocations
	NTB: perf: Don't require one more memory window than number of peers
	NTB: perf: Fix support for hardware that doesn't have port numbers
	NTB: perf: Fix race condition when run with ntb_test
	NTB: ntb_test: Fix bug when counting remote files
	drivers/perf: hisi: Fix wrong value for all counters enable
	selftests/net: in timestamping, strncpy needs to preserve null byte
	afs: Fix memory leak in afs_put_sysnames()
	ASoC: core: only convert non DPCM link to DPCM link
	ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
	ASoC: rt5645: Add platform-data for Asus T101HA
	drm/sun4i: hdmi ddc clk: Fix size of m divider
	scsi: acornscsi: Fix an error handling path in acornscsi_probe()
	x86/idt: Keep spurious entries unset in system_vectors
	net/filter: Permit reading NET in load_bytes_relative when MAC not set
	xdp: Fix xsk_generic_xmit errno
	usb/xhci-plat: Set PM runtime as active on resume
	usb: host: ehci-platform: add a quirk to avoid stuck
	usb/ehci-platform: Set PM runtime as active on resume
	perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events()
	ext4: stop overwrite the errcode in ext4_setup_super
	bcache: fix potential deadlock problem in btree_gc_coalesce
	afs: Fix non-setting of mtime when writing into mmap
	afs: afs_write_end() should change i_size under the right lock
	block: Fix use-after-free in blkdev_get()
	arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
	libata: Use per port sync for detach
	drm: encoder_slave: fix refcouting error for modules
	drm/dp_mst: Reformat drm_dp_check_act_status() a bit
	drm/qxl: Use correct notify port address when creating cursor ring
	drm/amdgpu: Replace invalid device ID with a valid device ID
	selinux: fix double free
	ext4: fix partial cluster initialization when splitting extent
	ext4: avoid race conditions when remounting with options that change dax
	drm/dp_mst: Increase ACT retry timeout to 3s
	x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
	block: nr_sects_write(): Disable preemption on seqcount write
	mtd: rawnand: Pass a nand_chip object to nand_scan()
	mtd: rawnand: Pass a nand_chip object to nand_release()
	mtd: rawnand: diskonchip: Fix the probe error path
	mtd: rawnand: sharpsl: Fix the probe error path
	mtd: rawnand: xway: Fix the probe error path
	mtd: rawnand: orion: Fix the probe error path
	mtd: rawnand: oxnas: Add of_node_put()
	mtd: rawnand: oxnas: Fix the probe error path
	mtd: rawnand: socrates: Fix the probe error path
	mtd: rawnand: plat_nand: Fix the probe error path
	mtd: rawnand: mtk: Fix the probe error path
	mtd: rawnand: tmio: Fix the probe error path
	s390: fix syscall_get_error for compat processes
	drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
	drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
	crypto: algif_skcipher - Cap recv SG list at ctx->used
	crypto: algboss - don't wait during notifier callback
	kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
	e1000e: Do not wake up the system via WOL if device wakeup is disabled
	net: octeon: mgmt: Repair filling of RX ring
	kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
	sched/rt, net: Use CONFIG_PREEMPTION.patch
	net: core: device_rename: Use rwsem instead of a seqcount
	Revert "dpaa_eth: fix usage as DSA master, try 3"
	md: add feature flag MD_FEATURE_RAID0_LAYOUT
	kvm: x86: Move kvm_set_mmio_spte_mask() from x86.c to mmu.c
	kvm: x86: Fix reserved bits related calculation errors caused by MKTME
	KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
	Linux 4.19.130

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8fff23470852b747c3d75461b45f9d77460062d3
2020-06-27 09:50:13 +02:00
Pawel Laszczak
483269952a usb: gadget: Fix issue with config_ep_by_speed function
[ Upstream commit 5d363120aa548ba52d58907a295eee25f8207ed2 ]

This patch adds new config_ep_by_speed_and_alt function which
extends the config_ep_by_speed about alt parameter.
This additional parameter allows to find proper usb_ss_ep_comp_descriptor.

Problem has appeared during testing f_tcm (BOT/UAS) driver function.

f_tcm function for SS use array of headers for both  BOT/UAS alternate
setting:

static struct usb_descriptor_header *uasp_ss_function_desc[] = {
        (struct usb_descriptor_header *) &bot_intf_desc,
        (struct usb_descriptor_header *) &uasp_ss_bi_desc,
        (struct usb_descriptor_header *) &bot_bi_ep_comp_desc,
        (struct usb_descriptor_header *) &uasp_ss_bo_desc,
        (struct usb_descriptor_header *) &bot_bo_ep_comp_desc,

        (struct usb_descriptor_header *) &uasp_intf_desc,
        (struct usb_descriptor_header *) &uasp_ss_bi_desc,
        (struct usb_descriptor_header *) &uasp_bi_ep_comp_desc,
        (struct usb_descriptor_header *) &uasp_bi_pipe_desc,
        (struct usb_descriptor_header *) &uasp_ss_bo_desc,
        (struct usb_descriptor_header *) &uasp_bo_ep_comp_desc,
        (struct usb_descriptor_header *) &uasp_bo_pipe_desc,
        (struct usb_descriptor_header *) &uasp_ss_status_desc,
        (struct usb_descriptor_header *) &uasp_status_in_ep_comp_desc,
        (struct usb_descriptor_header *) &uasp_status_pipe_desc,
        (struct usb_descriptor_header *) &uasp_ss_cmd_desc,
        (struct usb_descriptor_header *) &uasp_cmd_comp_desc,
        (struct usb_descriptor_header *) &uasp_cmd_pipe_desc,
        NULL,
};

The first 5 descriptors are associated with BOT alternate setting,
and others are associated with UAS.

During handling UAS alternate setting f_tcm driver invokes
config_ep_by_speed and this function sets incorrect companion endpoint
descriptor in usb_ep object.

Instead setting ep->comp_desc to uasp_bi_ep_comp_desc function in this
case set ep->comp_desc to uasp_ss_bi_desc.

This is due to the fact that it searches endpoint based on endpoint
address:

        for_each_ep_desc(speed_desc, d_spd) {
                chosen_desc = (struct usb_endpoint_descriptor *)*d_spd;
                if (chosen_desc->bEndpoitAddress == _ep->address)
                        goto ep_found;
        }

And in result it uses the descriptor from BOT alternate setting
instead UAS.

Finally, it causes that controller driver during enabling endpoints
detect that just enabled endpoint for bot.

Signed-off-by: Jayshri Pawar <jpawar@cadence.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-25 15:32:59 +02:00
Hridya Valsaraju
b582ef5b4d ANDROID: GKI: drivers: usb: Add functions usb_func_ep_queue/usb_func_wakeup
This is required to reduce the ABI diff.

Test: build
Bug: 151977927

Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Change-Id: I253e43066a3cd9c8293e46a5f17ef0cfe002cffe
(cherry picked from commit d6c40da240)
[hridya: amended commit to only include the ABI diff,
EXPORT_SYMBOL -> EXPORT_SYMBOL_GPL, add some pointer checks,
documentation]
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-03-26 14:45:13 -07:00
Badhri Jagan Sridharan
2794c17fad ANDROID: usb: gadget: configfs: Add usb_function ptr to fi struct
Add a pointer to the usb_function inside the
usb_function_instance structure to service
functions specific setup requests even before
the function gets added to the usb_gadget

Bug: 63740241
Bug: 68755607
Bug: 78114713
Bug: 120441124
Change-Id: I6f457006f6c5516cc6986ec2acdf5b1ecf259d0c
[badhri: This is a supporting patch for other patches which have
         replacements pipelined. It can be dropped when those
         implementations land.]
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
2018-12-05 09:48:11 -08:00
Chandana Kishori Chiluveru
10a7254cf9 usb: f_gsi: Report Function Remote Wake capabilities
Add support for sending Function Wake capabilities in
response to GET_STATUS from the host. GET_STATUS addressed
to an Interface allows the device to report if it is capable
of doing a Function Remote Wake. Windows8/10 MBIM hosts request
this information before enabling Suspend in SS mode.

Change-Id: Ic0a6db57b2b46804a82847de511feb433a3dfca6
Signed-off-by: Devdutt Patnaik <dpatnaik@codeaurora.org>
Signed-off-by: Chandana Kishori Chiluveru <cchiluve@codeaurora.org>
2018-10-18 18:29:29 -07:00
Rishabh Bhatnagar
3bca5c7ace Merge remote-tracking branch 'origin/tmp-441e17f' into msm-kona
* origin/tmp-441e17f:
  ANDROID: xt_qtaguid: Remove unnecessary null checks to device's name
  ANDROID: qtaguid: Fix the UAF probelm with tag_ref_tree
  ANDROID: netfilter: xt_qtaguid: Fix 4.14 compilation
  ANDROID: netfilter: xt_qtaguid: Use sk_uid to replace uid get from socket file
  ANDROID: netfilter: xt_qtaguid: fix handling for cases where tunnels are used.
  ANDROID: netfilter: xt_qtaguid: handle properly request sockets
  ANDROID: netfilter: xt_qtaguid: Add untag hacks to inet_release function
  ANDROID: netfilter: xt_qtaguid: don't check if embedded arrays are NULL
  ANDROID: netfilter: xt_qtaguid: fix the deadlock when enable DDEBUG
  ANDROID: netfilter: xt_qtaguid: Don't show empty tag stats for unprivileged uids
  ANDROID: netfilter: xt_qtaguid: Fix panic caused by processing non-full socket.
  ANDROID: netfilter: xt_qtaguid: Fix panic caused by synack processing
  ANDROID: netfilter: xt_qtaguid: fix a race condition in if_tag_stat_update
  ANDROID: netfilter: xt_qtaguid: xt_socket: build fixes
  ANDROID: netfilter: xt_qtaguid: Use sk_callback_lock read locks before reading sk->sk_socket
  ANDROID: netfilter: xt_qtaguid/xt_socket: Build fixups
  ANDROID: netfilter: xt_qtaguid: Fix boot panic
  ANDROID: netfilter: xt_qtaguid: fix bad tcp_time_wait sock handling
  ANDROID: netfilter: xt_qtaguid: 3.10 fixes
  ANDROID: netfilter: xt_qtaguid: rate limit some of the printks
  ANDROID: netfilter: xt_qtaguid: Allow tracking loopback
  ANDROID: netfilter: xt_qtaguid: extend iface stat to report protocols
  ANDROID: netfilter: xt_qtaguid: remove AID_* dependency for access control
  ANDROID: netfilter: xt_qtaguid: Don't BUG_ON if create_if_tag_stat fails
  ANDROID: netfilter: xt_qtaguid: fix error exit that would keep a spinlock.
  ANDROID: netfilter: xt_qtaguid: report only uid tags to non-privileged processes
  ANDROID: netfilter: xt_qtaguid: start tracking iface rx/tx at low level
  ANDROID: netfilter: xt_qtaguid: fix ipv6 protocol lookup
  ANDROID: netfilter: xt_qtaguid: add qtaguid matching module
  RFC: ANDROID: net: ipv6: Flip FIB entries to fib6_info
  RFC: ANDROID: proc/uid: switch instantiate_t to d_splice_alias()
  RFC: ANDROID: fs: sdcardfs: Use inode iversion helpers
  RFC: ANDROID: net: ipv4: sysfs_net_ipv4: Fix TCP window size controlling knobs
  RFC: ANDROID: net: ipv4: tcp: Namespace-ify sysctl_tcp_default_init_rwnd
  ANDROID: x86_64_cuttlefish_defconfig: Enable lz4 compression for zram
  ANDROID: x86_64_cuttlefish_defconfig: Enable zram and zstd
  ANDROID: AVB error handler to invalidate vbmeta partition.
  ANDROID: remove android config fragments
  ANDROID: ftrace: fix function type mismatches
  ANDROID: sdcardfs: Check stacked filesystem depth
  ANDROID: verity: really fix android-verity Kconfig
  x86_64_cuttlefish_defconfig: Enable android-verity
  x86_64_cuttlefish_defconfig: enable verity cert
  ANDROID: android-verity: Fix broken parameter handling.
  ANDROID: android-verity: Make it work with newer kernels
  ANDROID: android-verity: Add API to verify signature with builtin keys.
  ANDROID: verity: fix android-verity Kconfig dependencies
  ANDROID: uid_sys_stats: Replace tasklist lock with RCU in uid_cputime_show
  ANDROID: mnt: Fix next_descendent
  ANDROID: Fix massive cpufreq_times memory leaks
  ANDROID: Reduce use of #ifdef CONFIG_CPU_FREQ_TIMES
  ANDROID: sdcardfs: fix potential crash when reserved_mb is not zero
  ANDROID: Add kconfig to make dm-verity check_at_most_once default enabled
  ANDROID: add extra free kbytes tunable
  ANDROID: x86_64_cuttlefish_defconfig: Enable F2FS
  ANDROID: Update x86_64_cuttlefish_defconfig
  ANDROID: proc: fix undefined behavior in proc_uid_base_readdir
  ANDROID: x86_64_cuttlefish_defconfig: Disable ORC unwinder.
  ANDROID: build: cuttlefish: Upgrade clang to newer version.
  ANDROID: build: cuttlefish: Upgrade clang to newer version.
  ANDROID: build: cuttlefish: Fix path to clang.
  ANDROID: sdcardfs: Don't d_drop in d_revalidate
  ANDROID: goldfish: drop CONFIG_INPUT_KEYCHORD
  ANDROID: build.config: enforce trace_printk check
  cfi: print target address on failure
  ANDROID: fs: gfs2: fix filler function type
  ANDROID: fs: exofs: fix filler function type
  ANDROID: fs: afs: fix filler function type
  ANDROID: fs: nfs: fix filler function type
  ANDROID: fs: fuse: fix filler function type mismatch
  ANDROID: mm: fix filler function type mismatch
  ANDROID: arch/arm64/crypto: 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
  ANDROID: kallsyms: strip the .cfi postfix from symbols with CONFIG_CFI_CLANG
  RFC: ANDROID: add support for clang Control Flow Integrity (CFI)
  ANDROID: sdcardfs: Set s_root to NULL after putting
  ANDROID: sdcardfs: d_make_root calls iput
  ANDROID: sdcardfs: Check for private data earlier
  FROMLIST: arm64: kvm: use -fno-jump-tables with clang
  ANDROID: Add build server config for cuttlefish.
  ANDROID: Add defconfig for cuttlefish.
  ANDROID: cpufreq: Add time_in_state to /proc/uid directories
  ANDROID: proc: Add /proc/uid directory
  ANDROID: cpufreq: times: track per-uid time in state
  ANDROID: cpufreq: track per-task time in state
  ANDROID: fuse: Add null terminator to path in canonical path to avoid issue
  ANDROID: sdcardfs: Fix sdcardfs to stop creating cases-sensitive duplicate entries.
  ANDROID: arm64: Image.gz-dtb build target depends on Image.gz
  ANDROID: sdcardfs: fix lock issue on 32 bit/SMP architectures
  ANDROID: uid_sys_stats: Copy task_struct comm field to bigger buffer
  ANDROID: sdcardfs: Set num in extension_details during make_item
  ANDROID: sdcardfs: Hold i_mutex for i_size_write
  ANDROID: sdcardfs: Protect set_top
  ANDROID: fsnotify: Notify lower fs of open
  ANDROID: sdcardfs: Use lower getattr times/size
  ANDROID: Revert "fs: unexport vfs_read and vfs_write"
  ANDROID: sdcardfs: port to 4.14
  ANDROID: fs: Export vfs_rmdir2
  ANDROID: mm: Export do_munmap
  ANDROID: fs: Export d_absolute_path
  ANDROID: fs: Export free_fs_struct and set_fs_pwd
  ANDROID: export security_path_chown
  ANDROID: sdcardfs: Add default_normal option
  ANDROID: Sdcardfs: Move gid derivation under flag
  ANDROID: sdcardfs: override credential for ioctl to lower fs
  ANDROID: sdcardfs: Remove unnecessary lock
  ANDROID: sdcardfs: use mount_nodev and fix a issue in sdcardfs_kill_sb
  ANDROID: sdcardfs: remove dead function open_flags_to_access_mode()
  ANDROID: sdcardfs: d_splice_alias can return error values
  ANDROID: sdcardfs: Check for NULL in revalidate
  ANDROID: sdcardfs: Move top to its own struct
  ANDROID: sdcardfs: fix sdcardfs_destroy_inode for the inode RCU approach
  ANDROID: sdcardfs: Don't iput if we didn't igrab
  ANDROID: sdcardfs: Call lower fs's revalidate
  ANDROID: sdcardfs: Avoid setting GIDs outside of valid ranges
  ANDROID: sdcardfs: Copy meta-data from lower inode
  ANDROID: sdcardfs: Use filesystem specific hash
  ANDROID: sdcardfs: Don't complain in fixup_lower_ownership
  ANDROID: sdcardfs: Don't do d_add for lower fs
  ANDROID: sdcardfs: ->iget fixes
  ANDROID: sdcardfs: Change cache GID value
  ANDROID: sdcardfs: Directly pass lower file for mmap
  ANDROID: sdcardfs: update module info
  ANDROID: sdcardfs: use d_splice_alias
  ANDROID: sdcardfs: add read_iter/write_iter opeations
  ANDROID: sdcardfs: fix ->llseek to update upper and lower offset
  ANDROID: sdcardfs: copy lower inode attributes in ->ioctl
  ANDROID: sdcardfs: remove unnecessary call to do_munmap
  ANDROID: sdcardfs: Fix style issues in macros
  ANDROID: sdcardfs: Use seq_puts over seq_printf
  ANDROID: sdcardfs: Use to kstrout
  ANDROID: sdcardfs: Use pr_[...] instead of printk
  ANDROID: sdcardfs: remove unneeded null check
  ANDROID: sdcardfs: Fix style issues with comments
  ANDROID: sdcardfs: Fix formatting
  ANDROID: sdcardfs: correct order of descriptors
  ANDROID: sdcardfs: Fix gid issue
  ANDROID: sdcardfs: Remove uninformative prints
  ANDROID: sdcardfs: move path_put outside of spinlock
  ANDROID: sdcardfs: Use case insensitive hash function
  ANDROID: sdcardfs: declare MODULE_ALIAS_FS
  ANDROID: sdcardfs: Get the blocksize from the lower fs
  ANDROID: sdcardfs: Use d_invalidate instead of drop_recurisve
  ANDROID: sdcardfs: Switch to internal case insensitive compare
  ANDROID: sdcardfs: Use spin_lock_nested
  ANDROID: sdcardfs: Replace get/put with d_lock
  ANDROID: sdcardfs: rate limit warning print
  ANDROID: sdcardfs: Fix case insensitive lookup
  ANDROID: sdcardfs: support direct-IO (DIO) operations
  ANDROID: sdcardfs: implement vm_ops->page_mkwrite
  ANDROID: sdcardfs: Don't bother deleting freelist
  ANDROID: sdcardfs: Add missing path_put
  ANDROID: sdcardfs: Fix incorrect hash
  ANDROID: sdcardfs: Switch strcasecmp for internal call
  ANDROID: sdcardfs: switch to full_name_hash and qstr
  ANDROID: sdcardfs: Add GID Derivation to sdcardfs
  ANDROID: sdcardfs: Remove redundant operation
  ANDROID: sdcardfs: add support for user permission isolation
  ANDROID: sdcardfs: Refactor configfs interface
  ANDROID: sdcardfs: Allow non-owners to touch
  ANDROID: sdcardfs: eliminate the offset argument to ->direct_IO
  ANDROID: sdcardfs: make it use new .rename i_op
  ANDROID: sdcardfs: Propagate dentry down to inode_change_ok()
  ANDROID: sdcardfs: get rid of 'parent' argument of ->d_compare()
  ANDROID: sdcardfs: add parent pointer into dentry name hash
  ANDROID: sdcardfs: use wrappers to access i_mutex
  ANDROID: sdcardfs: Fix locking issue with permision fix up
  ANDROID: sdcardfs: Switch ->d_inode to d_inode()
  ANDROID: sdcardfs: Change magic value
  ANDROID: sdcardfs: Use per mount permissions
  ANDROID: sdcardfs: Add gid and mask to private mount data
  ANDROID: sdcardfs: User new permission2 functions
  ANDROID: sdcardfs: Move directory unlock before touch
  ANDROID: sdcardfs: fix external storage exporting incorrect uid
  ANDROID: sdcardfs: Added top to sdcardfs_inode_info
  ANDROID: sdcardfs: Switch package list to RCU
  ANDROID: sdcardfs: Fix locking for permission fix up
  ANDROID: sdcardfs: Check for other cases on path lookup
  ANDROID: sdcardfs: override umask on mkdir and create
  ANDROID: sdcardfs: fix itnull.cocci warnings
  ANDROID: sdcardfs: Truncate packages_gid.list on overflow
  ANDROID: sdcardfs: remove unneeded __init and __exit
  ANDROID: sdcardfs: Remove unused code
  ANDROID: sdcardfs: remove effectless config option
  ANDROID: sdcardfs: Add support for d_canonical_path
  ANDROID: sdcardfs: Bring up to date with Android M permissions:
  ANDROID: Changed type-casting in packagelist management
  ANDROID: Port of sdcardfs to 4.4
  ANDROID: xattr: Pass EOPNOTSUPP to permission2
  RFC: ANDROID: vfs: Add permission2 for filesystems with per mount permissions
  ANDROID: vfs: Add setattr2 for filesystems with per mount permissions
  ANDROID: vfs: Allow filesystems to access their private mount data
  ANDROID: fuse: Add support for d_canonical_path
  ANDROID: mnt: Add filesystem private data to mount points
  ANDROID: vfs: add d_canonical_path for stacked filesystem support
  ANDROID: Included sdcardfs source code for kernel 3.0
  ANDROID: Fix script to fetch android kernel config fragments for 4.14
  ANDROID: uid_sys_stats: fix the comment
  ANDROID: initramfs: call free_initrd() when skipping init
  ANDROID: memory_state_time: fix undefined behavior with missing DT properties
  ANDROID: memory_state_time: Implement memory_state_time, used by qcom,cpubw
  ANDROID: uid_sys_stats: log task io with a debug flag
  ANDROID: uid_sys_stats: check previous uid_entry before call find_or_register_uid
  ANDROID: uid_sys_stats: Kconfig: add depends for UID_SYS_STATS
  ANDROID: uid_sys_stats: defer io stats calulation for dead tasks
  ANDROID: uid_sys_stats: fix access of task_uid(task)
  ANDROID: uid_sys_stats: reduce update_io_stats overhead
  ANDROID: uid_sys_stats: change to use rt_mutex
  ANDROID: uid_sys_stats: account for fsync syscalls
  ANDROID: uid_sys_stats: fix negative write bytes.
  ANDROID: uid_sys_stats: allow writing same state
  ANDROID: uid_sys_stats: rename uid_cputime.c to uid_sys_stats.c
  ANDROID: uid_cputime: add per-uid IO usage accounting
  ANDROID: uid_cputime: Check for the range while removing range of UIDs.
  ANDROID: uid_cputime: Iterates over all the threads instead of processes.
  ANDROID: uid_cputime: fix cputime overflow
  ANDROID: uid_cputime: Adds accounting for the cputimes per uid.
  CHROMIUM: usb: gadget: f_accessory: add .raw_request callback
  CHROMIUM: usb: gadget: f_audio_source: add .free_func callback
  ANDROID: usb: gadget: f_midi: set fi->f to NULL when free f_midi function
  ANDROID: usb: gadget: f_midi: create F_midi device
  ANDROID: usb: gadget: f_accessory: assign no-op request complete callbacks
  ANDROID: usb: gadget: f_accessory: Fix for UsbAccessory clean unbind.
  ANDROID: usb: gadget: f_accessory: fix false disconnect due to a signal sent to the reading process
  ANDROID: usb: gadget: f_accessory: Move gadget functions code
  ANDROID: usb: gadget: f_accessory: Migrate to USB_FUNCTION API
  ANDROID: usb: gadget: f_audio_source: disable the CPU C-states upon playback
  ANDROID: usb: gadget: f_audio_source: Move gadget functions code
  ANDROID: usb: gadget: f_audio_source: Move to USB_FUNCTION API
  ANDROID: usb: gadget: configfs: fix null ptr in android_disconnect
  ANDROID: usb: gadget: configfs: Add device attribute to determine gadget state
  ANDROID: usb: gadget: configfs: Add "state" attribute to android_device
  ANDROID: usb: gadget: configfs: Add function devices to the parent
  ANDROID: usb: gadget: configfs: Add Uevent to notify userspace
  ANDROID: usb: gadget: configfs: Add usb_function ptr to fi struct
  ANDROID: usb: gadget: f_audio_source: Fixed USB Audio Class Interface Descriptor
  ANDROID: usb: gadget: f_audio_source: change max ISO packet size
  ANDROID: usb: gadget: f_audio_source: New gadget driver for audio output
  ANDROID: usb: gadget: f_accessory: check for accessory device before disconnecting HIDs
  ANDROID: usb: gadget: f_accessory: Enabled Zero Length Packet (ZLP) for acc_write
  ANDROID: usb: gadget: f_accessory: move userspace interface to uapi
  ANDROID: usb: gadget: f_accessory: Add support for HID input devices
  ANDROID: usb: gadget: f_accessory: Add ACCESSORY_SET_AUDIO_MODE control request and ioctl
  ANDROID: usb: gadget: f_accessory: Add Android Accessory function
  ANDROID: trace: sched: add sched blocked tracepoint which dumps out context of sleep.
  ANDROID: security,perf: Allow further restriction of perf_event_open
  ANDROID: power: wakeup: Add the guard condition for len in pm_get_active_wakeup_sources
  ANDROID: power: wakeup: Add last wake up source logging for suspend abort reason.
  ANDROID: power: wakeup_reason: fix suspend time reporting
  ANDROID: power: wakeup_reason: Report suspend times from last_suspend_time
  ANDROID: power: wakeup_reason: Adds functionality to log the last suspend abort reason.
  ANDROID: power: wakeup_reason: Avoids bogus error messages for the suspend aborts.
  ANDROID: power: wakeup_reason: Add guard condition for maximum wakeup reasons
  ANDROID: power: wakeup_reason: add an API to log wakeup reasons
  ANDROID: power: power_supply: Add property CHARGE_COUNTER_EXT and 64-bit precision properties
  ANDROID: power: power_supply: add POWER_SUPPLY_PROP_CHARGE_ENABLED
  ANDROID: power: power_supply: add POWER_SUPPLY_PROP_USB_OTG
  ANDROID: power: power_supply: Add custom property for USB High Current mode
  ANDROID: arm64: copy CONFIG_CMDLINE_EXTEND from ARM
  ANDROID: of: Support CONFIG_CMDLINE_EXTEND config option
  ANDROID: NFC: st21nfca: Fix memory OOB and leak issues in connectivity events handler
  ANDROID: NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
  ANDROID: nfc: fdp: Fix possible buffer overflow in WCS4000 NFC driver
  ANDROID: NFC: st21nfca: Fix out of bounds kernel access when handling ATR_REQ
  ANDROID: netfilter: xt_IDLETIMER: Use fullsock when querying uid
  ANDROID: netfilter: xt_IDLETIMER: Fix use after free condition during work
  ANDROID: netfilter: xt_IDLETIMER: Adds the uid field in the msg
  ANDROID: netfilter: xt_IDLETIMER: time-stamp and suspend/resume handling.
  ANDROID: netfilter: xt_IDLETIMER: Add new netlink msg type
  ANDROID: netfilter: xt_quota2: fixup the quota2, and enable.
  ANDROID: netfilter: xt_quota2: adding the original quota2 from xtables-addons
  ANDROID: net: xfrm: make PF_KEY SHA256 use RFC-compliant truncation.
  ANDROID: net: wireless: wlcore: Disable filtering in AP role
  ANDROID: net: wireless: Decrease scan entry expiration to avoid stall results
  ANDROID: net: rfkill: Introduce CONFIG_RFKILL_PM and use instead of CONFIG_PM to power down
  ANDROID: net: ipv6: autoconf routes into per-device tables
  ANDROID: net: ipv6: fix crash caused by ipv6_find_hdr()
  ANDROID: net: ipv4: tcp: add a sysctl to config the tcp_default_init_rwnd
  ANDROID: net: ipv4: sysfs_net_ipv4: Add sysfs-based knobs for controlling TCP window size
  ANDROID: net: ip-sysctl: Document tcp_fwmark_accept
  ANDROID: net: paranoid: commoncap: Begin to warn users of implicit PARANOID_NETWORK capability grants
  ANDROID: net: paranoid: security: Add proper checks for Android specific capability checks
  ANDROID: net: paranoid: Only NET_ADMIN is allowed to fully control TUN interfaces.
  ANDROID: net: paranoid: Replace AID_NET_RAW checks with capable(CAP_NET_RAW).
  ANDROID: net: paranoid: security: Add AID_NET_RAW and AID_NET_ADMIN capability check in cap_capable().
  ANDROID: net: Paranoid network.
  ANDROID: mmc: core: Add "ignore mmc pm notify" functionality
  ANDROID: mm: add a field to store names for private anonymous memory
  ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple
  CHROMIUM: kbuild: clang: Disable the 'duplicate-decl-specifier' warning
  ANDROID: kbuild: Makefile.clean: make Kbuild and Makefile optional
  ANDROID: kbuild: make it possible to specify the module output dir
  ANDROID: input: keyreset: switch to orderly_reboot
  ANDROID: input: keyreset: Made keyreset more robust
  ANDROID: input: keyreset: Changed keyreset to act as a wrapper for keycombo.
  ANDROID: input: keycombo: add keycombo, a general key combo driver.
  ANDROID: input: keyreset: Add keyreset driver.
  ANDROID: input: gpio_matrix: Remove wakelock.h dependencies
  ANDROID: input: gpio_input: convert from wakelocks to wakeup sources
  ANDROID: input: gpio_event: remove early suspend
  ANDROID: input: Generic GPIO Input devices
  ANDROID: initramfs: Add skip_initramfs command line option
  ANDROID: build: add build server configs for goldfish
  ANDROID: goldfish: add ranchu defconfigs
  ANDROID: fs: Fix for in kernel emergency remount when loop mounts are used
  ANDROID: fs: Refactor FS readpage/write tracepoints.
  ANDROID: fs: FS tracepoints to track IO.
  ANDROID: fs: sched: add a counter to track fsync
  ANDROID: fs: epoll: use freezable blocking call
  ANDROID: dm: verity: add minimum prefetch size
  ANDROID: dm: android-verity: mark dev as rw for linear target
  ANDROID: dm: android-verity: allow disable dm-verity for Treble VTS
  ANDROID: dm: android-verity: fix table_make_digest() error handling
  ANDROID: dm: android-verity: rebase for 4.9
  ANDROID: dm: android-verity: Remove fec_header location constraint
  ANDROID: dm: android-verity: adopt changes made to dm callbacks
  ANDROID: dm: android-verity: pack the fec_header structure
  ANDROID: dm: android-verity: Verify header before fetching table
  ANDROID: dm: android-verity: allow adb disable-verity only in userdebug
  ANDROID: dm: android-verity: mount as linear target if eng build
  ANDROID: dm: android-verity: use default verity public key
  ANDROID: dm: android-verity: fix signature verification flag
  ANDROID: dm: android-verity: use name_to_dev_t
  ANDROID: dm: android-verity: Mounting root as linear device when verity disabled
  ANDROID: dm: android-verity: Add android verity target
  ANDROID: dm: do_mounts_dm: Update init/do_mounts_dm.c to the latest ChromiumOS version.
  ANDROID: dm: do_mounts_dm: fix dm_substitute_devices()
  ANDROID: dm: do_mounts_dm: Rebase on top of 4.9
  CHROMIUM: dm: boot time specification of dm=
  ANDROID: dm: verity-fec: add sysfs attribute fec/corrected
  CHROMIUM: cgroups: relax permissions on moving tasks between cgroups
  ANDROID: cpuset: Make cpusets restore on hotplug
  ANDROID: cpu: send KOBJ_ONLINE event when enabling cpus
  ANDROID: cpuidle: governor: menu: don't use loadavg
  ANDROID: binder: fix node sched policy calculation
  ANDROID: binder: init desired_prio.sched_policy before use it
  ANDROID: binder: Add tracing for binder priority inheritance.
  ANDROID: binder: don't check prio permissions on restore.
  ANDROID: binder: add RT inheritance flag to node.
  ANDROID: binder: improve priority inheritance.
  ANDROID: binder: add min sched_policy to node.
  ANDROID: binder: add support for RT prio inheritance.
  ANDROID: kdb: support new lines without carriage returns
  ANDROID: arm64: Allow to choose appended kernel image
  ANDROID: arm64: add option to build Image-dtb
  ANDROID: arm64: add option to build Image.gz/dtb combo
  ANDROID: arm: convert build of appended dtb zImage to list of dtbs
  ANDROID: arm: add config option to build zImage/dtb combo
  ANDROID: arm: Fix dtb list when DTB_IMAGE_NAMES is empty
  ANDROID: add script to fetch android kernel config fragments

Change-Id: Ibaa7c53d9f63499e5e96579a36e178edad19be75
[rishabhb@codeaurora.org: LLCT tree taken from:
https://android-git.linaro.org/kernel/linaro-android.git/log/?h=test/amt-4.19]
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
2018-09-05 14:58:16 -07:00
Badhri Jagan Sridharan
07f8c5a96d ANDROID: usb: gadget: configfs: Add usb_function ptr to fi struct
Add a pointer to the usb_function inside the
usb_function_instance structure to service
functions specific setup requests even before
the function gets added to the usb_gadget

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I6f457006f6c5516cc6986ec2acdf5b1ecf259d0c
2018-08-28 17:10:42 +05:30
Jack Pham
6252350019 usb: dwc3: Add QTI MSM platform specific feature and other changes
This change adds the following QTI MSM platform specific features
to the USB DWC3 core & gadget drivers:
- BAM endpoint support
- GSI endpoint support
- low power mode / remote wakeup
- function suspend/wake
- glue layer notifications
- high speed-only fallback
- add additional debug logging

Change-Id: I0f733d05f3f88a4a734d8489b5eb548391ab3af3
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2018-08-17 17:37:02 -07:00
Danny Segal
d6c40da240 usb: gadget: add infrastructure support for super-speed function suspend
The USB 3.0 specification defines a new 'Function Suspend' feature.
This feature enables the USB host to put inactive composite device
functions in a suspended state even when the device itself is not
suspended. This patch extends the existing framework of USB gadget
to properly support the 'Function Resume' and 'Function Remote Wakeup'
related features.

Signed-off-by: Danny Segal <dsegal@codeaurora.org>
Signed-off-by: Mayank Rana <mrana@codeaurora.org>

[jackp@codeaurora.org: also squashed the following commits
usb: gadget: Fix missing function wakeup notification sending on BAM wakeup
usb: gadget: Fix race condition between function wakeup and bus resume
usb: gadget: Resolve recursive spinlock during remote wakeup
usb: composite: don't print the invalid function wakeup failure messages
dwc3: gadget: Replace polling mechanism to go into U0 state
usb: gadget: f_mbim: Queue notification request upon function resume
USB: composite: Hold spinlock before calling usb_func_wakeup_int() API
usb: gadget: Invalidate interface id upon adding function to config
usb: gadget: Fix bug is queuing req upon function suspend ]

Change-Id: I51713eac557eabc7b465d161377c09d4b6afa152
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2018-08-17 17:21:10 -07:00
Joel Pepper
ed76952072 usb: gadget: composite Allow for larger configuration descriptors
The composite framework allows us to create gadgets composed from many
different functions, which need to fit into a single configuration
descriptor.

Some functions (like uvc) can produce configuration descriptors upwards
of 2500 bytes on their own.

This patch increases the limit from 1024 bytes to 4096.

Signed-off-by: Joel Pepper <joel.pepper@rwth-aachen.de>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-04-27 10:17:10 +03:00
Chris Dickens
5d6ae4f0da usb: gadget: composite: fix incorrect handling of OS desc requests
When handling an OS descriptor request, one of the first operations is
to zero out the request buffer using the wLength from the setup packet.
There is no bounds checking, so a wLength > 4096 would clobber memory
adjacent to the request buffer. Fix this by taking the min of wLength
and the request buffer length prior to the memset. While at it, define
the buffer length in a header file so that magic numbers don't appear
throughout the code.

When returning data to the host, the data length should be the min of
the wLength and the valid data we have to return. Currently we are
returning wLength, thus requests for a wLength greater than the amount
of data in the OS descriptor buffer would return invalid (albeit zero'd)
data following the valid descriptor data. Fix this by counting the
number of bytes when constructing the data and using this when
determining the length of the request.

Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-03-08 15:12:01 +02:00
Greg Kroah-Hartman
5fd54ace47 USB: add SPDX identifiers to all remaining files in drivers/usb/
It's good to have SPDX identifiers in all files to make it easier to
audit the kernel tree for correct licenses.

Update the drivers/usb/ and include/linux/usb* files with the correct
SPDX license identifier based on the license text in the file itself.
The SPDX identifier is a legally binding shorthand, which can be used
instead of the full boiler plate text.

This work is based on a script and data from Thomas Gleixner, Philippe
Ombredanne, and Kate Stewart.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Philippe Ombredanne <pombredanne@nexb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Acked-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-04 11:48:02 +01:00
Mauro Carvalho Chehab
3e208a00cf usb: composite.h: fix two warnings when building docs
By definition, we use /* private: */ tag when we won't be documenting
a parameter. However, those two parameters are documented:

./include/linux/usb/composite.h:510: warning: Excess struct/union/enum/typedef member 'setup_pending' description in 'usb_composite_dev'
./include/linux/usb/composite.h:510: warning: Excess struct/union/enum/typedef member 'os_desc_pending' description in 'usb_composite_dev'

So, we need to use /* public: */ to avoid a warning.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2017-04-11 14:41:01 -06:00
Mauro Carvalho Chehab
e0c34e9006 usb: get rid of some ReST doc build errors
We need an space before a numbered list to avoid those warnings:

./drivers/usb/core/message.c:478: ERROR: Unexpected indentation.
./drivers/usb/core/message.c:479: WARNING: Block quote ends without a blank line; unexpected unindent.
./include/linux/usb/composite.h:455: ERROR: Unexpected indentation.
./include/linux/usb/composite.h:456: WARNING: Block quote ends without a blank line; unexpected unindent.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2017-04-11 14:40:48 -06:00
Felix Hädicke
1a00b457a5 usb: gadget: composite: let USB functions process ctrl reqs in cfg0
It can sometimes be necessary for gadget drivers to process non-standard
control requests, which host devices can send without having sent
USB_REQ_SET_CONFIGURATION.

Therefore, the req_match() usb_function method is enhanced with the new
parameter "config0". When a USB configuration is active, this parameter
is false. When a non-core control request is processed in
composite_setup(), without an active configuration, req_match() of the
USB functions of all available configurations which implement this
function, is called with config0=true. Then the control request gets
processed by the first usb_function instance whose req_match() returns
true.

Signed-off-by: Felix Hädicke <felixhaedicke@web.de>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2016-08-25 12:13:17 +03:00
John Youn
554eead543 usb: gadget: Update config for SuperSpeedPlus
When a function is added to a configuration with usb_add_function(), the
configuration speed flags are updated. These flags indicate for which
speeds the configuration is valid for.

This patch adds a flag in the configuration for SuperSpeedPlus and
also updates this based on the existence of ssp_descriptors.

Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2016-03-04 15:14:24 +02:00
John Youn
f5c61225cf usb: gadget: Update function for SuperSpeedPlus
Add a ssp_descriptors member to struct usb_function and handle the
initialization and cleanup of it. This holds the SuperSpeedPlus
descriptors for a function that supports SuperSpeedPlus. This is added
by usb_assign_descriptors().

Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2016-03-04 15:14:23 +02:00
Robert Baldyga
d5bb9b81db usb: composite: add bind_deactivated flag to usb_function
This patch introduces 'bind_deactivated' flag in struct usb_function.
Functions which don't want to be activated automatically after bind should
set this flag, and when they start to be ready to work they should call
usb_function_activate().

When USB function sets 'bind_deactivated' flag, initial deactivation
counter is incremented automatically, so there is no need to call
usb_function_deactivate() in function bind.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2015-07-29 09:59:19 -05:00
Andrzej Pietrasiewicz
f563d23090 usb: gadget: composite: add req_match method to usb_function
Non-standard requests can encode the actual interface number in a
non-standard way. For example composite_setup() assumes
that it is w_index && 0xFF, but the printer function encodes the interface
number in a context-dependet way (either w_index or w_index >> 8).
This can lead to such requests being directed to wrong functions.

This patch adds req_match() method to usb_function. Its purpose is to
verify that a given request can be handled by a given function.
If any function within a configuration provides the method and it returns
true, then it is assumed that the right function is found.

If a function uses req_match(), it should try as hard as possible to
determine if the request is meant for it.

If no functions in a configuration provide req_match or none of them
returns true, then fall back to the usual approach.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2015-03-10 15:33:39 -05:00
Andrzej Pietrasiewicz
3a57187085 usb: gadget: configfs: add suspend/resume
USB gadgets composed with configfs lack suspend and resume
methods. This patch uses composite_suspend()/composite_resume()
the same way e.g. composite_setup() or composite_disconnect()
are used in a configfs-based gadget.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-11-03 10:00:59 -06:00
Felipe Balbi
6c93b53423 usb: gadget: composite: introduce setup and os_desc pending flags
These flags we be set to true whenever their
matching request is queued. They will be cleared
to false when that request completes.

Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-11-03 10:00:54 -06:00
Tobias Klauser
7ec3ea181d usb: gadget: Add helper macro for usb_composite_driver boilerplate
Introduce the module_usb_composite_driver macro as a convenience macro
for USB gadget composite driver modules, similar to module_usb_driver.
It is intended to be used by drivers which init/exit section does
nothing but calling usb_composite_probe/usb_composite_unrregister. By
using this macro it is possible to eliminate a few lines of boilerplate
code per USB gadget composite driver.

Based on f3a6a4b6 ("USB: Add helper macro for usb_driver boilerplate")
which introduced the according macro for USB drivers.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-07-10 08:36:52 -05:00
Andrzej Pietrasiewicz
7419485f19 usb: gadget: configfs: OS Extended Properties descriptors support
Add handling of OS Extended Properties descriptors from configfs interface.
One kind of "OS Descriptors" are "Extended Properties" descriptors, which
need to be specified per interface or per group of interfaces described
by an IAD. This patch adds support for creating subdirectories
in interface.<n> directory located in the function's directory.
Names of subdirectories created become names of properties.
Each property contains two attributes: "type" and "data".
The type can be a numeric value 1..7 while data is a blob interpreted
depending on the type specified.
The types are:
1 - unicode string
2 - unicode string with environment variables
3 - binary
4 - little-endian 32-bit
5 - big-endian 32-bit
6 - unicode string with a symbolic link
7 - multiple unicode strings

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-05-14 09:39:51 -05:00
Andrzej Pietrasiewicz
da4243145f usb: gadget: configfs: OS Extended Compatibility descriptors support
Add handling of OS Extended Compatibility descriptors from configfs interface.
Hosts which expect the "OS Descriptors" ask only for configurations @ index 0,
but linux-based USB devices can provide more than one configuration.
This patch adds marking one of gadget's configurations the configuration
to be reported at index 0, regardless of the actual sequence of usb_add_config
invocations used for adding the configurations. The configuration is selected
by creating a symbolic link pointing to it from the "os_desc" directory
located at the top of a gadget's directory hierarchy.

One kind of "OS Descriptors" are "Extended Compatibility Descriptors",
which need to be specified per interface. This patch adds interface.<n>
directory in function's configfs directory to represent each interface
defined by the function. Each interface's directory contains two attributes:
"compatible_id" and "sub_compatible_id", which represent 8-byte
strings to be reported to the host as the "Compatible ID" and "Sub Compatible
ID".

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-05-14 09:39:25 -05:00
Andrzej Pietrasiewicz
37a3a53342 usb: gadget: OS Feature Descriptors support
There is a custom (non-USB IF) extension to the USB standard:

http://msdn.microsoft.com/library/windows/hardware/gg463182

They grant permission to use the specification - there is
"Microsoft OS Descriptor Specification License Agreement"
under the link mentioned above, and its Section 2 "Grant
of License", letter (b) reads:

"Patent license. Microsoft hereby grants to You a nonexclusive,
royalty-free, nontransferable, worldwide license under Microsoft’s
patents embodied solely within the Specification and that are owned
or licensable by Microsoft to make, use, import, offer to sell,
sell and distribute directly or indirectly to Your Licensees Your
Implementation. You may sublicense this patent license to Your
Licensees under the same terms and conditions."

The said extension is maintained by Microsoft for Microsoft.

Yet it is fairly common for various devices to use it, and a
popular proprietary operating system expects devices to provide
"OS descriptors", so Linux-based USB gadgets whishing to be able
to talk to a variety of operating systems should be able to provide
the "OS descriptors".

This patch adds optional support for gadgets whishing to expose
the so called "OS Feature Descriptors", that is "Extended Compatibility ID"
and "Extended Properties".

Hosts which do request "OS descriptors" from gadgets do so during
the enumeration phase and before the configuration is set with
SET_CONFIGURATION. What is more, those hosts never ask for configurations
at indices other than 0. Therefore, gadgets whishing to provide
"OS descriptors" must designate one configuration to be used with
this kind of hosts - this is what os_desc_config is added for in
struct usb_composite_dev. There is an additional advantage to it:
if a gadget provides "OS descriptors" and designates one configuration
to be used with such non-USB-compliant hosts it can invoke
"usb_add_config" in any order because the designated configuration
will be reported to be at index 0 anyway.

This patch also adds handling vendor-specific requests addressed
at device or interface and related to handling "OS descriptors".

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-05-14 09:38:16 -05:00
Andrzej Pietrasiewicz
19824d5eee usb: gadget: OS String support
There is a custom (non-USB IF) extension to the USB standard:

http://msdn.microsoft.com/library/windows/hardware/gg463182

They grant permission to use the specification - there is
"Microsoft OS Descriptor Specification License Agreement"
under the link mentioned above, and its Section 2 "Grant
of License", letter (b) reads:

"Patent license. Microsoft hereby grants to You a nonexclusive,
royalty-free, nontransferable, worldwide license under Microsoft’s
patents embodied solely within the Specification and that are owned
or licensable by Microsoft to make, use, import, offer to sell,
sell and distribute directly or indirectly to Your Licensees Your
Implementation. You may sublicense this patent license to Your
Licensees under the same terms and conditions."

The said extension is maintained by Microsoft for Microsoft.

Yet it is fairly common for various devices to use it, and a
popular proprietary operating system expects devices to provide
"OS descriptors", so Linux-based USB gadgets whishing to be able
to talk to a variety of operating systems should be able to provide
the "OS descriptors".

This patch adds optional support for gadgets whishing to expose
the so called "OS String" under index 0xEE of language 0.
The contents of the string is generated based on the qw_sign
array and b_vendor_code.

Interested gadgets need to set the cdev->use_os_string flag,
fill cdev->qw_sign with appropriate values and fill cdev->b_vendor_code
with a value of their choice.

This patch does not however implement responding to any vendor-specific
USB requests.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2014-05-14 09:38:03 -05:00
Jiri Kosina
d4263348f7 Merge branch 'master' into for-next 2014-02-20 14:54:28 +01:00
Masanari Iida
e227867f12 treewide: Fix typo in Documentation/DocBook
This patch fix spelling typo in Documentation/DocBook.
It is because .html and .xml files are generated by make htmldocs,
I have to fix a typo within the source files.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2014-02-19 14:58:17 +01:00
Andrzej Pietrasiewicz
1933861db4 usb: gadget: configfs: allow setting function instance's name
USB function's configfs config group is created in a generic way in
usb/gadget/configfs.c:function_make(), which in turn delegates actual
allocation and setup of the USB function instance to a particular
implementation, e.g. in f_acm.c. The said implementation does its job
in a parameter-less function e.g. acm_alloc_instance(), which results
in creating an unnamed config group, whose name is set later in
function_make(). function_make() creates the name by parsing a string
of the form:

<function name>.<instance name>

which comes from userspace as a parameter to mkdir invocation.

Up to now only <function name> has been used, while <instance name>
has been ignored. This patch adds a set_inst_name() operation to
struct usb_function_instance which allows passing the <instance name>
from function_make() so that it is not ignored. It is entirely up to the
implementor of set_inst_name() what to do with the <instance name>.

In a typical case, the struct usb_function_instance is embedded in a
larger struct which is retrieved in set_inst_name() with container_of(),
and the larger struct contains a field to store the <instance name>.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-12-12 13:43:35 -06:00
Sebastian Andrzej Siewior
88af8bbe4e usb: gadget: the start of the configfs interface
|# modprobe dummy_hcd num=2
|# modprobe libcomposite

|# lsmod
|Module                  Size  Used by
|libcomposite           31648  0
|dummy_hcd              19871  0

|# mkdir /sys/kernel/config/usb_gadget/oha
|# cd /sys/kernel/config/usb_gadget/oha
|# mkdir configs/def.1
|# mkdir configs/def.2
|# mkdir functions/acm.ttyS1
|# mkdir strings/0x1
|mkdir: cannot create directory `strings/0x1': Invalid argument
|# mkdir strings/0x409
|# mkdir strings/1033
|mkdir: cannot create directory `strings/1033': File exists
|# mkdir strings/1032
|# mkdir configs/def.1/strings/0x409
|# mkdir configs/def.2/strings/0x409

|#find . -ls
|   975    0 drwxr-xr-x   5 root     root            0 Dec 23 17:40 .
|   978    0 drwxr-xr-x   4 root     root            0 Dec 23 17:43 ./strings
|  4100    0 drwxr-xr-x   2 root     root            0 Dec 23 17:43 ./strings/1032
|   995    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/1032/serialnumber
|   996    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/1032/product
|   997    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/1032/manufacturer
|  2002    0 drwxr-xr-x   2 root     root            0 Dec 23 17:41 ./strings/0x409
|   998    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/0x409/serialnumber
|   999    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/0x409/product
|  1000    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./strings/0x409/manufacturer
|   977    0 drwxr-xr-x   4 root     root            0 Dec 23 17:41 ./configs
|  4081    0 drwxr-xr-x   3 root     root            0 Dec 23 17:41 ./configs/def.2
|  4082    0 drwxr-xr-x   3 root     root            0 Dec 23 17:42 ./configs/def.2/strings
|  2016    0 drwxr-xr-x   2 root     root            0 Dec 23 17:42 ./configs/def.2/strings/0x409
|  1001    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.2/strings/0x409/configuration
|  1002    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.2/bmAttributes
|  1003    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.2/MaxPower
|   979    0 drwxr-xr-x   3 root     root            0 Dec 23 17:42 ./configs/def.1
|   980    0 drwxr-xr-x   3 root     root            0 Dec 23 17:42 ./configs/def.1/strings
|  5122    0 drwxr-xr-x   2 root     root            0 Dec 23 17:42 ./configs/def.1/strings/0x409
|  1004    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.1/strings/0x409/configuration
|  1005    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.1/bmAttributes
|  1006    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./configs/def.1/MaxPower
|   976    0 drwxr-xr-x   3 root     root            0 Dec 23 17:41 ./functions
|   981    0 drwxr-xr-x   2 root     root            0 Dec 23 17:41 ./functions/acm.ttyS1
|  1007    0 -r--r--r--   1 root     root         4096 Dec 23 17:43 ./functions/acm.ttyS1/port_num
|  1008    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./UDC
|  1009    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bcdUSB
|  1010    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bcdDevice
|  1011    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./idProduct
|  1012    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./idVendor
|  1013    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bMaxPacketSize0
|  1014    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bDeviceProtocol
|  1015    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bDeviceSubClass
|  1016    0 -rw-r--r--   1 root     root         4096 Dec 23 17:43 ./bDeviceClass

|# cat functions/acm.ttyS1/port_num
|0
|# ls -lah /dev/ttyGS*
|crw-rw---T 1 root dialout 252, 0 Dec 23 17:41 /dev/ttyGS0
|
|# echo 0x1234 > idProduct
|# echo 0xabcd > idVendor
|# echo 1122 > strings/0x409/serialnumber
|# echo "The manufacturer" > strings/0x409/manufacturer
|# echo 1 > strings/1032/manufacturer
|# echo 1sa > strings/1032/product
|# echo tada > strings/1032/serialnumber
|echo "Primary configuration" > configs/def.1/strings/0x409/configuration
|# echo "Secondary configuration" > configs/def.2/strings/0x409/configuration
|# ln -s functions/acm.ttyS1 configs/def.1/
|# ln -s functions/acm.ttyS1 configs/def.2/
|find configs/def.1/ -ls
|   979    0 drwxr-xr-x   3 root     root            0 Dec 23 17:49 configs/def.1/
|  6264    0 lrwxrwxrwx   1 root     root            0 Dec 23 17:48 configs/def.1/acm.ttyS1 -> ../../../../usb_gadget/oha/functions/acm.ttyS1
|   980    0 drwxr-xr-x   3 root     root            0 Dec 23 17:42 configs/def.1/strings
|  5122    0 drwxr-xr-x   2 root     root            0 Dec 23 17:49 configs/def.1/strings/0x409
|  6284    0 -rw-r--r--   1 root     root         4096 Dec 23 17:47 configs/def.1/strings/0x409/configuration
|  6285    0 -rw-r--r--   1 root     root         4096 Dec 23 17:49 configs/def.1/bmAttributes
|  6286    0 -rw-r--r--   1 root     root         4096 Dec 23 17:49 configs/def.1/MaxPower
|
|echo 120 > configs/def.1/MaxPower
|
|# ls -lh /sys/class/udc/
|total 0
|lrwxrwxrwx 1 root root 0 Dec 23 17:50 dummy_udc.0 -> ../../devices/platform/dummy_udc.0/udc/dummy_udc.0
|lrwxrwxrwx 1 root root 0 Dec 23 17:50 dummy_udc.1 -> ../../devices/platform/dummy_udc.1/udc/dummy_udc.1
|# echo dummy_udc.0 > UDC
|# lsusb
|Bus 001 Device 002: ID abcd:1234 Unknown
|
|lsusb -d abcd:1234 -v
|Device Descriptor:
…
|  idVendor           0xabcd Unknown
|  idProduct          0x1234
|  bcdDevice            3.06
|  iManufacturer           1 The manufacturer
|  iProduct                2
|  iSerial                 3 1122
|  bNumConfigurations      2
…
|echo "" > UDC

v5…v6
- wired up strings with usb_gstrings_attach()
- add UDC attribe. Write "udc-name" will bind the gadget. Write an empty
  string (it should contain \n since 0 bytes write get optimzed away)
  will unbind the UDC from the gadget. The name of available UDCs can be
  obtained from /sys/class/udc/

v4…v5
- string rework. This will add a strings folder incl. language code like
    strings/409/manufacturer
  as suggested by Alan.
- rebased ontop reworked functions.c which has usb_function_instance
  which is used prior after "mkdir acm.instance" and can be directly
  used for configuration via configfs.

v3…v4
 - moved functions from the root folde down to the gadget as suggested
   by Michał
 - configs have now their own configs folder as suggested by Michał.
   The folder is still name.bConfigurationValue where name becomes the
   sConfiguration. Is this usefull should we just stilc
   configs/bConfigurationValue/ ?
 - added configfs support to the ACM function. The port_num attribute is
   exported by f_acm. An argument has been added to the USB alloc
   function to distinguish between "old" (use facm_configure() to
   configure and configfs interface (expose a config_node).
   The port_num is currently a dumb counter. It will
   require some function re-work to make it work.

scheduled for v5:
- sym linking function into config.

v2…v3
- replaced one ifndef by ifdef as suggested by Micahał
- strstr()/strchr() function_make as suggested by Micahł
- replace [iSerialNumber|iProduct|iManufacturer] with
  [sSerialNumber|sProduct|sManufacturer] as suggested by Alan
- added creation of config descriptors

v1…v2
- moved gadgets from configfs' root directory into /udcs/ within our
  "usb_gadget" folder. Requested by Andrzej & Michał
- use a dot as a delimiter between function's name and its instance's name
  as suggested by Michał
- renamed all config_item_type, configfs_group_operations, make_group,
  drop_item as suggested by suggested by Andrzej to remain consisten
  within this file and within other configfs users
- Since configfs.c and functions.c are now part of the udc-core module,
  the module itself is now called udc. Also added a tiny ifdef around
  init code becuase udc-core is subsys init and this is too early for
  configfs in the built-in case. In the module case, we can only have
  one init function.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-04-03 14:43:32 +03:00
Nishanth Menon
43febb27dc usb: gadget: composite: fix kernel-doc warnings
A few trivial fixes for composite driver:

Warning(include/linux/usb/composite.h:165): No description found for parameter
	'fs_descriptors'
Warning(include/linux/usb/composite.h:165): Excess struct/union/enum/typedef
	member 'descriptors' description in 'usb_function'
Warning(include/linux/usb/composite.h:321): No description found for parameter
	'gadget_driver'
Warning(drivers/usb/gadget/composite.c:1777): Excess function parameter 'bind'
	description in 'usb_composite_probe'

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Kosina <trivial@kernel.org>
Cc: linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-03-05 13:15:00 +02:00
Sebastian Andrzej Siewior
9bb2859f8a usb: gadget: composite: introduce usb_gstrings_attach()
The USB strings don't (yet) fully work in multiple configs/gadget
environment. The string id is assigned to the descriptor and the struct
usb_strings. We create a copy of the individual descriptor so we don't
clash if we use a function more than once. However, we have only one
struct usb_string for each string.

Currently each function which is used multiple times checks for
"id != 0" and only assigns string ids if it did not happen yet. This
works well if we use the same function multiple times as long as we do
it within the "one" gadget we have. Trouble starts once we use the same
function in a second gadget.

In order to solve this I introduce usb_gstrings_attach(). This function will
crate a copy all structs except for the strings which are not copied.
After the copy it will assign USB ids and attach it to cdev.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:48 +02:00
Sebastian Andrzej Siewior
2d5a889902 usb: gadget: export composite's setup & disconnect function
The configfs can't use all of composite's hooks because ->bind() and
->unbind() has to be done a little differently. ->disconnect() and
->setup() on the hand can be recycled.
This patch exports them both so configfs can use them.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:47 +02:00
Sebastian Andrzej Siewior
a59233407a usb: gadget: factor out two helper functions from composite_bind()
This patch factors out two helper functions from composite_bind()
that is composite_dev_prepare() and its counterpart
composite_dev_cleanup().

This will be used by the configfs which requries a slightly different
bind/setup code because part of its configurations (i.e. config
descripts, cdev, …) are setup in advance and VID/PID and so one should
not be overwritten. Also the setup of ep0 endpoint can be delayed until
the UDC is assigned.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:47 +02:00
Sebastian Andrzej Siewior
0062f6e56f usb: gadget: add a forward pointer from usb_function to its "instance"
We can have multiple usb_functions which origin is the same "instance".
Within one USB configuration there should be only one function of an
instance. This back pointer helps configfs to recoginze to which
instance a given usb_function belongs.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:46 +02:00
Sebastian Andrzej Siewior
b473577854 usb: gadget: composite: add usb_remove_function()
This will be used to remove a single function from a given config. Right
now "ignore" that an error at ->bind() time and cleanup later during
composite_unbind() / remove_config().

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:42 +02:00
Sebastian Andrzej Siewior
de53c25447 usb: gadget: add some infracture to register/unregister functions
This patch provides an infrastructure to register & unregister a USB
function. This allows to turn a function into a module and avoid the
'#include "f_.*.c"' magic and we get a clear API / cut between the bare
gadget and its functions.
The concept is simple:
Each function defines the DECLARE_USB_FUNCTION_INIT macro whith an unique
name of the function and two allocation functions.
- one to create an "instance". The instance holds the current configuration
  set. In case there are two usb_configudations with one function there will
  be one instance and two usb_functions
- one to create an "function" from the instance.

The name of the instance is used to automaticaly load the module if it the
instance is not yet available.
The usb_function callbacks are slightly modified and extended:
- usb_get_function()
  creates a struct usb_function inclunding all pointers (bind,
  unbind,…). It uses the "instance" to map its configuration. So we can
  have _two_ struct usb_function, one for each usb_configuration.
- ->unbind()
  Since the struct usb_function was not allocated in ->bind() it should
  not kfree()d here. This function should only reverse what happens in
  ->bind() that is request cleanup and the cleanup of allocated
  descriptors.
- ->free_func()
  a simple kfree() of the struct usb_function

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-21 20:52:40 +02:00
Sebastian Andrzej Siewior
8f900a9a6e usb: gadget: consider link speed for bMaxPower
The USB 2.0 specification says that bMaxPower is the maximum power
consumption expressed in 2 mA units and the USB 3.0 specification says
that it is expressed in 8 mA units.

This patch renames bMaxPower to MaxPower and the various /2 and *2 are
removed. Before reporting the config descriptor, the proper value is
computer based on the speed, all in-tree users are updated. MaxPower is
also increased to u16 so we can store the nokia gadget value which is
larger than the max value allowed for u8.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2013-01-10 12:38:52 +02:00
Sebastian Andrzej Siewior
10287baec7 usb: gadget: always update HS/SS descriptors and create a copy of them
HS and SS descriptors are staticaly created. They are updated during the
bind process with the endpoint address, string id or interface numbers.

After that, the descriptor chain is linked to struct usb_function which
is used by composite in order to serve the GET_DESCRIPTOR requests,
number of available configs and so on.

There is no need to assign the HS descriptor only if the UDC supports
HS speed because composite won't report those to the host if HS support
has not been reached. The same reasoning is valid for SS.

This patch makes sure each function updates HS/SS descriptors
unconditionally and uses the newly introduced helper function to create a
copy the descriptors for the speed which is supported by the UDC.

While at that, also rename f->descriptors to f->fs_descriptors in order
to make it more explicit what that means.

Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-10-31 15:09:44 +02:00
Sebastian Andrzej Siewior
bcb2f99c6c usb: gadget: use a computation macro for INT endpoint interval
The 5+4 magic for HS tries to aim 32ms which is also what is intended
with 1 << 5 for FS. This little macro should make this easier to
understand.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-10-31 15:01:15 +02:00
Sebastian Andrzej Siewior
ed9cbda63d usb: gadget: remove usb_gadget_controller_number()
The bcdDevice field is defined as
|Device release number in binary-coded decimal
in the USB 2.0 specification. We use this field to distinguish the UDCs
from each other. In theory this could be used on the host side to apply
certain quirks if the "special" UDC in combination with this gadget is
used. This hasn't been done as far as I am aware. In practice it would
be better to fix the UDC driver before shipping since a later release
might not need this quirk anymore.

There are some driver in tree (on the host side) which use the bcdDevice
field to figure out special workarounds for a given firmware revision.
This seems to make sense. Therefore this patch converts all gadgets
(except a few) to use the kernel version instead a random 2 or 3 plus
the UDC number. The few that don't report kernel's version are:
- webcam
  This one reports always a version 0x10 so allow it to do so in future.
- nokia
  This one reports always 0x211. The comment says that this gadget works
  only if the UDC supports altsettings so I added a check for this.
- serial
  This one reports 0x2400 + UDC number. Since the gadget version is 2.4
  this could make sense. Therefore bcdDevice is 0x2400 here.

I also remove various gadget_is_<name> macros which are unused. The
remaining few macros should be moved to feature / bug bitfield.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:43:24 +03:00
Sebastian Andrzej Siewior
cc2683c318 usb: gadget: Provide a default implementation of default manufacturer string
Some gadgets provide custom entry here. Some may override it with an
etntry that is also created by composite if there was no value sumbitted
at all.
This patch removes all "custom manufacturer" strings which are the same
as these which are created by composite. Then it moves the creation of
the default manufacturer string to usb_composite_overwrite_options() in
case no command line argument has been used and the entry is still an
empty string.
By doing this we get rid of the global variable "composite_manufacturer"
in composite.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:02 +03:00
Sebastian Andrzej Siewior
d33f74fce3 usb: gadget: remove string override from struct usb_composite_driver
The struct usb_composite_driver members iProduct, iSerial and
iManufacturer can be entered directly via the string array. There is no
need for them to appear here.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:02 +03:00
Sebastian Andrzej Siewior
2d35ee47aa usb: gadget: push iProduct into gadgets
This patch pushes the iProduct module argument from composite
into each gadget.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:01 +03:00
Sebastian Andrzej Siewior
03de9bf69c usb: gadget: push iManufacturer into gadgets
This patch pushes the iManufacturer module argument from composite into
each gadget. Once the user uses the module paramter, the string is
overwritten with the final value.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:01 +03:00
Sebastian Andrzej Siewior
1cf0d26408 usb: gadget: push iSerialNumber into gadgets
This patch pushes the iSerialNumber module argument from composite into
each gadget. Once the user uses the module paramter, the string is
overwritten with the final value.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:00 +03:00
Sebastian Andrzej Siewior
276e2e4f1f usb: gadget: make sure each gadget is using same index for Product, Serial,…
The index in usb_string array is defined by the gadget. The gadget can
choose which index entry it assigns for the serial number and which the
product name. The gadget has just to ensure that the descriptor contains
the proper string id which is assigned by composite.
If the composite layer knows the index of the "default" information
which will be overwritten by module parameters, it can be used later to
overwrite it.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:13:00 +03:00
Sebastian Andrzej Siewior
7d16e8d3eb usb: gadget: push VID/PID/USB BCD module option into gadgets
This patch moves the module options idVendor, idProduct and bcdDevice
from composite.c into each gadgets. This ensures compatibility with
current gadgets and removes the global variable which brings me step
closer towards composite.c in libcomposite

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:12:59 +03:00
Sebastian Andrzej Siewior
40bfef0535 usb: gadget: remove bufsiz from struct usb_composite_dev
there is no read user of bufsiz, its content is available via
USB_COMP_EP0_BUFSIZ. Remove it.

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2012-09-10 16:01:43 +03:00