Commit Graph

267 Commits

Author SHA1 Message Date
Lee Jones
9744c81f5f ANDROID: Incremental fs: Allocate data buffer based on input request size
Presently the data buffer used to return the per-UID timeout description
is created based on information provided by the user.  It is expected
that the user populates a variable called 'timeouts_array_size' which is
heavily scrutinised to ensure the value provided is appropriate i.e.
smaller than the largest possible value but large enough to contain all
of the data we wish to pass back.

The issue is that the aforementioned scrutiny is imposed on a different
variable to the one expected.  Contrary to expectation, the data buffer
is actually being allocated to the size specified in a variable named
'timeouts_array_size_out'.  A variable originally designed to only
contain the output information i.e. the size of the data actually copied
to the user for consumption.  This value is also user provided and is
not given the same level of scrutiny as the former.

The fix in this case is simple.  Ignore 'timeouts_array_size_out' until
it is time to populate (over-write) it ourselves and use
'timeouts_array_size' to shape the buffer as intended.

Bug: 281547360
Change-Id: I95e12879a33a2355f9e4bc0ce2bfc3f229141aa8
Signed-off-by: Lee Jones <joneslee@google.com>
(cherry picked from commit 5a4d20a3eb4e651f88ed2f1f08cee066639ca801)
2025-09-08 17:19:32 +03:00
Paul Lawrence
05587b0a55 ANDROID: incremental fs: Fix race between truncate and write last block
Also fix race whereby multiple providers writinig the same block would
actually write out the same block.

Note that multiple_providers_test started failing when incfs was ported
to 5.15, and these fixes are needed to make the test reliable

Bug: 264703896
Test: incfs-test passes, specifically multiple_providers_test. Ran 100
      times
Change-Id: I05ad5b2b2f62cf218256222cecb79bbe9953bd97
Signed-off-by: Paul Lawrence <paullawrence@google.com>
2025-09-08 17:19:32 +03:00
Tadeusz Struk
a16ea56c31 ANDROID: incfs: Add check for ATTR_KILL_SUID and ATTR_MODE in incfs_setattr
Add an explicite check for ATTR_KILL_SUID and ATTR_MODE in incfs_setattr.
Both of these attributes can not be set at the same time, otherwise
notify_change() function will check it and invoke BUG(), crashing
the system.

Bug: 243394930

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I91080d68efbd62f1441e20a5c02feef3d1b06e4e
2025-09-08 17:19:31 +03:00
Tadeusz Struk
74af206849 ANDROID: incremental-fs: Add free options in incfs_mount
After the revert of:
"ANDROID: incremental-fs: remove index and incomplete dir on umount"
the free call was missing. Add it back to prevent a leak.

Bug: 217661925
Bug: 218732047
Bug: 219731048

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I9761183720af61bee373accfb57d92ffc68a34b1
2025-09-08 17:19:31 +03:00
Tadeusz Struk
21b52668f6 ANDROID: incremental-fs: fix GPF in pending_reads_dispatch_ioctl
It is possible that fget returns NULL. This needs to be handled
correctly in ioctl_permit_fill.

Bug: 212821226

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: Iec8be21982afeab6794b78ab1a542671c52acea2
2025-09-08 17:19:31 +03:00
Tadeusz Struk
cc5015dd2f ANDROID: incremental-fs: limit mount stack depth
Syzbot recently found a number of issues related to incremental-fs
(see bug numbers below). All have to do with the fact that incr-fs
allows mounts of the same source and target multiple times.
This is a design decision and the user space component "Data Loader"
expects this to work for app re-install use case.
The mounting depth needs to be controlled, however, and only allowed
to be two levels deep. In case of more than two mount attempts the
driver needs to return an error.
In case of the issues listed below the common pattern is that the
reproducer calls:

mount("./file0", "./file0", "incremental-fs", 0, NULL)

many times and then invokes a file operation like chmod, setxattr,
or open on the ./file0. This causes a recursive call for all the
mounted instances, which eventually causes a stack overflow and
a kernel crash:

BUG: stack guard page was hit at ffffc90000c0fff8
kernel stack overflow (double-fault): 0000 [#1] PREEMPT SMP KASAN

This change also cleans up the mount error path to properly clean
allocated resources and call deactivate_locked_super(), which
causes the incfs_kill_sb() to be called, where the sb is freed.

Bug: 211066171
Bug: 213140206
Bug: 213215835
Bug: 211914587
Bug: 211213635
Bug: 213137376
Bug: 211161296

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I08d9b545a2715423296bf4beb67bdbbed78d1be1
2025-02-12 16:56:03 +02:00
Randall Huang
6663b17041 ANDROID: incremental fs: Evict inodes before freeing mount data
Backport the missing commit 544f39d369 ("ANDROID: incremental
fs: Evict inodes before freeing mount data") in order to fix
test failure.

Bug: 322293829
Test: run atest
Change-Id: I239a5b90abc5c573bdb4c23b2144ac041170e32e
Signed-off-by: Randall Huang <huangrandall@google.com>
2024-02-23 12:01:42 +08:00
Wilson Sung
5084fd58f3 Merge android-4.19-stable (4.19.215) into android-msm-pixel-4.19-lts
Merge 4.19.215 into android-4.19-stable
Linux 4.19.215
  * sctp: add vtag check in sctp_sf_ootb
      net/sctp/sm_statefuns.c
  * sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
      net/sctp/sm_statefuns.c
  * sctp: add vtag check in sctp_sf_violation
      net/sctp/sm_statefuns.c
  * sctp: fix the processing for COOKIE_ECHO chunk
      net/sctp/sm_statefuns.c
  * sctp: use init_tag from inithdr for ABORT chunk
      net/sctp/sm_statefuns.c
    net: nxp: lpc_eth.c: avoid hang when bringing interface down
    net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
    net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
    nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
  * net: Prevent infinite while loop in skb_tx_hash()
      net/core/dev.c
    net: batman-adv: fix error handling
  * regmap: Fix possible double-free in regcache_rbtree_exit()
      drivers/base/regmap/regcache-rbtree.c
    arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
    RDMA/mlx5: Set user priority for DCT
    net: lan78xx: fix division by zero in send path
    mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
    mmc: sdhci: Map more voltage level to SDHCI_POWER_330
    mmc: dw_mmc: exynos: fix the finding clock sample value
    mmc: cqhci: clear HALT state after CQE enable
    mmc: vub300: fix control-message timeouts
  * ipv6: make exception cache less predictible
      net/ipv6/route.c
  * ipv6: use siphash in rt6_exception_hash()
      net/ipv6/route.c
  * ipv4: use siphash instead of Jenkins in fnhe_hashfun()
      net/ipv4/route.c
  * Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
      drivers/net/phy/mdio_bus.c
    nfc: port100: fix using -ERRNO as command type mask
    ata: sata_mv: Fix the error handling of mv_chip_id()
  * usbnet: fix error return code in usbnet_probe()
      drivers/net/usb/usbnet.c
  * usbnet: sanity check for maxpacket
      drivers/net/usb/usbnet.c
    ARM: 8819/1: Remove '-p' from LDFLAGS
  * arm64: Avoid premature usercopy failure
      arch/arm64/lib/copy_from_user.S
      arch/arm64/lib/copy_in_user.S
      arch/arm64/lib/copy_to_user.S
    powerpc/bpf: Fix BPF_MOD when imm == 1
    ARM: 9141/1: only warn about XIP address when not compile testing
    ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
    ARM: 9134/1: remove duplicate memcpy() definition
    ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
    Merge 4.19.214 into android-4.19-stable
  * ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
      fs/incfs/vfs.c
Linux 4.19.214
    ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
  * tracing: Have all levels of checks prevent recursion
      kernel/trace/trace.h
  * net: mdiobus: Fix memory leak in __mdiobus_register
      drivers/net/phy/mdio_bus.c
  * scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
      drivers/scsi/hosts.c
    ALSA: hda: avoid write to STATESTS if controller is in reset
    platform/x86: intel_scu_ipc: Update timeout value in comment
    isdn: mISDN: Fix sleeping function called from invalid context
    ARM: dts: spear3xx: Fix gmac node
    net: stmmac: add support for dwmac 3.40a
    btrfs: deal with errors when checking if a dir entry exists during log replay
  * gcc-plugins/structleak: add makefile var for disabling structleak
      scripts/Makefile.gcc-plugins
  * netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
      net/netfilter/Kconfig
    isdn: cpai: check ctr->cnr to avoid array index out of bound
    nfc: nci: fix the UAF of rf_conn_info object
  * mm, slub: fix mismatch between reconstructed freelist depth and cnt
      mm/slub.c
  * ASoC: DAPM: Fix missing kctl change notifications
      sound/soc/soc-dapm.c
    ALSA: hda/realtek: Add quirk for Clevo PC50HS
  * ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
      sound/usb/quirks-table.h
  * vfs: check fd has read access in kernel_read_file_from_fd()
      fs/exec.c
  * elfcore: correct reference to CONFIG_UML
      include/linux/elfcore.h
    ocfs2: mount fails with buffer overflow in strlen
    ocfs2: fix data corruption after conversion from inline format
    can: peak_pci: peak_pci_remove(): fix UAF
    can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
    can: rcar_can: fix suspend/resume
    net: hns3: disable sriov before unload hclge layer
    net: hns3: add limit ets dwrr bandwidth cannot be 0
    NIOS2: irqflags: rename a redefined register name
  * lan78xx: select CRC32
      drivers/net/usb/Kconfig
    netfilter: ipvs: make global sysctl readonly in non-init netns
    ASoC: wm8960: Fix clock configuration on slave mode
    dma-debug: fix sg checks in debug_dma_map_sg()
    NFSD: Keep existing listeners on portlist error
    xtensa: xtfpga: Try software restart before simulating CPU reset
    xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
    Merge 4.19.213 into android-4.19-stable
    UPSTREAM: crypto: arm/blake2s - fix for big endian
    ANDROID: gki_defconfig: enable BLAKE2b support
    BACKPORT: crypto: arm/blake2b - add NEON-accelerated BLAKE2b
    BACKPORT: crypto: blake2b - update file comment
  * BACKPORT: crypto: blake2b - sync with blake2s implementation
      include/crypto/blake2b.h
      include/crypto/internal/blake2b.h
  * UPSTREAM: wireguard: Kconfig: select CRYPTO_BLAKE2S_ARM
      drivers/net/Kconfig
    UPSTREAM: crypto: arm/blake2s - add ARM scalar optimized BLAKE2s
  * UPSTREAM: crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
      include/crypto/blake2s.h
  * UPSTREAM: crypto: blake2s - adjust include guard naming
      include/crypto/blake2s.h
      include/crypto/internal/blake2s.h
  * UPSTREAM: crypto: blake2s - add comment for blake2s_state fields
      include/crypto/blake2s.h
  * UPSTREAM: crypto: blake2s - optimize blake2s initialization
      include/crypto/blake2s.h
      include/crypto/internal/blake2s.h
  * BACKPORT: crypto: blake2s - share the "shash" API boilerplate code
      include/crypto/internal/blake2s.h
  * UPSTREAM: crypto: blake2s - move update and final logic to internal/blake2s.h
      include/crypto/internal/blake2s.h
    UPSTREAM: crypto: blake2s - remove unneeded includes
    UPSTREAM: crypto: x86/blake2s - define shash_alg structs using macros
    UPSTREAM: crypto: blake2s - define shash_alg structs using macros
  * UPSTREAM: crypto: lib/blake2s - Move selftest prototype into header file
      include/crypto/internal/blake2s.h
    UPSTREAM: crypto: blake2b - Fix clang optimization for ARMv7-M
    UPSTREAM: crypto: blake2b - rename tfm context and _setkey callback
    UPSTREAM: crypto: blake2b - merge _update to api callback
    UPSTREAM: crypto: blake2b - open code set last block helper
    UPSTREAM: crypto: blake2b - delete unused structs or members
    UPSTREAM: crypto: blake2b - simplify key init
    UPSTREAM: crypto: blake2b - merge blake2 init to api callback
    UPSTREAM: crypto: blake2b - merge _final implementation to callback
  * BACKPORT: crypto: testmgr - add test vectors for blake2b
      crypto/testmgr.c
  * BACKPORT: crypto: blake2b - add blake2b generic implementation
      crypto/Kconfig
      crypto/Makefile
Linux 4.19.213
  * r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
      drivers/net/usb/Kconfig
    qed: Fix missing error code in qed_slowpath_start()
    mqprio: Correct stats in mqprio_dump_class_stats().
    acpi/arm64: fix next_platform_timer() section mismatch error
    drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
    drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
    drm/msm: Fix null pointer dereference on pointer edp
    platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
    pata_legacy: fix a couple uninitialized variable bugs
    NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
    NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
    nfc: fix error handling of nfc_proto_register()
    ethernet: s2io: fix setting mac address during resume
    net: encx24j600: check error in devm_regmap_init_encx24j600
  * net: korina: select CRC32
      drivers/net/ethernet/Kconfig
  * net: arc: select CRC32
      drivers/net/ethernet/arc/Kconfig
  * sctp: account stream padding length for reconf chunk
      net/sctp/sm_make_chunk.c
    iio: dac: ti-dac5571: fix an error code in probe()
    iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
    iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
    iio: light: opt3001: Fixed timeout error when 0 lux
    iio: adc128s052: Fix the error handling path of 'adc128_probe()'
    iio: adc: aspeed: set driver data when adc probe.
    x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
  * nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
      drivers/nvmem/core.c
    virtio: write back F_VERSION_1 before validate
    USB: serial: option: add prod. id for Quectel EG91
    USB: serial: option: add Telit LE910Cx composition 0x1204
    USB: serial: option: add Quectel EC200S-CN module support
    USB: serial: qcserial: add EM9191 QDL support
  * Input: xpad - add support for another USB ID of Nacon GC-100
      drivers/input/joystick/xpad.c
    usb: musb: dsps: Fix the probe error path
    efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
    efi/cper: use stack buffer for error record decoding
    cb710: avoid NULL pointer subtraction
  * xhci: Enable trust tx length quirk for Fresco FL11 USB controller
      drivers/usb/host/xhci-pci.c
  * xhci: Fix command ring pointer corruption while aborting a command
      drivers/usb/host/xhci-ring.c
  * xhci: guard accesses to ep_state in xhci_endpoint_reset()
      drivers/usb/host/xhci.c
    mei: me: add Ice Lake-N device id.
    x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
    btrfs: check for error when looking up inode during dir entry replay
    btrfs: deal with errors when adding inode reference during log replay
    btrfs: deal with errors when replaying dir entry during log replay
    s390: fix strrchr() implementation
    nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
    ALSA: hda/realtek - ALC236 headset MIC recording issue
    ALSA: hda/realtek: Add quirk for Clevo X170KM-G
    ALSA: hda/realtek: Complete partial device name to avoid ambiguity
    ALSA: seq: Fix a potential UAF by wrong private_free call order
    Merge 4.19.212 into android-4.19-stable
Linux 4.19.212
  * sched: Always inline is_percpu_thread()
      include/linux/sched.h
    perf/x86: Reset destroy callback on event init failure
    scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
    scsi: ses: Fix unsigned comparison with less than zero
  * net: sun: SUNVNET_COMMON should depend on INET
      drivers/net/ethernet/sun/Kconfig
    mac80211: check return value of rhashtable_init
  * net: prevent user from passing illegal stab size
      include/net/pkt_sched.h
      net/sched/sch_api.c
    m68k: Handle arrivals of multiple signals correctly
    mac80211: Drop frames from invalid MAC address in ad-hoc mode
  * netfilter: ip6_tables: zero-initialize fragment offset
      net/ipv6/netfilter/ip6_tables.c
  * HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
      drivers/hid/hid-apple.c
    net: phy: bcm7xxx: Fixed indirect MMD operations
    Merge 4.19.211 into android-4.19-stable
  * Revert "lib/timerqueue: Rely on rbtree semantics for next timer"
      include/linux/timerqueue.h
      lib/timerqueue.c
    Merge 4.19.210 into android-4.19-stable
Linux 4.19.211
    x86/Kconfig: Correct reference to MWINCHIP3D
    i2c: acpi: fix resource leak in reconfiguration device addition
    i40e: Fix freeing of uninitialized misc IRQ vector
    i40e: fix endless loop under rtnl
  * rtnetlink: fix if_nlmsg_stats_size() under estimation
      net/core/rtnetlink.c
    drm/nouveau/debugfs: fix file release memory leak
  * netlink: annotate data races around nlk->bound
      net/netlink/af_netlink.c
    net: sfp: Fix typo in state machine debug string
  * net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
      net/bridge/br_netlink.c
    ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
    ptp_pch: Load module automatically if ID matches
    powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
  * net_sched: fix NULL deref in fifo_set_limit()
      net/sched/sch_fifo.c
  * phy: mdio: fix memory leak
      drivers/net/phy/mdio_bus.c
  * bpf: Fix integer overflow in prealloc_elems_and_freelist()
      kernel/bpf/stackmap.c
    bpf, arm: Fix register clobbering in div/mod implementation
    xtensa: call irqchip_init only when CONFIG_USE_OF is selected
    bpf, mips: Validate conditional branch offsets
    ARM: dts: qcom: apq8064: use compatible which contains chipid
    ARM: dts: omap3430-sdp: Fix NAND device node
    xen/balloon: fix cancelled balloon action
    nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
  * ovl: fix missing negative dentry check in ovl_rename()
      fs/overlayfs/dir.c
    xen/privcmd: fix error handling in mmap-resource processing
    USB: cdc-acm: fix break reporting
    USB: cdc-acm: fix racy tty buffer accesses
  * Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
      drivers/usb/Kconfig
  * ANDROID: Different fix for KABI breakage in 4.19.209 in struct sock
      include/net/sock.h
    ANDROID: GKI: update .xml file for struct sock change
Linux 4.19.210
  * lib/timerqueue: Rely on rbtree semantics for next timer
      include/linux/timerqueue.h
      lib/timerqueue.c
  * libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
      include/linux/libata.h
    tools/vm/page-types: remove dependency on opt_file for idle page tracking
    scsi: ses: Retry failed Send/Receive Diagnostic commands
    selftests: be sure to make khdr before other targets
    usb: dwc2: check return value after calling platform_get_resource()
    usb: testusb: Fix for showing the connection speed
  * scsi: sd: Free scsi_disk device via put_device()
      drivers/scsi/sd.c
    ext2: fix sleeping in atomic bugs on error
    sparc64: fix pci_iounmap() when CONFIG_PCI is not set
    xen-netback: correct success/error reporting for the SKB-with-fraglist case
  * net: mdio: introduce a shutdown method to mdio device drivers
      drivers/net/phy/mdio_device.c
      include/linux/mdio.h
  * ANDROID: Fix up KABI breakage in 4.19.209 in struct sock
      include/net/sock.h
    Merge 4.19.209 into android-4.19-stable
  * FROMLIST: dm-verity: skip verity_handle_error on I/O errors
      drivers/md/dm-verity-target.c
Linux 4.19.209
  * cred: allow get_cred() and put_cred() to be given NULL.
      include/linux/cred.h
  * HID: usbhid: free raw_report buffers in usbhid_stop
      drivers/hid/usbhid/hid-core.c
    netfilter: ipset: Fix oversized kvmalloc() calls
    HID: betop: fix slab-out-of-bounds Write in betop_probe
    crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
    usb: hso: remove the bailout parameter
    usb: hso: fix error handling code of hso_create_net_device
    hso: fix bailout in error case of probe
    ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
    ARM: 9079/1: ftrace: Add MODULE_PLTS support
    ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
    ARM: 9077/1: PLT: Move struct plt_entries definition to header
    EDAC/synopsys: Fix wrong value type assignment for edac_mode
  * net: udp: annotate data race around udp_sk(sk)->corkflag
      net/ipv4/udp.c
      net/ipv6/udp.c
  * ext4: fix potential infinite loop in ext4_dx_readdir()
      fs/ext4/dir.c
    ipack: ipoctal: fix module reference leak
    ipack: ipoctal: fix missing allocation-failure check
    ipack: ipoctal: fix tty-registration error handling
    ipack: ipoctal: fix tty registration race
    ipack: ipoctal: fix stack information leak
  * elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
      fs/binfmt_elf.c
  * af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
      include/net/sock.h
      net/core/sock.c
      net/unix/af_unix.c
    scsi: csiostor: Add module softdep on cxgb4
    Revert "block, bfq: honor already-setup queue merges"
    e100: fix buffer overrun in e100_get_regs
    e100: fix length calculation in e100_get_regs_len
    hwmon: (tmp421) fix rounding for negative values
    hwmon: (tmp421) report /PVLD condition as fault
    hwmon: (tmp421) Replace S_<PERMS> with octal values
  * sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
      net/sctp/input.c
    mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
    mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
    hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs
    ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
    drm/amd/display: Pass PCI deviceid into DC
    x86/kvmclock: Move this_cpu_pvti into kvmclock.h
    mac80211: fix use-after-free in CCMP/GCMP RX
  * cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
      drivers/cpufreq/cpufreq_governor_attr_set.c
  * cpufreq: schedutil: Use kobject release() method to free sugov_tunables
      kernel/sched/cpufreq_schedutil.c
    tty: Fix out-of-bound vmalloc access in imageblit
    qnx4: work around gcc false positive warning bug
    xen/balloon: fix balloon kthread freezing
  * tcp: adjust rto_base in retransmits_timed_out()
      net/ipv4/tcp_timer.c
  * tcp: create a helper to model exponential backoff
      net/ipv4/tcp_timer.c
  * tcp: always set retrans_stamp on recovery
      net/ipv4/tcp_output.c
      net/ipv4/tcp_timer.c
  * tcp: address problems caused by EDT misshaps
      net/ipv4/tcp_input.c
      net/ipv4/tcp_timer.c
    PCI: aardvark: Fix checking for PIO status
    arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
    erofs: fix up erofs_lookup tracepoint
    spi: Fix tegra20 build with CONFIG_PM=n
    net: 6pack: Fix tx timeout and slot time
    alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
  * arm64: Mark __stack_chk_guard as __ro_after_init
      arch/arm64/kernel/process.c
    parisc: Use absolute_pointer() to define PAGE0
    qnx4: avoid stringop-overread errors
    sparc: avoid stringop-overread errors
    net: i825xx: Use absolute_pointer for memcpy from fixed memory location
  * compiler.h: Introduce absolute_pointer macro
      include/linux/compiler.h
    nvme-multipath: fix ANA state updates when a namespace is not present
    xen/balloon: use a kernel thread instead a workqueue
    m68k: Double cast io functions to unsigned long
    net: stmmac: allow CSR clock of 300MHz
    net: macb: fix use after free on rmmod
  * blktrace: Fix uaf in blk_trace access after removing by sysfs
      kernel/trace/blktrace.c
    md: fix a lock order reversal in md_alloc
  * irqchip/gic-v3-its: Fix potential VPE leak on error
      drivers/irqchip/irq-gic-v3-its.c
  * irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
      drivers/irqchip/Kconfig
  * thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
      drivers/thermal/thermal_core.c
    fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
    fpga: machxo2-spi: Return an error on failure
    tty: synclink_gt: rename a conflicting function name
    tty: synclink_gt, drop unneeded forward declarations
    scsi: iscsi: Adjust iface sysfs attr detection
    net/mlx4_en: Don't allow aRFS for encapsulated packets
    gpio: uniphier: Fix void functions to remove return value
    net/smc: add missing error check in smc_clc_prfx_set()
    bnxt_en: Fix TX timeout when TX ring size is set to the smallest
    net: hso: fix muxed tty registration
    serial: mvebu-uart: fix driver's tx_empty callback
    mcb: fix error handling in mcb_alloc_bus()
    USB: serial: option: add device id for Foxconn T99W265
    USB: serial: option: remove duplicate USB device ID
    USB: serial: option: add Telit LN920 compositions
    USB: serial: mos7840: remove duplicated 0xac24 device ID
    Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
    staging: greybus: uart: fix tty use after free
    USB: cdc-acm: fix minor-number release
    USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
  * usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
      drivers/usb/storage/unusual_devs.h
    xen/x86: fix PV trap handling on secondary processors
    cifs: fix incorrect check for null pointer in header_assemble
    usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
    usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
    usb: gadget: r8a66597: fix a loop in set_feature()
    ocfs2: drop acl cache for directories too
    Merge 4.19.208 into android-4.19-stable
    ANDROID: GKI: update ABI xml
    ANDROID: GKI: Update aarch64 cuttlefish symbol list
  * ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE()
      include/linux/android_kabi.h
  * BACKPORT: loop: Set correct device size when using LOOP_CONFIGURE
      drivers/block/loop.c
Linux 4.19.208
    drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
    blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
    pwm: stm32-lp: Don't modify HW state in .remove() callback
    pwm: rockchip: Don't modify HW state in .remove() callback
    pwm: img: Don't modify HW state in .remove() callback
    nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
    nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
    nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
    nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
    nilfs2: fix NULL pointer in nilfs_##name##_attr_release
    nilfs2: fix memory leak in nilfs_sysfs_create_device_group
    ceph: lockdep annotations for try_nonblocking_invalidate
    dmaengine: xilinx_dma: Set DMA mask for coherent APIs
  * dmaengine: ioat: depends on !UML
      drivers/dma/Kconfig
    dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
    parisc: Move pci_dev_is_behind_card_dino to where it is used
  * drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
      arch/arm64/kernel/cacheinfo.c
      include/linux/cacheinfo.h
  * Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
      lib/Kconfig.debug
    pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered
  * profiling: fix shift-out-of-bounds bugs
      kernel/profile.c
    nilfs2: use refcount_dec_and_lock() to fix potential UAF
  * prctl: allow to setup brk for et_dyn executables
      kernel/sys.c
    9p/trans_virtio: Remove sysfs file on probe failure
    thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
    dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
  * sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
      net/sctp/sm_make_chunk.c
  * sctp: validate chunk size in __rcv_asconf_lookup
      net/sctp/input.c
    tracing/kprobe: Fix kprobe_on_func_entry() modification
    crypto: talitos - fix max key size for sha384 and sha512
    apparmor: remove duplicate macro list_entry_is_head()
  * rcu: Fix missed wakeup of exp_wq waiters
      kernel/rcu/tree_exp.h
  * KVM: remember position in kvm->vcpus array
      include/linux/kvm_host.h
    s390/bpf: Fix optimizing out zero-extensions

Bug: 205088357
Change-Id: Ib9d80af897f5c3076e6793dc3db117d198e499c2
Signed-off-by: JohnnLee <johnnlee@google.com>
2021-11-24 03:28:15 +00:00
Lee Jones
998e8e89b3 ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
Syz{bot,kaller} reports[0]:

  BUG: Dentry ffff888119d8a000{i=0,n=.index}  still in use (1) [unmount of ramfs ramfs]
  ------------[ cut here ]------------
  WARNING: CPU: 0 PID: 367 at fs/dcache.c:1616 umount_check+0x18d/0x1d0 fs/dcache.c:1607
  Modules linked in:
  CPU: 0 PID: 367 Comm: syz-executor388 Not tainted 5.10.75-syzkaller-01082-g234d53d2bb60 #0
  Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
  RIP: 0010:umount_check+0x18d/0x1d0 fs/dcache.c:1607
  Code: 8b 0b 49 81 c6 f8 03 00 00 48 c7 c7 00 40 2e 85 4c 89 e6 48 8b 55 d0 4c 89 e1 45 89 f8 31 c0 41 56 e8 ae d9 9e ff 48 83 c4 08 <0f> 0b e9 f1 fe ff ff 89 d9 80 e1 07 80 c1 03 38 c1 0f 8c c9 fe ff
  RSP: 0018:ffffc9000096f770 EFLAGS: 00010292
  RAX: 0000000000000055 RBX: ffffffff866af200 RCX: 1ad6b89836e5b500
  RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000
  RBP: ffffc9000096f7a0 R08: ffffffff81545368 R09: 0000000000000003
  R10: fffff5200012de41 R11: 0000000000000004 R12: ffff888119d8a000
  R13: dffffc0000000000 R14: ffff88811d7373f8 R15: 0000000000000001
  FS:  0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 00007f01b7bddb68 CR3: 000000010c4f0000 CR4: 00000000003506b0
  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
  Call Trace:
   d_walk+0x309/0x540 fs/dcache.c:1326
   do_one_tree fs/dcache.c:1623 [inline]
   shrink_dcache_for_umount+0x8e/0x1b0 fs/dcache.c:1639
   generic_shutdown_super+0x66/0x2c0 fs/super.c:447
   kill_anon_super fs/super.c:1108 [inline]
   kill_litter_super+0x75/0xa0 fs/super.c:1117
   ramfs_kill_sb+0x44/0x50 fs/ramfs/inode.c:270
   deactivate_locked_super+0xb0/0x100 fs/super.c:335
   deactivate_super+0xa5/0xd0 fs/super.c:366
   cleanup_mnt+0x45f/0x510 fs/namespace.c:1118
   __cleanup_mnt+0x19/0x20 fs/namespace.c:1125
   task_work_run+0x147/0x1b0 kernel/task_work.c:154
   exit_task_work include/linux/task_work.h:30 [inline]
   do_exit+0x70e/0x23a0 kernel/exit.c:813
   do_group_exit+0x16a/0x2d0 kernel/exit.c:910
   get_signal+0x133e/0x1f80 kernel/signal.c:2790
   arch_do_signal+0x8d/0x620 arch/x86/kernel/signal.c:805
   exit_to_user_mode_loop kernel/entry/common.c:161 [inline]
   exit_to_user_mode_prepare+0xaa/0xe0 kernel/entry/common.c:191
   syscall_exit_to_user_mode+0x24/0x40 kernel/entry/common.c:266
   do_syscall_64+0x3d/0x70 arch/x86/entry/common.c:56
   entry_SYSCALL_64_after_hwframe+0x44/0xa9
  RIP: 0033:0x7f01b7b884f9
  Code: Unable to access opcode bytes at RIP 0x7f01b7b884cf.
  RSP: 002b:00007f01b7b19308 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
  RAX: fffffffffffffe00 RBX: 00007f01b7c103f8 RCX: 00007f

Which was due to a missing dput() before returning from a vfs_mkdir() failure.

Bug: 203827798
Link: [0] https://syzkaller.appspot.com/bug?extid=81b5ca9b2848f4dad8fa
Reported-by: syzbot+81b5ca9b2848f4dad8fa@syzkaller.appspotmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Change-Id: Iaef9aa0aecc964645aaca5fe8d79388ae28527bd
2021-10-28 08:45:39 +00:00
J. Avila
ea799c3d27 Revert "ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS"
This reverts commit 9790f49ad8. Because
the partner gerrit does not have visibility into android-mainline, it
can't find these OWNERS. This shouldn't be a problem, but a bug in
gerrit is causing patches to block on this nonexistent file. Revert this
until a proper fix is in place.

Bug: 197928983
Change-Id: I918ade6b9482d9edff321b01d5d86509e0e87336
Signed-off-by: J. Avila <elavila@google.com>
2021-08-31 21:13:04 +00:00
Lucas Wei
eeede586e2 Merge android-msm-pixel-4.19 into android-msm-barbet-4.19
Bug: 187909050
Change-Id: I3e9e177868b44a23e6e76c194764bd0f273db1bf
Signed-off-by: Lucas Wei <lucaswei@google.com>
2021-06-22 18:11:41 +08:00
Lucas Wei
dc6bbc2b60 LTS: Merge android-4.19-stable (4.19.189) into android-msm-pixel-4.19
Merge android-4.19-stable common kernel (4.19.189) into B5R3 sc-dev kernel.

Bug: 187007303
Bug: 178998983
Test: Manual testing, SST, vts/vts-kernel, pts/base, pts/postsubmit-long
Signed-off-by: Lucas Wei <lucaswei@google.com>
Change-Id: Ie67a5abb43b8adda1a0778d5b91a155349a2e31d
2021-05-24 11:56:47 +08:00
Paul Lawrence
e5e9ab73a4 ANDROID: Incremental fs: Add uid to INCFS_IOC_GET_LAST_READ_ERROR
Bug: 186796876
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I552cae5e87b004202364ba5c9c5f9febb9e106f2
2021-05-19 13:09:23 -07:00
Paul Lawrence
860536f466 ANDROID: Incremental fs: Make sysfs_name changeable on remount
Bug: 187829246
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I1762f170c8a8a2fb7672f65c402e82ab95aeef8a
2021-05-19 13:09:23 -07:00
Paul Lawrence
3e2a8bdbe7 ANDROID: Incremental fs: Count pending_reads even when very short
Bug: 187836970
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Id4fe5fe2b60a76fb81ca85f8889a53a11bd7a4d4
2021-05-19 13:09:23 -07:00
Paul Lawrence
aad1a2cb31 ANDROID: Incremental fs: Add uid to INCFS_IOC_GET_LAST_READ_ERROR
Bug: 186796876
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I552cae5e87b004202364ba5c9c5f9febb9e106f2
2021-05-19 12:55:44 -07:00
Paul Lawrence
b725e98ca1 ANDROID: Incremental fs: Make sysfs_name changeable on remount
Bug: 187829246
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I1762f170c8a8a2fb7672f65c402e82ab95aeef8a
2021-05-19 12:55:43 -07:00
Paul Lawrence
4ed2033568 ANDROID: Incremental fs: Count pending_reads even when very short
Bug: 187836970
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Id4fe5fe2b60a76fb81ca85f8889a53a11bd7a4d4
2021-05-19 12:55:43 -07:00
Lucas Wei
a93de36337 Merge android-4.19-stable (4.19.189) into android-msm-pixel-4.19-lts
Merge 4.19.189 into android-4.19-stable
Linux 4.19.189
    USB: CDC-ACM: fix poison/unpoison imbalance
    net: hso: fix NULL-deref on disconnect regression
    x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access
    ia64: tools: remove duplicate definition of ia64_mf() on ia64
    ia64: fix discontig.c section mismatches
    cavium/liquidio: Fix duplicate argument
    xen-netback: Check for hotplug-status existence before watching
    s390/entry: save the caller of psw_idle
    net: geneve: check skb is large enough for IPv4/IPv6 header
    ARM: dts: Fix swapped mmc order for omap3
    HID: wacom: Assign boolean values to a bool variable
    HID: alps: fix error return code in alps_input_configured()
  * HID: google: add don USB id
      drivers/hid/hid-ids.h
    perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3
  * locking/qrwlock: Fix ordering in queued_write_lock_slowpath()
      kernel/locking/qrwlock.c
    pinctrl: lewisburg: Update number of pins in community
  * gup: document and work around "COW can break either way" issue
      mm/gup.c
  * net: phy: marvell: fix detection of PHY on Topaz switches
      include/linux/marvell_phy.h
    ARM: 9071/1: uprobes: Don't hook on thumb instructions
    ARM: footbridge: fix PCI interrupt mapping
    ibmvnic: remove duplicate napi_schedule call in open function
    ibmvnic: remove duplicate napi_schedule call in do_reset function
    ibmvnic: avoid calling napi_disable() twice
    i40e: fix the panic when running bpf in xdpdrv mode
  * net: ip6_tunnel: Unregister catch-all devices
      net/ipv6/ip6_tunnel.c
  * net: sit: Unregister catch-all devices
      net/ipv6/sit.c
    net: davicom: Fix regulator not turned off on failed probe
    netfilter: nft_limit: avoid possible divide error in nft_limit_init
  * netfilter: conntrack: do not print icmpv6 as unknown via /proc
      net/netfilter/nf_conntrack_standalone.c
    scsi: libsas: Reset num_scatter if libata marks qc as NODATA
  * arm64: alternatives: Move length validation in alternative_{insn, endif}
      arch/arm64/include/asm/alternative.h
  * arm64: fix inline asm in load_unaligned_zeropad()
      arch/arm64/include/asm/word-at-a-time.h
  * readdir: make sure to verify directory entry for legacy interfaces too
      fs/readdir.c
  * dm verity fec: fix misaligned RS roots IO
      drivers/md/dm-verity-fec.c
      drivers/md/dm-verity-fec.h
    HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices
    Input: i8042 - fix Pegatron C15B ID entry
    Input: s6sy761 - fix coordinate read bit shift
    mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN
    pcnet32: Use pci_resource_len to validate PCI resource
    net: ieee802154: forbid monitor for add llsec seclevel
    net: ieee802154: stop dump llsec seclevels for monitors
    net: ieee802154: forbid monitor for add llsec devkey
    net: ieee802154: stop dump llsec devkeys for monitors
    net: ieee802154: forbid monitor for add llsec dev
    net: ieee802154: stop dump llsec devs for monitors
    net: ieee802154: stop dump llsec keys for monitors
    scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state
    ASoC: fsl_esai: Fix TDM slot setup for I2S mode
    drm/msm: Fix a5xx/a6xx timestamps
    ARM: keystone: fix integer overflow warning
  * neighbour: Disregard DEAD dst in neigh_update
      net/core/neighbour.c
    arc: kernel: Return -EFAULT if copy_to_user() fails
    lockdep: Add a missing initialization hint to the "INFO: Trying to register non-static key" message
    ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
    ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
  * dmaengine: dw: Make it dependent to HAS_IOMEM
      drivers/dma/dw/Kconfig
  * gpio: sysfs: Obey valid_mask
      drivers/gpio/gpiolib-sysfs.c
    Input: nspire-keypad - enable interrupts only when opened
  * net/sctp: fix race condition in sctp_destroy_sock
      net/sctp/socket.c
    ANDROID: GKI: update allowed list for incrementalfs.ko
  * ANDROID: fs-verity: Export function to check signatures
      fs/verity/signature.c
      include/linux/fsverity.h
  * UPSTREAM: fs-verity: move structs needed for file signing to UAPI header
      fs/verity/fsverity_private.h
      include/uapi/linux/fsverity.h
  * UPSTREAM: fs-verity: rename "file measurement" to "file digest"
      fs/verity/enable.c
      fs/verity/fsverity_private.h
      fs/verity/measure.c
      fs/verity/open.c
      fs/verity/signature.c
  * UPSTREAM: fs-verity: rename fsverity_signed_digest to fsverity_formatted_digest
      fs/verity/fsverity_private.h
      fs/verity/signature.c
  * UPSTREAM: fs-verity: remove filenames from file comments
      fs/verity/enable.c
      fs/verity/hash_algs.c
      fs/verity/init.c
      fs/verity/measure.c
      fs/verity/open.c
      fs/verity/signature.c
      fs/verity/verify.c
    ANDROID: clang: update to 12.0.5
    Merge 4.19.188 into android-4.19-stable
Linux 4.19.188
    xen/events: fix setting irq affinity
    perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches
  * driver core: Fix locking bug in deferred_probe_timeout_work_func()
      drivers/base/dd.c
  * netfilter: x_tables: fix compat match/target pad out-of-bound write
      net/ipv4/netfilter/arp_tables.c
      net/ipv4/netfilter/ip_tables.c
      net/ipv6/netfilter/ip6_tables.c
      net/netfilter/x_tables.c
  * staging: m57621-mmc: delete driver from the tree.
      drivers/staging/Kconfig
      drivers/staging/Makefile
    net: phy: broadcom: Only advertise EEE for supported modes
    riscv,entry: fix misaligned base for excp_vect_table
  * block: only update parent bi_status when bio fail
      block/bio.c
    drm/tegra: dc: Don't set PLL clock to 0Hz
    gfs2: report "already frozen/thawed" errors
    drm/imx: imx-ldb: fix out of bounds array access warning
  * KVM: arm64: Disable guest access to trace filter controls
      arch/arm64/include/asm/kvm_arm.h
  * KVM: arm64: Hide system instruction access to Trace registers
      arch/arm64/kernel/cpufeature.c
  * Revert "net: xfrm: Localize sequence counter per network namespace"
      include/net/netns/xfrm.h
      net/xfrm/xfrm_state.c
    Merge 4.19.187 into android-4.19-stable
  * ANDROID: Incremental fs: Set credentials before reading/writing
      fs/incfs/data_mgmt.c
      fs/incfs/format.c
      fs/incfs/format.h
      fs/incfs/main.c
      fs/incfs/vfs.c
Linux 4.19.187
    Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath."
    net: ieee802154: stop dump llsec params for monitors
    net: ieee802154: forbid monitor for del llsec seclevel
    net: ieee802154: forbid monitor for set llsec params
    net: ieee802154: fix nl802154 del llsec devkey
    net: ieee802154: fix nl802154 add llsec key
    net: ieee802154: fix nl802154 del llsec dev
    net: ieee802154: fix nl802154 del llsec key
    net: ieee802154: nl-mac: fix check on panid
    net: mac802154: Fix general protection fault
    drivers: net: fix memory leak in peak_usb_create_dev
    drivers: net: fix memory leak in atusb_probe
  * net: tun: set tun->dev->addr_len during TUNSETLINK processing
      drivers/net/tun.c
  * cfg80211: remove WARN_ON() in cfg80211_sme_connect
      net/wireless/sme.c
  * net: sched: bump refcount for new action in ACT replace mode
      net/sched/act_api.c
    clk: socfpga: fix iomem pointer cast on 64-bit
    RDMA/cxgb4: check for ipv6 address properly while destroying listener
  * net/mlx5: Fix PBMC register mapping
      include/linux/mlx5/mlx5_ifc.h
  * net/mlx5: Fix placement of log_max_flow_counter
      include/linux/mlx5/mlx5_ifc.h
    s390/cpcmd: fix inline assembly register clobbering
  * workqueue: Move the position of debug_work_activate() in __queue_work()
      kernel/workqueue.c
  * clk: fix invalid usage of list cursor in unregister
      drivers/clk/clk.c
  * clk: fix invalid usage of list cursor in register
      drivers/clk/clk.c
    soc/fsl: qbman: fix conflicting alignment attributes
    ASoC: sunxi: sun4i-codec: fill ASoC card owner
    net/ncsi: Avoid channel_monitor hrtimer deadlock
    ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces
  * net:tipc: Fix a double free in tipc_sk_mcast_rcv
      net/tipc/socket.c
    cxgb4: avoid collecting SGE_QBASE regs during traffic
    gianfar: Handle error code at MAC address change
  * sch_red: fix off-by-one checks in red_check_params()
      include/net/red.h
    amd-xgbe: Update DMA coherency values
    i40e: Fix kernel oops when i40e driver removes VF's
    i40e: Added Asym_Pause to supported link modes
    ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
  * net: xfrm: Localize sequence counter per network namespace
      include/net/netns/xfrm.h
      net/xfrm/xfrm_state.c
    regulator: bd9571mwv: Fix AVS and DVFS voltage range
  * xfrm: interface: fix ipv4 pmtu check to honor ip header df
      net/xfrm/xfrm_interface.c
    virtio_net: Add XDP meta data support
  * i2c: turn recovery error on init to debug
      drivers/i2c/i2c-core-base.c
    usbip: synchronize event handler with sysfs code paths
    usbip: vudc synchronize sysfs code paths
    usbip: stub-dev synchronize sysfs code paths
    usbip: add sysfs_lock to synchronize sysfs code paths
  * net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
      net/ipv6/raw.c
      net/sctp/ipv6.c
    net: sched: sch_teql: fix null-pointer dereference
  * net: ensure mac header is set in virtio_net_hdr_to_skb()
      include/linux/virtio_net.h
    net: hso: fix null-ptr-deref during tty device unregistration
    ice: Increase control queue timeout
    batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
    ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
    parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
  * parisc: parisc-agp requires SBA IOMMU driver
      drivers/char/agp/Kconfig
  * fs: direct-io: fix missing sdio->boundary
      fs/direct-io.c
    ocfs2: fix deadlock between setattr and dio_end_io_write
    nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
    ia64: fix user_stack_pointer() for ptrace()
  * net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
      net/ipv6/route.c
    xen/evtchn: Change irq_info lock to raw_spinlock_t
    nfc: Avoid endless loops caused by repeated llcp_sock_connect()
    nfc: fix memory leak in llcp_sock_connect()
    nfc: fix refcount leak in llcp_sock_connect()
    nfc: fix refcount leak in llcp_sock_bind()
    ASoC: intel: atom: Stop advertising non working S24LE support
    ALSA: aloop: Fix initialization of controls
    Merge 4.19.186 into android-4.19-stable
Linux 4.19.186
  * init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
      init/Kconfig
  * init/Kconfig: make COMPILE_TEST depend on !S390
      init/Kconfig
    bpf, x86: Validate computation of branch displacements for x86-32
    bpf, x86: Validate computation of branch displacements for x86-64
    cifs: Silently ignore unknown oplock break handle
    cifs: revalidate mapping when we open files for SMB1 POSIX
    ia64: fix format strings for err_inject
    ia64: mca: allocate early mca with GFP_ATOMIC
    scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
    x86/build: Turn off -fcf-protection for realmode targets
    platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
    drm/msm: Ratelimit invalid-fence message
    mac80211: choose first enabled channel for monitor
    mISDN: fix crash in fritzpci
    net: pxa168_eth: Fix a potential data race in pxa168_eth_remove
    platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
    bus: ti-sysc: Fix warning on unbind if reset is not deasserted
    ARM: dts: am33xx: add aliases for mmc interfaces
    Merge 4.19.185 into android-4.19-stable
Linux 4.19.185
    drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
    staging: rtl8192e: Change state information from u16 to u8
    staging: rtl8192e: Fix incorrect source in memcpy()
    usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
    usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
    USB: cdc-acm: fix use-after-free after probe failure
    USB: cdc-acm: fix double free on probe failure
    USB: cdc-acm: downgrade message to debug
    USB: cdc-acm: untangle a circular dependency between callback and softint
    cdc-acm: fix BREAK rx code path adding necessary calls
    usb: xhci-mtk: fix broken streams issue on 0.96 xHCI
    usb: musb: Fix suspend with devices connected for a64
  * USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
      drivers/usb/core/quirks.c
    usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
    firewire: nosy: Fix a use-after-free bug in nosy_ioctl()
  * extcon: Fix error handling in extcon_dev_register
      drivers/extcon/extcon.c
  * extcon: Add stubs for extcon_register_notifier_all() functions
      include/linux/extcon.h
    pinctrl: rockchip: fix restore error in resume
    reiserfs: update reiserfs_xattrs_initialized() condition
    drm/amdgpu: check alignment on CPU page for bo map
    drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
  * mm: fix race by making init_zero_pfn() early_initcall
      mm/memory.c
  * tracing: Fix stack trace event size
      kernel/trace/trace.c
  * PM: runtime: Fix ordering in pm_runtime_get_suppliers()
      drivers/base/power/runtime.c
  * PM: runtime: Fix race getting/putting suppliers at probe
      drivers/base/power/runtime.c
    ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
    ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
  * ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
      sound/usb/quirks.c
  * bpf: Remove MTU check in __bpf_skb_max_len
      net/core/filter.c
    net: wan/lmc: unregister device when no matching device is found
    appletalk: Fix skb allocation size in loopback case
    net: ethernet: aquantia: Handle error cleanup of start on open
    ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
    brcmfmac: clear EAP/association status bits on linkdown events
  * ext4: do not iput inode under running transaction in ext4_rename()
      fs/ext4/namei.c
  * locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
      kernel/locking/mutex.c
  * thermal/core: Add NULL pointer check before using cooling device stats
      drivers/thermal/thermal_sysfs.c
    ASoC: rt5659: Update MCLK rate in set_sysclk()
    staging: comedi: cb_pcidas64: fix request_irq() warn
    staging: comedi: cb_pcidas: fix request_irq() warn
    scsi: qla2xxx: Fix broken #endif placement
    scsi: st: Fix a use after free in st_open()
    vhost: Fix vhost_vq_reset()
    ASoC: cs42l42: Always wait at least 3ms after reset
    ASoC: cs42l42: Fix mixer volume control
    ASoC: cs42l42: Fix channel width support
    ASoC: cs42l42: Fix Bitclock polarity inversion
    ASoC: es8316: Simplify adc_pga_gain_tlv table
    ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe
    ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
    ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
    rpc: fix NULL dereference on kmalloc failure
  * ext4: fix bh ref count on error paths
      fs/ext4/inode.c
  * ipv6: weaken the v4mapped source check
      net/ipv6/ip6_input.c
      net/ipv6/tcp_ipv6.c
  * tcp: relookup sock for RST+ACK packets handled by obsolete req sock
      include/net/inet_connection_sock.h
      net/ipv4/inet_connection_sock.c
      net/ipv4/tcp_minisocks.c
    selinux: vsock: Set SID for socket returned by accept()
  * Revert "can: dev: Move device back to init netns on owning netns delete"
      include/net/rtnetlink.h
      net/core/dev.c
    Merge 4.19.184 into android-4.19-stable
    ANDROID: Add OWNERS files referring to the respective android-mainline OWNERS
    BACKPORT: drm/virtio: Use vmalloc for command buffer allocations.
    UPSTREAM: drm/virtio: Rewrite virtio_gpu_queue_ctrl_buffer using fenced version.
Linux 4.19.184
    xen-blkback: don't leak persistent grants from xen_blkbk_map()
    can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"
  * ext4: add reclaim checks to xattr code
      fs/ext4/xattr.c
    mac80211: fix double free in ibss_leave
  * net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
      net/qrtr/qrtr.c
  * net: sched: validate stab values
      include/net/red.h
  * can: dev: Move device back to init netns on owning netns delete
      include/net/rtnetlink.h
      net/core/dev.c
    x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()
  * locking/mutex: Fix non debug version of mutex_lock_io_nested()
      include/linux/mutex.h
    scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()
    scsi: qedi: Fix error return code of qedi_alloc_global_queues()
    perf auxtrace: Fix auxtrace queue conflict
  * dm verity: add root hash pkcs#7 signature verification
      drivers/md/dm-verity-target.c
  * ACPI: scan: Use unique number for instance_no
      include/acpi/acpi_bus.h
    ACPI: scan: Rearrange memory allocation in acpi_device_add()
  * Revert "netfilter: x_tables: Update remaining dereference to RCU"
      net/ipv4/netfilter/arp_tables.c
      net/ipv4/netfilter/ip_tables.c
      net/ipv6/netfilter/ip6_tables.c
  * netfilter: x_tables: Use correct memory barriers.
      include/linux/netfilter/x_tables.h
      net/netfilter/x_tables.c
  * Revert "netfilter: x_tables: Switch synchronization to RCU"
      include/linux/netfilter/x_tables.h
      net/ipv4/netfilter/arp_tables.c
      net/ipv4/netfilter/ip_tables.c
      net/ipv6/netfilter/ip6_tables.c
      net/netfilter/x_tables.c
  * bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs
      include/linux/bpf.h
    RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server
    net/mlx5e: Fix error path for ethtool set-priv-flag
    arm64: kdump: update ppos when reading elfcorehdr
    drm/msm: fix shutdown hook in case GPU components failed to bind
    net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes
    net: cdc-phonet: fix data-interface release on probe failure
    mac80211: fix rate mask reset
    can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
    can: c_can: move runtime PM enable/disable to c_can_platform
    can: c_can_pci: c_can_pci_remove(): fix use-after-free
    can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate
    can: peak_usb: add forgotten supported devices
  * netfilter: ctnetlink: fix dump of the expect mask attribute
      net/netfilter/nf_conntrack_netlink.c
    ftgmac100: Restart MAC HW once
    net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
    e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
    e1000e: add rtnl_lock() to e1000_reset_task
    net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
  * macvlan: macvlan_count_rx() needs to be aware of preemption
      include/linux/if_macvlan.h
    libbpf: Fix INSTALL flag order
  * veth: Store queue_mapping independently of XDP prog presence
      drivers/net/veth.c
    bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
  * dm ioctl: fix out of bounds array access when no devices
      drivers/md/dm-ioctl.c
    ARM: dts: at91-sama5d27_som1: fix phy address to 7
    arm64: dts: ls1043a: mark crypto engine dma coherent
    arm64: dts: ls1012a: mark crypto engine dma coherent
    arm64: dts: ls1046a: mark crypto engine dma coherent
    squashfs: fix xattr id and id lookup sanity checks
  * squashfs: fix inode lookup sanity checks
      fs/squashfs/squashfs_fs.h
    platform/x86: intel-vbtn: Stop reporting SW_DOCK events
    netsec: restore phy power state after controller reset
    ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
    ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
  * block: Suppress uevent for hidden device when removed
      block/genhd.c
    nfs: we don't support removing system.nfs4_acl
  * drm/radeon: fix AGP dependency
      drivers/gpu/drm/Kconfig
  * u64_stats,lockdep: Fix u64_stats_init() vs lockdep
      include/linux/u64_stats_sync.h
    sparc64: Fix opcode filtering in handling of no fault loads
    atm: idt77252: fix null-ptr-dereference
    atm: uPD98402: fix incorrect allocation
    net: wan: fix error return code of uhdlc_init()
    net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
    NFS: Correct size calculation for create reply length
  * nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
      fs/nfs/Kconfig
    gpiolib: acpi: Add missing IRQF_ONESHOT
    gianfar: fix jumbo packets+napi+rx overrun crash
    sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
    net: tehuti: fix error return code in bdx_probe()
    ixgbe: Fix memleak in ixgbe_configure_clsu32
  * Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
      drivers/net/usb/r8152.c
    atm: lanai: dont run lanai_dev_close if not open
    atm: eni: dont release is never initialized
    powerpc/4xx: Fix build errors from mfdcr()
    net: fec: ptp: avoid register access when ipg clock is disabled
  * ANDROID: Make vsock virtio packet buff size configurable
      include/linux/virtio_vsock.h
  * ANDROID: fix up ext4 build from 4.19.183
      fs/ext4/namei.c

Bug: 187007303
Change-Id: I7bd7cc06a4928013a8ef194a55aadbb59ff0c6c1
Signed-off-by: Lucas Wei <lucaswei@google.com>
2021-05-19 21:07:43 +08:00
Paul Lawrence
867f117b2b ANDROID: Incremental fs: Fix pseudo-file attributes
Prior change

ANDROID: Incremental fs: stat should return actual used blocks

adds blocks to getattr. Unfortunately the code always looks for the
backing file, and pseudo files don't have backing files, so getattr
fails for pseudo files.

Bug: 186567511
Test: incfs_test passes, can install files on bramble
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ia3df87f3683e095d05c822b69747515963c95f1c
2021-05-07 08:16:51 -07:00
Paul Lawrence
950e48e3e6 ANDROID: Incremental fs: Add INCFS_IOC_GET_LAST_READ_ERROR
Bug: 184291759
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: If46e91f9c992337d53970573c238be965187761e
2021-05-07 08:16:50 -07:00
Paul Lawrence
778ac90cc0 ANDROID: Incremental fs: Fix INCFS_MAGIC_NUMBER casts
Sparse complains about casting a five byte number to a ulong on 32-bit
platorms. Fix by anding the constant with ULONG_MAX

Bug: 186015158
Test: incfs_test passes, sparse reports no warnings on 32 & 64 bit builds
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ic83e03626b7f290370d75b3aaba187b8392fb344
2021-05-07 08:16:50 -07:00
Paul Lawrence
7a49c69aec ANDROID: Incremental fs: Add status to sysfs
Adding seven sysfs entries per mount:

reads_failed_timed_out
reads_failed_hash_verification
reads_failed_other
reads_delayed_pending
reads_delayed_pending_us
reads_delayed_min
reads_delayed_min_us

to allow for status monitoring from userland

Change-Id: I50677511c2af4778ba0c574bb80323f31425b4d0
Test: incfs_test passes
Bug: 160634343
Bug: 184291759
Signed-off-by: Paul Lawrence <paullawrence@google.com>
2021-05-07 08:16:50 -07:00
Carlos Llamas
41cc4361ad ANDROID: Incremental fs: fix u64 integer cast to pointer
Compiler (arm-linux-gnueabihf-gcc 8.3.0) complains about an invalid cast
of an __aligned_u64 integer to a pointer on 32-bit architectures. Using
u64_to_user_ptr() for the cast fixes the following warning:

fs/incfs/pseudo_files.c: In function ‘ioctl_create_file’:
fs/incfs/pseudo_files.c:656:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  656 |          (u8 __user *)args.signature_info,
      |          ^

Bug: 183339614
Fixes: bc6a70e849cc (ANDROID: Incremental fs: Remove signature checks from kernel)
Reported-by: kernelci.org bot <bot@kernelci.org>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I98a987fb83c160740796c0b4b3fdd7551880e12a
2021-05-07 08:16:50 -07:00
Paul Lawrence
7842ce3f2e ANDROID: Incremental fs: stat should return actual used blocks
Test: incfs_test passes
Bug: 182182100
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I4c9e5f111fbb659798ef79bc20d8a65b64b44ded
2021-05-07 08:16:50 -07:00
Paul Lawrence
9f6c9d3c18 ANDROID: Incremental fs: Add FS_IOC_READ_VERITY_METADATA
Bug: 180942327
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I6d6532496c072145f22bcf9ff4499ec3f52e94b5
2021-05-07 08:16:50 -07:00
Carlos Llamas
2347368e1f ANDROID: Incremental fs: fix minor printk format warning
Use the correct printk specifier [%zu] for size_t variable.
This fixes the following warning:

fs/incfs/format.c: In function ‘incfs_read_next_metadata_record’:
./include/linux/kern_levels.h:5:18: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
fs/incfs/format.c:669:3: note: in expansion of macro ‘pr_warn’
  669 |   pr_warn("incfs: The record is too large. Size: %ld",
      |   ^~~~~~~

Bug: 183339614
Fixes: c6819dd77861 (ANDROID: Initial commit of Incremental FS)
Reported-by: kernelci.org bot <bot@kernelci.org>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Change-Id: Ia784a9ced9fb6bc76e2f1baa495b3ccf568e3b1d
(cherry picked from commit d83b0684e15113d6053ba2dfdcac903d7038f707)
2021-05-07 08:16:50 -07:00
Paul Lawrence
169b91d14c ANDROID: Incremental fs: Truncate file when complete
Bug: 182185202
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I01bdd7f942b1831c1937af8458a09be52cafe227
2021-05-07 08:16:50 -07:00
Paul Lawrence
994c25af00 ANDROID: Incremental fs: Fix mlock to fail gracefully on corrupt files
Test: incfs_test passes
Bug: 174875107
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ie2fcf8164e8247f1190e26984344915c5050752e
2021-05-07 08:16:50 -07:00
Paul Lawrence
5ad73e0385 ANDROID: Incremental fs: Finer readlog compression internally
Bug: 182196484
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: If30ee2a5837433a1768688c522b0ca753982944e
2021-05-07 08:16:49 -07:00
Paul Lawrence
e1469ad382 ANDROID: Incremental fs: Support STATX_ATTR_VERITY
Bug: 181242243
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I0b905e6d740634568f15320a607a62b901fa1431
2021-05-07 08:16:49 -07:00
Yurii Zubrytskyi
97deefba35 ANDROID: Incremental fs: set the correct access to mapped files
Backing file needs to have write permissions for all users
even though the mounted view doesn't - otherwise incfs can't
change the internal file data.

Bug: 180535478
Test: adb install <apk>
Signed-off-by: Yurii Zubrytskyi <zyy@google.com>
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ie25ff62b5b78a2f1f52de68d9b39c3a9825af82b
2021-05-07 08:16:49 -07:00
Paul Lawrence
09d7a73d68 ANDROID: Incremental fs: Build merkle tree when enabling verity
For incfs files that were created without a merkle tree, enabling verity
requires building a merkle tree first. Although this is the same logic
as verity performs, it is not that easy to reconcile the two given that
incfs has the merkle tree potentially when verity is not enabled.

Bug: 160634504
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ifd304bdad897ff817ce332c62e929a369c2dacdb
2021-05-07 08:16:49 -07:00
Paul Lawrence
3f843dcb08 ANDROID: Incremental fs: Add FS_IOC_MEASURE_VERITY
Add ioctl to return the verity file digest, compatible with the identical
ioctl in fs/verity/.

Bug: 160634504
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ieb97582de717fafb8878027dde86fe5b427532bf
2021-05-07 08:16:49 -07:00
Paul Lawrence
9f2c5cec12 ANDROID: Incremental fs: Store fs-verity state in backing file
Now fsverity state is preserved across inode eviction.

Added incfs.verity xattr to track when a file is fs-verity enabled.

Bug: 160634504
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I908a80dc9d956d0fbaa59b40c249de850e887820
2021-05-07 08:16:49 -07:00
Paul Lawrence
6c07d7bf04 ANDROID: Incremental fs: Add FS_IOC_GETFLAGS
Add FS_IOC_GETFLAGS ioctl to incfs. Currently this will only get the
S_VERITY flag.

Bug: 160634504
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: If95dfb88ba8d4c47e452283f53f61adc63270d31
2021-05-07 08:16:49 -07:00
Paul Lawrence
07b9a01e37 ANDROID: Incremental fs: Add FS_IOC_ENABLE_VERITY
Add FS_IOC_ENABLE_VERITY ioctl

When called, calculate measurement, validate signature against fsverity,
and set S_VERITY flag.

This does not (yet) preserve the verity status once the inode is
evicted.

Bug: 160634504
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I2d9c9cd9235fd3e14e3fd2ee191c26aafb6472d0
2021-05-07 08:16:49 -07:00
Paul Lawrence
9243c93c11 ANDROID: Incremental fs: Fix memory leak on closing file
Bug: 179271514
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I08f27032664db605e364f8d7a50956c43060058e
2021-05-07 08:12:07 -07:00
Paul Lawrence
bcff7e81a9 ANDROID: Incremental fs: inotify on create mapped file
Bug: 175323815
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Id2423f8ff8faabe912bed4052e4f7df39f57e534
2021-05-07 08:12:07 -07:00
Paul Lawrence
dd9f60b19a ANDROID: Incremental fs: inotify support
Bug: 175323815
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I0df482e225b85321703b442afdf6f175b9cc3ab7
2021-05-07 08:12:07 -07:00
Paul Lawrence
37bd40c433 ANDROID: Incremental fs: Make data validation failure a warn
Bug: 177234986
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I06f1e682c6043c098476a7ca33487775fbb372e8
2021-05-07 08:12:06 -07:00
Paul Lawrence
82501533cf ANDROID: Incremental fs: Free mount info after files are flushed
Bug: 177280103
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I5bb83b92be2203115e235bc7b30e8ad8a62b35e1
2021-05-07 08:12:06 -07:00
Paul Lawrence
dcda001781 ANDROID: Incremental fs: Fix selinux issues
Bug: 177075428
Test: incfs_test passes
      atest GtsIncrementalInstallTestCases has only 8 failures
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Ibdf7746de08819b2f3e59103e5cecb39ad1ae2d8
2021-05-07 08:12:06 -07:00
Yurii Zubrytskyi
403eb9ae4f ANDROID: Incremental fs: fix .blocks_written
.blocks_writen file handling was missing some operations:
SELinux xattr handlers, safety checks for it being a
pseudo file etc.

This CL generalizes pseudo file handling so that all such
files work in a generic way and next time it should be
easier to add all operations at once.

Bug: 175823975
Test: incfs_tests pass
Signed-off-by: Yurii Zubrytskyi <zyy@google.com>
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Id8b19f73eb5813b5b55aa9b2bb3a89f33922ada2
2021-05-07 08:12:06 -07:00
Paul Lawrence
4c1f92f4d3 ANDROID: Incremental fs: Set credentials before reading/writing
Bug: 174692664
Test: incfs_test passes, incremental installs work with ag/13082306
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: Id76d4e6f8685905bec5f76db490b95eb40360498
2021-05-07 08:12:06 -07:00
Paul Lawrence
a3559e48be ANDROID: Incremental fs: Change per UID timeouts to microseconds
Bug: 174495152
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I41c23d5f38adab35ee6fab25a6926a8a6aebe2e8
2021-05-07 08:12:06 -07:00
Paul Lawrence
c1f25b2e90 ANDROID: Incremental fs: Add v2 feature flag
Roll report_uid feature flag into v2 feature flag

Bug: 174478527
Test: Feature flag present on boot
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I669aae6a3f6d45db096981c2375f1afdf15c838d
2021-05-07 08:12:06 -07:00
Paul Lawrence
fc23783925 ANDROID: Incremental fs: Add zstd feature flag
Bug: 174478527
Test: Boot, look for flag
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I43e7f1fae8724b1916818a3d6e79326a9db4339c
2021-05-07 08:12:06 -07:00
Paul Lawrence
401f69da84 ANDROID: Incremental fs: Add zstd compression support
Bug: 160634783
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: If2fea9ca985c2116e16a3680fc97de541af89bb0
2021-05-07 08:12:05 -07:00
Paul Lawrence
5698f49756 ANDROID: Incremental fs: Small improvements
Rmove bc_mutex used to protect metadata chain, now that is only
read at file open time
Remove certain unused mount options

Bug: 172482559
Test: incfs_test passes
Signed-off-by: Paul Lawrence <paullawrence@google.com>
Change-Id: I31db6316876086bfbcec3ecdd400ef74688d556d
2021-05-07 08:12:05 -07:00