Commit graph

30 commits

Author SHA1 Message Date
Blagovest Kolenichev
450ec63ce9 Merge crypto changes from android-4.19.79-95 into msm-4.19
Conflicts:
	block/blk-merge.c
	drivers/scsi/ufs/ufs-qcom.c
	drivers/scsi/ufs/ufshcd.c
	drivers/scsi/ufs/ufshcd.h
	fs/ext4/inode.c
	fs/f2fs/data.c
	include/linux/fscrypt.h

Change-Id: Id3b033dbc5886ddb83f235ff80e19755d2b962e2
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2020-04-24 15:21:22 -07:00
Blagovest Kolenichev
946995947e Restore crypto changes from android-4.19.79-95
This reverts commit 34f21ff311.

Change-Id: I9a29de35764fb028decf3a52b71dd0bf54fa0808
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2020-03-27 05:51:46 -07:00
Blagovest Kolenichev
34f21ff311 Revert crypto changes from android-4.19.79-95
This is a preparation change for merging android-4.19.95 into
msm-4.19 branch.

The following changes are reverted. They will be introduced to
msm-4.19 at later stage:

114c59d6d9 ANDROID: f2fs: fix possible merge of unencrypted with encrypted I/O
3a468438a9 ANDROID: scsi: ufs-qcom: Enable BROKEN_CRYPTO quirk flag
6f915cf27d ANDROID: scsi: ufs-hisi: Enable BROKEN_CRYPTO quirk flag
86739e75ac ANDROID: scsi: ufs: Add quirk bit for controllers that don't play well with inline crypto
d2e05e75f6 ANDROID: scsi: ufs: UFS init should not require inline crypto
484f187320 ANDROID: scsi: ufs: UFS crypto variant operations API
f269cf51a1 ANDROID: gki_defconfig: enable inline encryption
f2ca2620dd BACKPORT: FROMLIST: ext4: add inline encryption support
e274bd387a BACKPORT: FROMLIST: f2fs: add inline encryption support
0797369594 BACKPORT: FROMLIST: fscrypt: add inline encryption support
a502a18f9d BACKPORT: FROMLIST: scsi: ufs: Add inline encryption support to UFS
eedb625131 BACKPORT: FROMLIST: scsi: ufs: UFS crypto API
e00aafeeaa BACKPORT: FROMLIST: scsi: ufs: UFS driver v2.1 spec crypto additions
392ad89e96 BACKPORT: FROMLIST: block: blk-crypto for Inline Encryption
8fda305325 ANDROID: block: Fix bio_crypt_should_process WARN_ON
20efc30a3e BACKPORT: FROMLIST: block: Add encryption context to struct bio
b0a4fb22e5 BACKPORT: FROMLIST: block: Keyslot Manager for Inline Encryption
2fedb52dd7 FROMLIST: f2fs: add support for IV_INO_LBLK_64 encryption policies
11fd37527f FROMLIST: ext4: add support for IV_INO_LBLK_64 encryption policies
94231712cf BACKPORT: FROMLIST: fscrypt: add support for IV_INO_LBLK_64 policies
6806fd6ad5 FROMLIST: fscrypt: zeroize fscrypt_info before freeing
97c9fb779b FROMLIST: fscrypt: remove struct fscrypt_ctx
659011272b BACKPORT: FROMLIST: fscrypt: invoke crypto API for ESSIV handling
651f77d338 ANDROID: sdcardfs: evict dentries on fscrypt key removal
4932f53723 ANDROID: fscrypt: add key removal notifier chain
45b1509e24 ext4 crypto: fix to check feature status before get policy
c0751a1be4 fscrypt: document the new ioctls and policy version
435089d69f ubifs: wire up new fscrypt ioctls
c80449defc f2fs: wire up new fscrypt ioctls
8178d688b5 ext4: wire up new fscrypt ioctls
30d0df156b fscrypt: require that key be added when setting a v2 encryption policy
080389cb51 fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS ioctl
8e1c887424 fscrypt: allow unprivileged users to add/remove keys for v2 policies
73ce50dc2d fscrypt: v2 encryption policy support
6ad6af5912 fscrypt: add an HKDF-SHA512 implementation
dbfc6584b3 fscrypt: add FS_IOC_GET_ENCRYPTION_KEY_STATUS ioctl
cacc84e003 fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY ioctl
9846255919 fscrypt: add FS_IOC_ADD_ENCRYPTION_KEY ioctl
c677e5771b fscrypt: rename keyinfo.c to keysetup.c
43d5219366 fscrypt: move v1 policy key setup to keysetup_v1.c
c55916aa36 fscrypt: refactor key setup code in preparation for v2 policies
d4b1cd7abe fscrypt: rename fscrypt_master_key to fscrypt_direct_key
3246be1337 fscrypt: add ->ci_inode to fscrypt_info
fc987b387a fscrypt: use FSCRYPT_* definitions, not FS_*
678ee27619 fscrypt: use FSCRYPT_ prefix for uapi constants
a48b7adcd9 fs, fscrypt: move uapi definitions to new header <linux/fscrypt.h>
932301a530 fscrypt: use ENOPKG when crypto API support missing
60f50d1347 fscrypt: improve warnings for missing crypto API support
830d573a4a fscrypt: improve warning messages for unsupported encryption contexts
9aa799b7e7 fscrypt: make fscrypt_msg() take inode instead of super_block
10c0af12c7 fscrypt: clean up base64 encoding/decoding
9842574ae4 fscrypt: remove loadable module related code

Change-Id: I12036285cc65adcf79ff96ccf980408c8267c957
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2020-03-25 08:32:10 -07:00
Eric Biggers
651f77d338 ANDROID: sdcardfs: evict dentries on fscrypt key removal
Use the fscrypt key removal notifier chain to make sdcardfs evict its
dentries when an fscrypt key is about to be removed.  This is needed for
the FS_IOC_REMOVE_ENCRYPTION_KEY ioctl to properly "lock" the encrypted
files underneath sdcardfs when an Android user is stopped.

Test: pm create-user 10
      am start-user 10
      find /data/media/10/    # filenames are in plaintext form
      am stop-user 10
      find /data/media/10/    # filenames are in ciphertext form

      (But currently the kernel and vold still warn about other files
      still being open, due to b/140762419)

Bug: 120446149
Bug: 142275883
Change-Id: I83b451a2bc40c72fcd01d24aa5c34ad8de427534
Signed-off-by: Eric Biggers <ebiggers@google.com>
2019-10-23 11:12:33 -07:00
Rishabh Bhatnagar
4ac13bd161 Merge remote-tracking branch 'origin_4.19/tmp-0567d2f' into msm-4.19
* origin_4.19/tmp-0567d2f:
  Linux 4.19.9
  HID: quirks: fix RetroUSB.com devices
  mac80211: ignore NullFunc frames in the duplicate detection
  mac80211: fix reordering of buffered broadcast packets
  mac80211: ignore tx status for PS stations in ieee80211_tx_status_ext
  mac80211: Clear beacon_int in ieee80211_do_stop
  mac80211: fix GFP_KERNEL under tasklet context
  mac80211_hwsim: Timer should be initialized before device registered
  cfg80211: Fix busy loop regression in ieee80211_ie_split_ric()
  libnvdimm, pfn: Pad pfn namespaces relative to other regions
  kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
  gnss: sirf: fix activation retry handling
  tty: do not set TTY_IO_ERROR flag if console port
  tty: serial: 8250_mtk: always resume the device in probe.
  Drivers: hv: vmbus: Offload the handling of channels to two workqueues
  x86/efi: Allocate e820 buffer before calling efi_exit_boot_service
  kprobes/x86: Fix instruction patching corruption when copying more than one RIP-relative instruction
  drm/i915: Downgrade Gen9 Plane WM latency error
  drm/amdgpu/gmc8: always load MC firmware in the driver
  drm/amdgpu/gmc8: update MC firmware for polaris
  drm/msm: Move fence put to where failure occurs
  drm/lease: Send a distinct uevent
  drm/amdgpu: update mc firmware image for polaris12 variants
  crypto: do not free algorithm before using
  Revert commit ef9209b642 "staging: rtl8723bs: Fix indenting errors and an off-by-one mistake in core/rtw_mlme_ext.c"
  staging: rtl8712: Fix possible buffer overrun
  cifs: Fix separator when building path from dentry
  Revert "x86/e820: put !E820_TYPE_RAM regions into memblock.reserved"
  arm64: dts: rockchip: remove vdd_log from rock960 to fix a stability issues
  xhci: Prevent U1/U2 link pm states if exit latency is too long
  xhci: workaround CSS timeout on AMD SNPS 3.0 xHC
  ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE
  dmaengine: cppi41: delete channel from pending list when stop channel
  dmaengine: imx-sdma: use GFP_NOWAIT for dma descriptor allocations
  dmaengine: imx-sdma: implement channel termination via worker
  Revert "dmaengine: imx-sdma: alloclate bd memory from dma pool"
  Revert "dmaengine: imx-sdma: Use GFP_NOWAIT for dma allocations"
  dmaengine: dw: Fix FIFO size for Intel Merrifield
  SUNRPC: Fix leak of krb5p encode pages
  arm64: hibernate: Avoid sending cross-calling with interrupts disabled
  vhost/vsock: fix use-after-free in network stack callers
  virtio/s390: fix race in ccw_io_helper()
  virtio/s390: avoid race on vcdev->config
  parisc: Enable -ffunction-sections for modules on 32-bit kernel
  Revert "mfd: cros_ec: Use devm_kzalloc for private data"
  media: dvb-pll: don't re-validate tuner frequencies
  media: dvb-pll: fix tuner frequency ranges
  media: vicodec: fix memchr() kernel oops
  media: gspca: fix frame overflow error
  ALSA: hda/realtek: Fix mic issue on Acer AIO Veriton Z4860G/Z6860G
  ALSA: hda/realtek: Fix mic issue on Acer AIO Veriton Z4660G
  ALSA: hda/realtek - Add support for Acer Aspire C24-860 headset mic
  ALSA: hda/realtek: ALC286 mic and headset-mode fixups for Acer Aspire U27-880
  ALSA: hda/realtek - Fix speaker output regression on Thinkpad T570
  ALSA: pcm: Fix interval evaluation with openmin/max
  ALSA: pcm: Call snd_pcm_unlink() conditionally at closing
  ALSA: pcm: Fix starvation on down_write_nonblock()
  ALSA: hda: Add support for AMD Stoney Ridge
  ALSA: usb-audio: Fix UAF decrement if card has no live interfaces in card.c
  ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support
  USB: serial: console: fix reported terminal settings
  USB: check usb_get_extra_descriptor for proper size
  usb: appledisplay: Add 27" Apple Cinema Display
  usb: quirk: add no-LPM quirk on SanDisk Ultra Flair device
  net: amd: add missing of_node_put()
  team: no need to do team_notify_peers or team_mcast_rejoin when disabling port
  ibmvnic: Update driver queues after change in ring size support
  ibmvnic: Fix RX queue buffer cleanup
  flexfiles: use per-mirror specified stateid for IO
  NFSv4.2 copy do not allocate memory under the lock
  iommu/vt-d: Use memunmap to free memremap
  net: faraday: ftmac100: remove netif_running(netdev) check before disabling interrupts
  riscv: fix warning in arch/riscv/include/asm/module.h
  net/ibmnvic: Fix deadlock problem in reset
  qed: Fix QM getters to always return a valid pq
  qed: Fix bitmap_weight() check
  NFSv4: Fix a NFSv4 state manager deadlock
  net: ena: fix crash during failed resume from hibernation
  mtd: spi-nor: Fix Cadence QSPI page fault kernel panic
  HID: multitouch: Add pointstick support for Cirque Touchpad
  Revert "HID: uhid: use strlcpy() instead of strncpy()"
  cpufreq: ti-cpufreq: Only register platform_device when supported
  mtd: rawnand: qcom: Namespace prefix some commands
  tc-testing: tdc.py: Guard against lack of returncode in executed command
  tc-testing: tdc.py: ignore errors when decoding stdout/stderr
  gpio: mockup: fix indicated direction
  gpio: pxa: fix legacy non pinctrl aware builds again
  drivers/net/ethernet/qlogic/qed/qed_rdma.h: fix typo
  net/mlx4: Fix UBSAN warning of signed integer overflow
  net/mlx4_core: Fix uninitialized variable compilation warning
  net/mlx4_core: Zero out lkey field in SW2HW_MPT fw command
  drm/amd/display: Support amdgpu "max bpc" connector property (v2)
  drm/amdgpu: Add amdgpu "max bpc" connector property (v2)
  bnxt_en: Fix filling time in bnxt_fill_coredump_record()
  nvme-fc: resolve io failures during connect
  s390/ism: clear dmbe_mask bit before SMC IRQ handling
  Revert "usb: gadget: ffs: Fix BUG when userland exits with submitted AIO transfers"
  usb: dwc2: pci: Fix an error code in probe
  qed: Fix reading wrong value in loop condition
  qed: Fix rdma_info structure allocation
  qed: Fix overriding offload_tc by protocols without APP TLV
  qed: Fix PTT leak in qed_drain()
  bnx2x: Assign unique DMAE channel number for FW DMAE transactions.
  amd/iommu: Fix Guest Virtual APIC Log Tail Address Register
  batman-adv: Expand merged fragment buffer for full packet
  batman-adv: Use explicit tvlv padding for ELP packets
  HID: input: Ignore battery reported by Symbol DS4308
  test_firmware: fix error return getting clobbered
  can: rcar_can: Fix erroneous registration
  can: ucan: remove set but not used variable 'udev'
  scsi: ufs: Fix hynix ufs bug with quirk on hi36xx SoC
  iommu/ipmmu-vmsa: Fix crash on early domain free
  mt76: fix building without CONFIG_LEDS_CLASS
  brcmutil: really fix decoding channel info for 160 MHz bandwidth
  iommu/vt-d: Fix NULL pointer dereference in prq_event_thread()
  media: ipu3-cio2: Unregister device nodes first, then release resources
  media: omap3isp: Unregister media device as first
  media: cec: check for non-OK/NACK conditions while claiming a LA
  media: vicodec: lower minimum height to 360
  ANDROID: cuttlefish_defconfig: Enable VIRT_WIFI
  FROMGIT: mac80211-next: rtnetlink wifi simulation device
  Linux 4.19.8
  blk-mq: punt failed direct issue to dispatch list
  tipc: use destination length for copy string
  arc: [devboards] Add support of NFSv3 ACL
  ARC: change defconfig defaults to ARCv2
  btrfs: tree-checker: Don't check max block group size as current max chunk size limit is unreliable
  Input: elan_i2c - add support for ELAN0621 touchpad
  Input: elan_i2c - add ACPI ID for Lenovo IdeaPad 330-15ARR
  Input: elan_i2c - add ELAN0620 to the ACPI table
  Input: cros_ec_keyb - fix button/switch capability reports
  Input: matrix_keypad - check for errors from of_get_named_gpio()
  Input: synaptics - add PNP ID for ThinkPad P50 to SMBus
  Input: xpad - quirk all PDP Xbox One gamepads
  scsi: lpfc: fix block guard enablement on SLI3 adapters
  i40e: Fix deletion of MAC filters
  selinux: add support for RTM_NEWCHAIN, RTM_DELCHAIN, and RTM_GETCHAIN
  svm: Add mutex_lock to protect apic_access_page_done on AMD systems
  kgdboc: Fix warning with module build
  kgdboc: Fix restrict error
  userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not set
  userfaultfd: shmem: add i_size checks
  userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
  userfaultfd: use ENOENT instead of EFAULT if the atomic copy user fails
  drm/meson: Fix OOB memory accesses in meson_viu_set_osd_lut()
  drm/meson: Enable fast_io in meson_dw_hdmi_regmap_config
  drm/meson: Fixes for drm_crtc_vblank_on/off support
  drm: set is_master to 0 upon drm_new_set_master() failure
  drm/amd/dm: Don't forget to attach MST encoders
  drm/ast: Fix incorrect free on ioregs
  tracing/fgraph: Fix set_graph_function from showing interrupts
  IB/mlx5: Avoid load failure due to unknown link width
  mips: fix mips_get_syscall_arg o32 check
  MIPS: ralink: Fix mt7620 nd_sd pinmux
  tracepoint: Use __idx instead of idx in DO_TRACE macro to make it unique
  sched, trace: Fix prev_state output in sched_switch tracepoint
  arm64: ftrace: Fix to enable syscall events on arm64
  mtd: nand: Fix memory allocation in nanddev_bbt_init()
  uprobes: Fix handle_swbp() vs. unregister() + register() race once more
  iser: set sector for ambiguous mr status errors
  unifdef: use memcpy instead of strncpy
  test_hexdump: use memcpy instead of strncpy
  blk-mq: fix corruption with direct issue
  ANDROID: cuttlefish_defconfig: Enable CONFIG_ARM64_LSE_ATOMICS
  ANDROID: Move from clang r328903 to r346389b.
  Linux 4.19.7
  misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
  Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl()
  mm: use swp_offset as key in shmem_replace_page()
  mm: cleancache: fix corruption on missed inode invalidation
  lib/test_kmod.c: fix rmmod double free
  iio:st_magn: Fix enable device after trigger
  iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers
  Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid"
  usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series
  USB: usb-storage: Add new IDs to ums-realtek
  staging: rtl8723bs: Add missing return for cfg80211_rtw_get_station
  staging: rtl8723bs: Fix incorrect sense of ether_addr_equal
  staging: mt7621-pinctrl: fix uninitialized variable ngroups
  staging: mt7621-dma: fix potentially dereferencing uninitialized 'tx_desc'
  staging: vchiq_arm: fix compat VCHIQ_IOC_AWAIT_COMPLETION
  staging: most: use format specifier "%s" in snprintf
  dmaengine: at_hdmac: fix module unloading
  dmaengine: at_hdmac: fix memory leak in at_dma_xlate()
  ARM: dts: rockchip: Remove @0 from the veyron memory node
  ASoC: pcm186x: Fix device reset-registers trigger value
  ASoC: intel: cht_bsw_max98090_ti: Add quirk for boards using pmc_plt_clk_0
  ext2: fix potential use after free
  ext2: initialize opts.s_mount_opt as zero before using it
  binder: fix race that allows malicious free of live buffer
  function_graph: Reverse the order of pushing the ret_stack and the callback
  function_graph: Move return callback before update of curr_ret_stack
  function_graph: Have profiler use curr_ret_stack and not depth
  function_graph: Use new curr_ret_depth to manage depth instead of curr_ret_stack
  function_graph: Make ftrace_push_return_trace() static
  MIPS: function_graph: Simplify with function_graph_enter()
  arm64: function_graph: Simplify with function_graph_enter()
  s390/function_graph: Simplify with function_graph_enter()
  riscv/function_graph: Simplify with function_graph_enter()
  parisc: function_graph: Simplify with function_graph_enter()
  sparc/function_graph: Simplify with function_graph_enter()
  sh/function_graph: Simplify with function_graph_enter()
  powerpc/function_graph: Simplify with function_graph_enter()
  nds32: function_graph: Simplify with function_graph_enter()
  x86/function_graph: Simplify with function_graph_enter()
  microblaze: function_graph: Simplify with function_graph_enter()
  ARM: function_graph: Simplify with function_graph_enter()
  function_graph: Create function_graph_enter() to consolidate architecture code
  ALSA: hda/realtek - Add auto-mute quirk for HP Spectre x360 laptop
  ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops
  ALSA: hda/realtek - fix headset mic detection for MSI MS-B171
  ALSA: hda/realtek - Support ALC300
  ALSA: hda: Add ASRock N68C-S UCC the power_save blacklist
  ALSA: sparc: Fix invalid snd_free_pages() at error path
  ALSA: control: Fix race between adding and removing a user element
  ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write
  ALSA: wss: Fix invalid snd_free_pages() at error path
  fs: fix lost error code in dio_complete
  perf/x86/intel: Disallow precise_ip on BTS events
  perf/x86/intel: Add generic branch tracing check to intel_pmu_has_bts()
  perf/x86/intel: Move branch tracing setup to the Intel-specific source file
  x86/fpu: Disable bottom halves while loading FPU registers
  x86/MCE/AMD: Fix the thresholding machinery initialization order
  arm64: dts: rockchip: Fix PCIe reset polarity for rk3399-puma-haikou.
  PCI: Fix incorrect value returned from pcie_get_speed_cap()
  PCI: dwc: Fix MSI-X EP framework address calculation bug
  PCI: layerscape: Fix wrong invocation of outbound window disable accessor
  btrfs: relocation: set trans to be NULL after ending transaction
  Btrfs: fix race between enabling quotas and subvolume creation
  Btrfs: fix rare chances for data loss when doing a fast fsync
  Btrfs: ensure path name is null terminated at btrfs_control_ioctl
  btrfs: Always try all copies when reading extent buffers
  udf: Allow mounting volumes with incorrect identification strings
  xtensa: fix coprocessor part of ptrace_{get,set}xregs
  xtensa: fix coprocessor context offset definitions
  xtensa: enable coprocessors that are being flushed
  KVM: VMX: re-add ple_gap module parameter
  KVM: X86: Fix scan ioapic use-before-initialization
  KVM: LAPIC: Fix pv ipis use-before-initialization
  KVM: x86: Fix kernel info-leak in KVM_HC_CLOCK_PAIRING hypercall
  KVM: nVMX/nSVM: Fix bug which sets vcpu->arch.tsc_offset to L1 tsc_offset
  kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb
  kvm: mmu: Fix race in emulated page table writes
  userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
  x86/speculation: Provide IBPB always command line options
  x86/speculation: Add seccomp Spectre v2 user space protection mode
  x86/speculation: Enable prctl mode for spectre_v2_user
  x86/speculation: Add prctl() control for indirect branch speculation
  x86/speculation: Prepare arch_smt_update() for PRCTL mode
  x86/speculation: Prevent stale SPEC_CTRL msr content
  x86/speculation: Split out TIF update
  ptrace: Remove unused ptrace_may_access_sched() and MODE_IBRS
  x86/speculation: Prepare for conditional IBPB in switch_mm()
  x86/speculation: Avoid __switch_to_xtra() calls
  x86/process: Consolidate and simplify switch_to_xtra() code
  x86/speculation: Prepare for per task indirect branch speculation control
  x86/speculation: Add command line control for indirect branch speculation
  x86/speculation: Unify conditional spectre v2 print functions
  x86/speculataion: Mark command line parser data __initdata
  x86/speculation: Mark string arrays const correctly
  x86/speculation: Reorder the spec_v2 code
  x86/l1tf: Show actual SMT state
  x86/speculation: Rework SMT state change
  sched/smt: Expose sched_smt_present static key
  x86/Kconfig: Select SCHED_SMT if SMP enabled
  sched/smt: Make sched_smt_present track topology
  x86/speculation: Reorganize speculation control MSRs update
  x86/speculation: Rename SSBD update functions
  x86/speculation: Disable STIBP when enhanced IBRS is in use
  x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common()
  x86/speculation: Remove unnecessary ret variable in cpu_show_common()
  x86/speculation: Clean up spectre_v2_parse_cmdline()
  x86/speculation: Update the TIF_SSBD comment
  x86/retpoline: Remove minimal retpoline support
  x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support
  x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant
  x86/speculation: Propagate information about RSB filling mitigation to sysfs
  x86/speculation: Apply IBPB more strictly to avoid cross-process data leak
  x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation
  tipc: fix lockdep warning during node delete
  net: phy: add workaround for issue where PHY driver doesn't bind to the device
  tcp: defer SACK compression after DupThresh
  net/dim: Update DIM start sample after each DIM iteration
  virtio-net: fail XDP set if guest csum is negotiated
  virtio-net: disable guest csum during XDP set
  net: skb_scrub_packet(): Scrub offload_fwd_mark
  net: thunderx: set xdp_prog to NULL if bpf_prog_add fails
  usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2
  s390/qeth: fix length check in SNMP processing
  rapidio/rionet: do not free skb before reading its length
  packet: copy user buffers before orphan or clone
  net: thunderx: set tso_hdrs pointer to NULL in nicvf_free_snd_queue
  net: gemini: Fix copy/paste error
  net: don't keep lonely packets forever in the gro hash
  lan743x: fix return value for lan743x_tx_napi_poll
  lan743x: Enable driver to work with LAN7431
  mm/khugepaged: collapse_shmem() do not crash on Compound
  mm/khugepaged: collapse_shmem() without freezing new_page
  mm/khugepaged: minor reorderings in collapse_shmem()
  mm/khugepaged: collapse_shmem() remember to clear holes
  mm/khugepaged: fix crashes due to misaccounted holes
  mm/khugepaged: collapse_shmem() stop if punched or truncated
  mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
  mm/huge_memory: splitting set mapping+index before unfreeze
  mm/huge_memory: rename freeze_page() to unmap_page()
  ANDROID: cuttlefish_defconfig: Enable CONFIG_CRYPTO_ADIANTUM
  FROMGIT: fscrypt: add Adiantum support
  BACKPORT, FROMGIT: crypto: adiantum - add Adiantum support
  FROMGIT: crypto: arm/nhpoly1305 - add NEON-accelerated NHPoly1305
  FROMGIT: crypto: nhpoly1305 - add NHPoly1305 support
  FROMGIT: crypto: poly1305 - add Poly1305 core API
  FROMGIT: crypto: poly1305 - use structures for key and accumulator
  FROMGIT: crypto: arm/chacha - add XChaCha12 support
  FROMGIT: crypto: arm/chacha20 - refactor to allow varying number of rounds
  FROMGIT: crypto: arm/chacha20 - add XChaCha20 support
  FROMGIT: crypto: arm/chacha20 - limit the preemption-disabled section
  FROMGIT: crypto: chacha - add XChaCha12 support
  BACKPORT, FROMGIT: crypto: chacha20-generic - refactor to allow varying number of rounds
  FROMGIT: crypto: chacha20-generic - add XChaCha20 support
  FROMGIT: crypto: chacha20-generic - don't unnecessarily use atomic walk
  FROMGIT: crypto: chacha20-generic - add HChaCha20 library function
  FROMGIT: crypto: arm/aes - add some hardening against cache-timing attacks
  UPSTREAM: crypto: arm/chacha20 - faster 8-bit rotations and other optimizations
  UPSTREAM: crypto: chacha20 - Fix chacha20_block() keystream alignment (again)
  ANDROID: cuttlefish_defconfig: Enable CONFIG_SDCARD_FS
  ANDROID: sdcardfs: Add sdcardfs filesystem
  ANDROID: sdcardfs: Define magic value
  ANDROID: fs: Restore vfs_path_lookup() export
  ANDROID: vfs: add d_canonical_path for stacked filesystem support
  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: mnt: Add filesystem private data to mount points
  ANDROID: sdcardfs: Enable modular sdcardfs
  Revert "proc: Convert proc_mount to use mount_ns."
  ANDROID: binder: add support for RT prio inheritance.
  UPSTREAM: binder: Add BINDER_GET_NODE_INFO_FOR_REF ioctl.
  ANDROID: net: ipv6: autoconf routes into per-device tables
  ANDROID: cuttlefish_defconfig: Enable SECURITY_PERF_EVENTS_RESTRICT
  ANDROID: security,perf: Allow further restriction of perf_event_open
  ANDROID: netfilter: xt_IDLETIMER: Add new netlink msg type
  ANDROID: cuttlefish_defconfig: Enable CONFIG_NETFILTER_XT_MATCH_QUOTA2
  ANDROID: netfilter: xt_quota2: adding the original quota2 from xtables-addons
  ANDROID: power: wakeup_reason: add an API to log wakeup reasons
  ANDROID: trace: sched: add sched blocked tracepoint which dumps out context of sleep.
  ANDROID: add extra free kbytes tunable
  CHROMIUM: cgroups: relax permissions on moving tasks between cgroups
  ANDROID: cpu: send KOBJ_ONLINE event when enabling cpus
  ANDROID: fs: FS tracepoints to track IO.
  ANDROID: cuttlefish_defconfig: Enable CONFIG_DM_VERITY_AVB
  ANDROID: AVB error handler to invalidate vbmeta partition.
  ANDROID: cuttlefish_defconfig: Enable CONFIG_CPUSETS
  ANDROID: cpuset: Make cpusets restore on hotplug
  ANDROID: taskstats: track fsync syscalls
  ANDROID: uid_cputime: add per-uid IO usage accounting
  ANDROID: cuttlefish_defconfig: Enable CONFIG_UID_SYS_STATS
  ANDROID: uid_cputime: Adds accounting for the cputimes per uid.
  ANDROID: cuttlefish_defconfig: Enable CONFIG_MMC
  ANDROID: mmc: core: Add "ignore mmc pm notify" functionality
  ANDROID: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_F_AUDIO_SRC
  ANDROID: usb: gadget: f_audio_source: New gadget driver for audio output
  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: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_F_ACC
  ANDROID: usb: gadget: f_accessory: Add Android Accessory function
  ANDROID: usb: gadget: configfs: Add device attribute to determine gadget state
  ANDROID: usb: gadget: configfs: Add "state" attribute to android_device
  ANDROID: cuttlefish_defconfig: Enable CONFIG_USB_CONFIGFS_UEVENT
  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: mm: add a field to store names for private anonymous memory
  ANDROID: fs: epoll: use freezable blocking call
  ANDROID: cuttlefish_defconfig: Enable CONFIG_CMDLINE_EXTEND
  ANDROID: of: Support CONFIG_CMDLINE_EXTEND config option
  ANDROID: arm64: copy CONFIG_CMDLINE_EXTEND from ARM
  UPSTREAM: tcp: start receiver buffer autotuning sooner
  UPSTREAM: tcp: up initial rmem to 128KB and SYN rwin to around 64KB
  ANDROID: net: xfrm: make PF_KEY SHA256 use RFC-compliant truncation.
  ANDROID: cuttlefish_defconfig: Enable EAS related defines
  BACKPORT: sched/fair: Fix cpu_util_wake() for 'execl' type workloads
  ANDROID: defconfig / build config for cuttlefish
  ANDROID: Kbuild, LLVMLinux: allow overriding clang target triple
  ANDROID: x86: Remove a useless warning message
  Revert "x86: Force asm-goto"
  Revert "x86: Allow generating user-space headers without a compiler"
  Linux 4.19.6
  media: ov5640: fix auto controls values when switching to manual mode
  media: ov5640: fix wrong binning value in exposure calculation
  media: ov5640: fix auto gain & exposure when changing mode
  media: ov5640: fix exposure regression
  media: ov5640: Fix timings setup code
  media: ov5640: Re-work MIPI startup sequence
  rcu: Make need_resched() respond to urgent RCU-QS needs
  gfs2: Fix iomap buffer head reference counting bug
  tty: wipe buffer if not echoing data
  tty: wipe buffer.
  include/linux/pfn_t.h: force '~' to be parsed as an unary operator
  dax: Avoid losing wakeup in dax_lock_mapping_entry
  mm, page_alloc: check for max order in hot path
  tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
  mm, memory_hotplug: check zone_movable in has_unmovable_pages
  z3fold: fix possible reclaim races
  efi/arm: Revert deferred unmap of early memmap mapping
  powerpc/numa: Suppress "VPHN is not supported" messages
  NFSv4: Fix an Oops during delegation callbacks
  kdb: Use strscpy with destination buffer size
  drm/amdgpu: fix bug with IH ring setup
  RISC-V: Silence some module warnings on 32-bit
  riscv: add missing vdso_install target
  SUNRPC: Fix a bogus get/put in generic_key_to_expire()
  block: copy ioprio in __bio_clone_fast() and bounce
  perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
  sched/fair: Fix cpu_util_wake() for 'execl' type workloads
  powerpc/io: Fix the IO workarounds code to work with Radix
  floppy: fix race condition in __floppy_read_block_0()
  crypto: simd - correctly take reqsize of wrapped skcipher into account
  rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
  rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
  cpufreq: imx6q: add return value check for voltage scale
  KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
  scsi: hisi_sas: Remove set but not used variable 'dq_list'
  scsi: lpfc: fix remoteport access
  tools/testing/nvdimm: Fix the array size for dimm devices.
  pinctrl: meson: fix meson8b ao pull register bits
  pinctrl: meson: fix meson8 ao pull register bits
  pinctrl: meson: fix gxl ao pull register bits
  pinctrl: meson: fix gxbb ao pull register bits
  pinctrl: meson: fix pinconf bias disable
  fanotify: fix handling of events on child sub-directory
  fsnotify: generalize handling of extra event flags
  IB/hfi1: Eliminate races in the SDMA send error path
  ACPICA: AML interpreter: add region addresses in global list during initialization
  can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct flexcan_priv::tx_mb_idx
  can: flexcan: Always use last mailbox for TX
  can: hi311x: Use level-triggered interrupt
  can: raw: check for CAN FD capable netdev in raw_sendmsg()
  can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure
  can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*()
  can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to can_rx_offload_queue_tail()
  can: rx-offload: introduce can_rx_offload_get_echo_skb() and can_rx_offload_queue_sorted() functions
  can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
  can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
  can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
  can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
  can: flexcan: Unlock the MB unconditionally
  drm/ast: Remove existing framebuffers before loading driver
  drm/ast: fixed cursor may disappear sometimes
  drm/ast: change resolution may cause screen blurred
  drm/i915: Disable LP3 watermarks on all SNB machines
  drm/amdgpu: Fix oops when pp_funcs->switch_power_profile is unset
  drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates
  drm/amdgpu: Add missing firmware entry for HAINAN
  drm/fb-helper: Blacklist writeback when adding connectors to fbdev
  tcp: do not release socket ownership in tcp_close()
  mm/memory.c: recheck page table entry with page table lock held
  mm: don't warn about large allocations for slab
  llc: do not use sk_eat_skb()
  gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
  sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
  bfs: add sanity check at bfs_fill_super()
  Input: synaptics - avoid using uninitialized variable when probing
  selinux: Add __GFP_NOWARN to allocation at str_read()
  v9fs_dir_readdir: fix double-free on p9stat_read error
  tools/power/cpupower: fix compilation with STATIC=true
  opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call
  opp: ti-opp-supply: Dynamically update u_volt_min
  brcmfmac: fix reporting support for 160 MHz channels
  iwlwifi: mvm: don't use SAR Geo if basic SAR is not used
  iwlwifi: mvm: fix regulatory domain update when the firmware starts
  iwlwifi: mvm: support sta_statistics() even on older firmware
  iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
  gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
  mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value
  mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL
  Documentation/security-bugs: Postpone fix publication in exceptional cases
  Documentation/security-bugs: Clarify treatment of embargoed information
  MAINTAINERS: Add Sasha as a stable branch maintainer
  ALSA: oss: Use kvzalloc() for local buffer allocations
  usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
  xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
  usb: xhci: fix timeout for transition from RExit to U0
  usb: xhci: fix uninitialized completion when USB3 port got wrong status
  xhci: Add check for invalid byte size error when UAS devices are connected.
  xhci: handle port status events for removed USB3 hcd
  xhci: Fix leaking USB3 shared_hcd at xhci removal
  usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove()
  usb: dwc3: core: Clean up ULPI device
  usb: dwc3: gadget: Properly check last unaligned/zero chain TRB
  usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers
  usb: core: Fix hub port connection events lost
  efi/libstub: arm: support building with clang
  HID: steam: remove input device when a hid client is running.
  Linux 4.19.5
  mt76x0: run vco calibration for each channel configuration
  libceph: fall back to sendmsg for slab pages
  HID: Add quirk for Microsoft PIXART OEM mouse
  HID: Add quirk for Primax PIXART OEM mice
  HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
  ACPI / platform: Add SMB0001 HID to forbidden_id_list
  drivers/misc/sgi-gru: fix Spectre v1 vulnerability
  mtd: rawnand: atmel: fix OF child-node lookup
  gnss: sirf: fix synchronous write timeout
  gnss: serial: fix synchronous write timeout
  USB: misc: appledisplay: add 20" Apple Cinema Display
  misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
  usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
  USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
  USB: quirks: Add no-lpm quirk for Raydium touchscreens
  usb: cdc-acm: add entry for Hiro (Conexant) modem
  can: kvaser_usb: Fix potential uninitialized variable use
  can: kvaser_usb: Fix accessing freed memory in kvaser_usb_start_xmit()
  ALSA: hda/ca0132 - Call pci_iounmap() instead of iounmap()
  ALSA: hda/realtek - Add quirk entry for HP Pavilion 15
  uio: Fix an Oops on load
  RISC-V: Fix raw_copy_{to,from}_user()
  MIPS: OCTEON: cavium_octeon_defconfig: re-enable OCTEON USB driver
  media: v4l: event: Add subscription to list before calling "add" operation
  x86/ldt: Remove unused variable in map_ldt_struct()
  x86/ldt: Unmap PTEs for the slot before freeing LDT pages
  x86/mm: Move LDT remap out of KASLR region on 5-level paging
  SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
  Revert "scripts/setlocalversion: git: Make -dirty check more robust"
  kbuild: deb-pkg: fix too low build version number
  net: aquantia: invalid checksumm offload implementation
  net: aquantia: fixed enable unicast on 32 macvlan
  net: aquantia: fix potential IOMMU fault after driver unbind
  net: stmmac: Fix RX packet size > 8191
  qed: Fix potential memory corruption
  qed: Fix SPQ entries not returned to pool in error flows
  qed: Fix blocking/unlimited SPQ entries leak
  qed: Fix memory/entry leak in qed_init_sp_request()
  i40e: restore NETIF_F_GSO_IPXIP[46] to netdev features
  ice: Change req_speeds to be u16
  ice: Fix the bytecount sent to netdev_tx_sent_queue
  ice: Fix dead device link issue with flow control
  perf tools: Do not zero sample_id_all for group members
  perf tools: Fix undefined symbol scnprintf in libperf-jvmti.so
  sched/core: Take the hotplug lock in sched_init_smp()
  i2c: qcom-geni: Fix runtime PM mismatch with child devices
  i2c: omap: Enable for ARCH_K3
  nvme: make sure ns head inherits underlying device limits
  of/device: Really only set bus DMA mask when appropriate
  ceph: quota: fix null pointer dereference in quota check
  s390/perf: Change CPUM_CF return code in event init function
  drm/amd/amdgpu/dm: Fix dm_dp_create_fake_mst_encoder()
  drm/amd/display: Drop reusing drm connector for MST
  block: Clear kernel memory before copying to user
  drm/amd/display: Stop leaking planes
  lib/raid6: Fix arm64 test build
  mtd: nand: Fix nanddev_pos_next_page() kernel-doc header
  clk: fixed-factor: fix of_node_get-put imbalance
  xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message
  arm64: dts: renesas: condor: switch from EtherAVB to GEther
  arm64: dts: renesas: r8a7795: add missing dma-names on hscif2
  Revert "drm/exynos/decon5433: implement frame counter"
  ARM: dts: fsl: Fix improperly quoted stdout-path values
  ARM: dts: imx6sll: fix typo for fsl,imx6sll-i2c node
  hwmon: (ibmpowernv) Remove bogus __init annotations
  net: hns3: Fix for out-of-bounds access when setting pfc back pressure
  s390/qeth: unregister netdevice only when registered
  s390/qeth: fix HiperSockets sniffer
  netfilter: nft_compat: ebtables 'nat' table is normal chain type
  netfilter: ipset: Fix calling ip_set() macro at dumping
  netfilter: xt_IDLETIMER: add sysfs filename checking routine
  netfilter: ipset: Correct rcu_dereference() call in ip_set_put_comment()
  bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
  s390/mm: Fix ERROR: "__node_distance" undefined!
  s390/mm: fix mis-accounting of pgtable_bytes
  netfilter: ipset: fix ip_set_list allocation failure
  netfilter: ipset: actually allow allowable CIDR 0 in hash:net,port,net
  netfilter: ipset: list:set: Decrease refcount synchronously on deletion and replace
  Revert "netfilter: nft_numgen: add map lookups for numgen random operations"
  HID: alps: allow incoming reports when only the trackstick is opened
  Revert "HID: add NOGET quirk for Eaton Ellipse MAX UPS"
  HID: i2c-hid: Add a small delay after sleep command for Raydium touchpanel
  s390/vdso: add missing FORCE to build targets
  s390/decompressor: add missing FORCE to build targets
  netfilter: bridge: define INT_MIN & INT_MAX in userspace
  netfilter: ipv6: fix oops when defragmenting locally generated fragments
  serial: sh-sci: Fix receive on SCIFA/SCIFB variants with DMA
  clk: ti: fix OF child-node lookup
  clk: renesas: r9a06g032: Fix UART34567 clock rate
  clk: meson: clk-pll: drop CLK_GET_RATE_NOCACHE where unnecessary
  arm64: percpu: Initialize ret in the default case
  clk: meson-axg: pcie: drop the mpll3 clock parent
  platform/x86: acerhdf: Add BIOS entry for Gateway LT31 v1.3307
  x86/earlyprintk: Add a force option for pciserial device
  apparmor: Fix uninitialized value in aa_split_fqname
  clk: samsung: exynos5420: Enable PERIS clocks for suspend
  fs/exofs: fix potential memory leak in mount option parsing
  perf symbols: Set PLT entry/header sizes properly on Sparc
  clk: fixed-rate: fix of_node_get-put imbalance
  platform/x86: intel_telemetry: report debugfs failure
  afs: Handle EIO from delivery function
  drm/edid: Add 6 bpc quirk for BOE panel.
  um: Give start_idle_thread() a return code
  perf unwind: Take pgoff into account when reporting elf to libdwfl
  hfsplus: prevent btree data loss on root split
  hfs: prevent btree data loss on root split
  reiserfs: propagate errors from fill_with_dentries() properly
  ixgbe: fix MAC anti-spoofing filter after VFLR
  net: hns3: bugfix for the initialization of command queue's spin lock
  net: hns3: bugfix for handling mailbox while the command queue reinitialized
  net: hns3: bugfix for rtnl_lock's range in the hclge_reset()
  net: hns3: bugfix for rtnl_lock's range in the hclgevf_reset()
  block: brd: associate with queue until adding disk
  arm64: kprobe: make page to RO mode when allocate it
  cifs: fix return value for cifs_listxattr
  cifs: don't dereference smb_file_target before null check
  drm/i915: Replace some PAGE_SIZE with I915_GTT_PAGE_SIZE
  f2fs: fix to keep project quota consistent
  f2fs: guarantee journalled quota data by checkpoint
  f2fs: cleanup dirty pages if recover failed
  f2fs: fix data corruption issue with hardware encryption
  f2fs: fix to recover inode->i_flags of inode block during POR
  f2fs: spread f2fs_set_inode_flags()
  f2fs: fix to spread clear_cold_data()
  Revert "f2fs: fix to clear PG_checked flag in set_page_dirty()"
  f2fs: account read IOs and use IO counts for is_idle
  f2fs: fix to account IO correctly for cgroup writeback
  f2fs: fix to account IO correctly
  f2fs: remove request_list check in is_idle()
  f2fs: allow to mount, if quota is failed
  f2fs: update REQ_TIME in f2fs_cross_rename()
  f2fs: do not update REQ_TIME in case of error conditions
  f2fs: remove unneeded disable_nat_bits()
  f2fs: remove unused sbi->trigger_ssr_threshold
  f2fs: shrink sbi->sb_lock coverage in set_file_temperature()
  f2fs: use rb_*_cached friends
  f2fs: fix to recover cold bit of inode block during POR
  f2fs: submit cached bio to avoid endless PageWriteback
  f2fs: checkpoint disabling
  f2fs: clear PageError on the read path
  f2fs: allow out-place-update for direct IO in LFS mode
  f2fs: refactor ->page_mkwrite() flow
  Revert: "f2fs: check last page index in cached bio to decide submission"
  f2fs: support superblock checksum
  f2fs: add to account skip count of background GC
  f2fs: add to account meta IO
  f2fs: keep lazytime on remount
  f2fs: fix missing up_read
  f2fs: return correct errno in f2fs_gc
  f2fs: avoid f2fs_bug_on if f2fs_get_meta_page_nofail got EIO
  f2fs: mark inode dirty explicitly in recover_inode()
  f2fs: fix to recover inode's crtime during POR
  f2fs: fix to recover inode's i_gc_failures during POR
  f2fs: fix to recover inode's i_flags during POR
  f2fs: fix to recover inode's project id during POR
  f2fs: update i_size after DIO completion
  f2fs: report ENOENT correctly in f2fs_rename
  f2fs: fix remount problem of option io_bits
  f2fs: fix to recover inode's uid/gid during POR
  f2fs: avoid infinite loop in f2fs_alloc_nid
  f2fs: add new idle interval timing for discard and gc paths
  f2fs: split IO error injection according to RW
  f2fs: add SPDX license identifiers
  f2fs: surround fault_injection related option parsing using CONFIG_F2FS_FAULT_INJECTION
  f2fs: fix setattr project check upon fssetxattr ioctl
  f2fs: avoid sleeping under spin_lock
  f2fs: plug readahead IO in readdir()
  f2fs: fix to do sanity check with current segment number
  f2fs: fix memory leak of percpu counter in fill_super()
  f2fs: fix memory leak of write_io in fill_super()
  f2fs: cache NULL when both default_acl and acl are NULL
  f2fs: fix to flush all dirty inodes recovered in readonly fs
  f2fs: report error if quota off error during umount
  f2fs: submit bio after shutdown
  f2fs: avoid wrong decrypted data from disk
  Revert "f2fs: use printk_ratelimited for f2fs_msg"
  f2fs: fix unnecessary periodic wakeup of discard thread when dev is busy
  f2fs: fix to avoid NULL pointer dereference on se->discard_map
  f2fs: add additional sanity check in f2fs_acl_from_disk()
  ANDROID: arm64: defconfig: Enable CONFIG_SCHED_TUNE
  ANDROID: thermal: cpu_cooling: Migrate to using the EM framework
  ANDROID: Add hold functionality to schedtune CPU boost
  ANDROID: sched/rt: Add schedtune accounting to rt task enqueue/dequeue
  ANDROID: sched: Make the cpu_util* accessors available without sugov
  ANDROID: sched/events: Introduce overutilized trace event
  ANDROID: sched/events: Introduce rt_rq load tracking trace event
  ANDROID: sched/events: Introduce schedtune trace events
  ANDROID: sched/events: Introduce find_best_target trace event
  ANDROID: sched/events: Introduce util_est trace events
  ANDROID: sched/events: Introduce task_group load tracking trace event
  ANDROID: sched/events: Introduce sched_entity load tracking trace event
  ANDROID: sched/events: Introduce cfs_rq load tracking trace event
  ANDROID: sched/autogroup: Define autogroup_path() for !CONFIG_SCHED_DEBUG
  ANDROID: sched/fair: Also do misfit in overloaded groups
  ANDROID: sched/fair: Don't balance misfits if it would overload local group
  ANDROID: sched/fair: Attempt to improve throughput for asym cap systems
  ANDROID: cpufreq/schedutil: add up/down frequency transition rate limits
  ANDROID: cpufreq/schedutil: Select frequency using util_avg for RT
  ANDROID: sched: Update max cpu capacity in case of max frequency constraints
  ANDROID: arm: enable max frequency capping
  ANDROID: arm64: enable max frequency capping
  ANDROID: implement max frequency capping
  ANDROID: sched/fair: add arch scaling function for max frequency capping
  ANDROID: sched/fair: Bypass energy computation for prefer_idle tasks
  ANDROID: sched: fair: Bypass energy-aware wakeup for prefer-idle tasks
  FROMLIST: sched/fair: Use wake_q length as a hint for wake_wide
  ANDROID: sched: Unconditionally honor sync flag for energy-aware wakeups
  ANDROID: Add find_best_target to minimise energy calculation overhead
  ANDROID: sched/fair: Factor out CPU selection from find_energy_efficient_cpu
  ANDROID: sched: Introduce sysctl_sched_cstate_aware
  ANDROID: sched, cpuidle: Track cpuidle state index in the scheduler
  ANDROID: sched: fair/tune: Add schedtune with cgroups interface
  ANDROID: drivers: Introduce a legacy Energy Model loading driver
  ANDROID: cpufreq: scmi: Register an Energy Model
  UPSTREAM: firmware: arm_scmi: add a getter for power of performance states
  ANDROID: cpufreq: arm_big_little: Register an Energy Model
  ANDROID: cpufreq: scpi: Register an Energy Model
  ANDROID: PM / OPP: cpufreq-dt: Move power estimation function
  FROMLIST: cpufreq: dt: Register an Energy Model
  ANDROID: arm: dts: vexpress-v2p-ca15_a7: Add dynamic-power-coefficient properties
  ANDROID: arm64: dts: juno-r2: Add dynamic-power-coefficient properties
  ANDROID: arm64: dts: juno: Add dynamic-power-coefficient properties
  ANDROID: arm, arm64: Enable kernel config options required for EAS
  ANDROID: sched: Enable idle balance to pull single task towards cpu with higher capacity
  ANDROID: sched: Prevent unnecessary active balance of single task in sched group
  FROMLIST: sched/fair: Select an energy-efficient CPU on task wake-up
  FROMLIST: sched/fair: Introduce an energy estimation helper function
  FROMLIST: sched: Add over-utilization/tipping point indicator
  FROMLIST: sched/fair: Clean-up update_sg_lb_stats parameters
  FROMLIST: sched: Introduce a sysctl for Energy Aware Scheduling
  FROMLIST: sched: Introduce sched_energy_present static key
  FROMLIST: sched/topology: Make Energy Aware Scheduling depend on schedutil
  FROMLIST: sched/topology: Disable EAS on inappropriate platforms
  FROMLIST: sched/topology: Lowest CPU asymmetry sched_domain level pointer
  FROMLIST: sched/topology: Reference the Energy Model of CPUs when available
  FROMLIST: PM / EM: Expose the Energy Model in sysfs
  FROMLIST: PM: Introduce an Energy Model management framework
  FROMLIST: sched/cpufreq: Prepare schedutil for Energy Aware Scheduling
  FROMLIST: sched: Relocate arch_scale_cpu_capacity
  UPSTREAM: sched/core: Disable SD_PREFER_SIBLING on asymmetric CPU capacity domains
  UPSTREAM: sched/fair: Don't move tasks to lower capacity CPUs unless necessary
  UPSTREAM: sched/fair: Set rq->rd->overload when misfit
  UPSTREAM: sched/fair: Wrap rq->rd->overload accesses with READ/WRITE_ONCE()
  UPSTREAM: sched/core: Change root_domain->overload type to int
  UPSTREAM: sched/fair: Change 'prefer_sibling' type to bool
  UPSTREAM: sched/fair: Kick nohz balance if rq->misfit_task_load
  UPSTREAM: sched/fair: Consider misfit tasks when load-balancing
  UPSTREAM: sched/fair: Add sched_group per-CPU max capacity
  UPSTREAM: sched/fair: Add 'group_misfit_task' load-balance type
  UPSTREAM: sched/topology: Add static_key for asymmetric CPU capacity optimizations
  UPSTREAM: sched/topology, arch/arm: Rebuild sched_domain hierarchy when CPU capacity changes
  UPSTREAM: sched/topology, arch/arm64: Rebuild the sched_domain hierarchy when the CPU capacity changes
  UPSTREAM: sched/topology, drivers/base/arch_topology: Rebuild the sched_domain hierarchy when capacities change
  UPSTREAM: sched/topology: Add SD_ASYM_CPUCAPACITY flag detection

Change-Id: I19fafa34b3fd39c4125708cb5c9c5a7634c40ec4
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
2018-12-20 17:43:16 -08:00
Daniel Campello
874b34420a ANDROID: sdcardfs: Add sdcardfs filesystem
Bug: 11118565
Bug: 27915347
Bug: 27992761
Bug: 28024488
Bug: 30013843
Bug: 30954918
Bug: 34133558
Bug: 34262585
Bug: 34542611
Bug: 34691169
Bug: 34723223
Bug: 35307857
Bug: 35331000
Bug: 35633782
Bug: 35643557
Bug: 35666680
bug: 35766959
Bug: 35766959
Bug: 35848445
Bug: 36004503
Bug: 36007653
Bug: 36138424
Bug: 36160015
Bug: 37193650
Bug: 37231161
Bug: 37488099
Bug: 37516160
Bug: 38045152
Bug: 38117720
Bug: 38502532
Bug: 62390017
Bug: 63245673
Bug: 63260873
Bug: 63785372
Bug: 64672411
Bug: 70278506
Bug: 72007585
Bug: 73055997
Bug: 73287721
Bug: 75987238
Bug: 77923821
Bug: 78262592
Bug: 111641492
Bug: 111642636
Bug: 111860541
Bug: 120446149
Change-Id: Ic1e01e602ce335d97342be54f3da0c5c65c087cc
Signed-off-by: Daniel Rosenberg <drosen@google.com>
[astrachan: Folded the following changes into this patch:
            903cea7ab0b2 ("ANDROID: Included sdcardfs source code for kernel 3.0")
            612a725e3d97 ("ANDROID: Port of sdcardfs to 4.4")
            e4187c55208b ("ANDROID: Changed type-casting in packagelist management")
            cf76072a5cd8 ("ANDROID: sdcardfs: Bring up to date with Android M permissions:")
            a43aa502c608 ("ANDROID: sdcardfs: Add support for d_canonical_path")
            d8fefbf85af2 ("ANDROID: sdcardfs: remove effectless config option")
            416677409336 ("ANDROID: sdcardfs: Remove unused code")
            8e49a570d351 ("ANDROID: sdcardfs: remove unneeded __init and __exit")
            40ee0e93f1d7 ("ANDROID: sdcardfs: Truncate packages_gid.list on overflow")
            b1d9602aa3fe ("ANDROID: sdcardfs: fix itnull.cocci warnings")
            60a177f5a167 ("ANDROID: sdcardfs: override umask on mkdir and create")
            efb3d2695203 ("ANDROID: sdcardfs: Check for other cases on path lookup")
            0da87f63666f ("ANDROID: sdcardfs: Fix locking for permission fix up")
            75b93060655e ("ANDROID: sdcardfs: Switch package list to RCU")
            657b0a00f497 ("ANDROID: sdcardfs: Added top to sdcardfs_inode_info")
            5008d91cba25 ("ANDROID: sdcardfs: fix external storage exporting incorrect uid")
            e06c452d0d07 ("ANDROID: sdcardfs: Move directory unlock before touch")
            72e5443a2816 ("ANDROID: sdcardfs: User new permission2 functions")
            ae8be7da556d ("ANDROID: sdcardfs: Add gid and mask to private mount data")
            151a3efe57a6 ("ANDROID: sdcardfs: Use per mount permissions")
            cff865a370f3 ("ANDROID: sdcardfs: Switch ->d_inode to d_inode()")
            065ac66804bf ("ANDROID: sdcardfs: Fix locking issue with permision fix up")
            31ea603eb3c4 ("ANDROID: sdcardfs: use wrappers to access i_mutex")
            c25c2f5018a2 ("ANDROID: sdcardfs: add parent pointer into dentry name hash")
            58616bb4ec68 ("ANDROID: sdcardfs: get rid of 'parent' argument of ->d_compare()")
            1654d7ffdd20 ("ANDROID: sdcardfs: Propagate dentry down to inode_change_ok()")
            39335cac1d2f ("ANDROID: sdcardfs: make it use new .rename i_op")
            7622bb3fcc79 ("ANDROID: sdcardfs: eliminate the offset argument to ->direct_IO")
            843bd7295ee0 ("ANDROID: sdcardfs: Allow non-owners to touch")
            e3d74804d174 ("ANDROID: sdcardfs: Refactor configfs interface")
            5833eda87a72 ("ANDROID: sdcardfs: add support for user permission isolation")
            d83fb1f41dd4 ("ANDROID: sdcardfs: Remove redundant operation")
            8767af17c0e5 ("ANDROID: sdcardfs: Add GID Derivation to sdcardfs")
            7119d96ad3ee ("ANDROID: sdcardfs: switch to full_name_hash and qstr")
            778e02a54859 ("ANDROID: sdcardfs: Switch strcasecmp for internal call")
            cd4965d04404 ("ANDROID: sdcardfs: Fix incorrect hash")
            40a2ee053505 ("ANDROID: sdcardfs: Add missing path_put")
            da5342bac57a ("ANDROID: sdcardfs: Don't bother deleting freelist")
            c91857b01e05 ("ANDROID: sdcardfs: implement vm_ops->page_mkwrite")
            f62b3906044b ("ANDROID: sdcardfs: support direct-IO (DIO) operations")
            c2e216d36d63 ("ANDROID: sdcardfs: Fix case insensitive lookup")
            57b92ab6f774 ("ANDROID: sdcardfs: rate limit warning print")
            8534cee39a81 ("ANDROID: sdcardfs: Replace get/put with d_lock")
            156085b2fccf ("ANDROID: sdcardfs: Use spin_lock_nested")
            8a260cabac4e ("ANDROID: sdcardfs: Switch to internal case insensitive compare")
            a8d51569573c ("ANDROID: sdcardfs: Use d_invalidate instead of drop_recurisve")
            932a6071de63 ("ANDROID: sdcardfs: Get the blocksize from the lower fs")
            0ad4c0f87527 ("ANDROID: sdcardfs: declare MODULE_ALIAS_FS")
            b97c83b5b683 ("ANDROID: sdcardfs: Use case insensitive hash function")
            9920dfb08265 ("ANDROID: sdcardfs: move path_put outside of spinlock")
            f9a25348b233 ("ANDROID: sdcardfs: Remove uninformative prints")
            720d9030bea1 ("ANDROID: sdcardfs: Fix gid issue")
            4cbb7fa6e66c ("ANDROID: sdcardfs: correct order of descriptors")
            6cff6cc301ed ("ANDROID: sdcardfs: Fix formatting")
            ac2a40412e26 ("ANDROID: sdcardfs: Fix style issues with comments")
            2212bb8ec064 ("ANDROID: sdcardfs: remove unneeded null check")
            4c1a0add8d21 ("ANDROID: sdcardfs: Use pr_[...] instead of printk")
            74535fe211ac ("ANDROID: sdcardfs: Use to kstrout")
            e6cf8dffd014 ("ANDROID: sdcardfs: Use seq_puts over seq_printf")
            2b1ac93a90b6 ("ANDROID: sdcardfs: Fix style issues in macros")
            bab6d117426f ("ANDROID: sdcardfs: remove unnecessary call to do_munmap")
            1c0bf09f19b6 ("ANDROID: sdcardfs: copy lower inode attributes in ->ioctl")
            42f3db55942b ("ANDROID: sdcardfs: fix ->llseek to update upper and lower offset")
            97ad6205055e ("ANDROID: sdcardfs: add read_iter/write_iter opeations")
            be9abc81332b ("ANDROID: sdcardfs: use d_splice_alias")
            4e90114cb1b4 ("ANDROID: sdcardfs: update module info")
            0e1f7ab14924 ("ANDROID: sdcardfs: Directly pass lower file for mmap")
            28be4beb43f9 ("ANDROID: sdcardfs: Change cache GID value")
            9fc2c452aefe ("ANDROID: sdcardfs: ->iget fixes")
            9bb72cf15cbc ("ANDROID: sdcardfs: Don't do d_add for lower fs")
            1bc21a04c11b ("ANDROID: sdcardfs: Don't complain in fixup_lower_ownership")
            0fb5b10b28a9 ("ANDROID: sdcardfs: Use filesystem specific hash")
            30e2f0aadce2 ("ANDROID: sdcardfs: Copy meta-data from lower inode")
            f748c7053194 ("ANDROID: sdcardfs: Avoid setting GIDs outside of valid ranges")
            3d38f08bacdb ("ANDROID: sdcardfs: Call lower fs's revalidate")
            2d1f1c203978 ("ANDROID: sdcardfs: Don't iput if we didn't igrab")
            857fc5e717fc ("ANDROID: sdcardfs: fix sdcardfs_destroy_inode for the inode RCU approach")
            4fceeccf1d23 ("ANDROID: sdcardfs: Move top to its own struct")
            f51470044a15 ("ANDROID: sdcardfs: Check for NULL in revalidate")
            8c7f6c97ac81 ("ANDROID: sdcardfs: d_splice_alias can return error values")
            17da01b37d61 ("ANDROID: sdcardfs: remove dead function open_flags_to_access_mode()")
            16662dd604be ("ANDROID: sdcardfs: use mount_nodev and fix a issue in sdcardfs_kill_sb")
            43c0dca6039a ("ANDROID: sdcardfs: Remove unnecessary lock")
            48960c25cdc1 ("ANDROID: sdcardfs: override credential for ioctl to lower fs")
            5d6410b9a88d ("ANDROID: Sdcardfs: Move gid derivation under flag")
            c7dd98431f83 ("ANDROID: sdcardfs: Add default_normal option")
            db9bf31a5d86 ("ANDROID: sdcardfs: port to 4.14")
            c70c9d1e82d2 ("ANDROID: sdcardfs: Use lower getattr times/size")
            04e961477d62 ("ANDROID: sdcardfs: Protect set_top")
            1ed04b79d281 ("ANDROID: sdcardfs: Hold i_mutex for i_size_write")
            77f52fc10982 ("ANDROID: sdcardfs: Set num in extension_details during make_item")
            d71596efa247 ("ANDROID: sdcardfs: fix lock issue on 32 bit/SMP architectures")
            ee6b07fced4a ("ANDROID: sdcardfs: Fix sdcardfs to stop creating cases-sensitive duplicate entries.")
            ce12807d5b75 ("ANDROID: sdcardfs: Check for private data earlier")
            c080450304cd ("ANDROID: sdcardfs: d_make_root calls iput")
            900e77796781 ("ANDROID: sdcardfs: Set s_root to NULL after putting")
            49092e89ffa4 ("ANDROID: sdcardfs: Don't d_drop in d_revalidate")
            e1f978bc9b9c ("ANDROID: sdcardfs: fix potential crash when reserved_mb is not zero")
            faa148eaf8ed ("ANDROID: sdcardfs: Check stacked filesystem depth")
            6edd721e972c ("ANDROID: sdcardfs: Don't use OVERRIDE_CRED macro")
            11ca578b4336 ("ANDROID: sdcardfs: Change current->fs under lock")
            83dea6ba6ea7 ("ANDROID: sdcardfs: Use inode iversion helpers")
            12064f3a794e ("ANDROID: sdcardfs: Add option to drop unused dentries")
            d9fe221bbf84 ("ANDROID: sdcardfs: Add sandbox")
            f544ad0b1547 ("ANDROID: sdcardfs: Add option to not link obb")]
Signed-off-by: Alistair Strachan <astrachan@google.com>
2018-12-05 09:48:14 -08:00
Daniel Rosenberg
33395cc5bf ANDROID: sdcardfs: Check stacked filesystem depth
bug: 111860541
Change-Id: Ia0a30b2b8956c4ada28981584cd8647713a1e993
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:15:17 +05:30
Daniel Rosenberg
81cd4c2d9c ANDROID: sdcardfs: Set s_root to NULL after putting
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 77923821
Change-Id: I1705bfd146009561d2d1da5f0e6a342ec6932a1c
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
fedb4f1f60 ANDROID: sdcardfs: d_make_root calls iput
d_make_root will call iput on failure, so we
shouldn't try to do that ourselves.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 77923821
Change-Id: I1abb4afb0f894ab917b7c6be8c833676f436beb7
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
91c9270d11 ANDROID: sdcardfs: Check for private data earlier
When an sdcardfs dentry is destroyed, it may not yet
have its fsdata initialized. It must be checked before
we try to access the paths in its private data.

Additionally, when cleaning up the superblock after
a failure, we don't have our sb private data, so
check for that case.

Bug: 77923821
Change-Id: I89caf6e121ed86480b42024664453fe0031bbcf3
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
8295827beb ANDROID: sdcardfs: Protect set_top
If the top is changed while we're attempting to use it, it's
possible that the reference will be put while we are in the
process of grabbing a reference.

Now we grab a spinlock to protect grabbing our reference count.

Additionally, we now set the inode_info's top value to point to
it's own data when initializing, which makes tracking changes
easier.

Change-Id: If15748c786ce4c0480ab8c5051a92523aff284d2
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
ae426831ef ANDROID: sdcardfs: Add default_normal option
The default_normal option causes mounts with the gid set to
AID_SDCARD_RW to have user specific gids, as in the normal case.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I9619b8ac55f41415df943484dc8db1ea986cef6f
Bug: 64672411
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
95c3511a98 ANDROID: Sdcardfs: Move gid derivation under flag
This moves the code to adjust the gid/uid of lower filesystem
files under the mount flag derive_gid.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I44eaad4ef67c7fcfda3b6ea3502afab94442610c
Bug: 63245673
2018-08-28 17:10:42 +05:30
Gao Xiang
2451d7f28d ANDROID: sdcardfs: use mount_nodev and fix a issue in sdcardfs_kill_sb
Use the VFS mount_nodev instead of customized mount_nodev_with_options
and fix generic_shutdown_super to kill_anon_super because of set_anon_super

Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Change-Id: Ibe46647aa2ce49d79291aa9d0295e9625cfccd80
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
aeea871de1 ANDROID: sdcardfs: Move top to its own struct
Move top, and the associated data, to its own struct.
This way, we can properly track refcounts on top
without interfering with the inode's accounting.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 38045152
Change-Id: I1968e480d966c3f234800b72e43670ca11e1d3fd
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
f1ef049be5 ANDROID: sdcardfs: update module info
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: I958c7c226d4e9265fea8996803e5b004fb33d8ad
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
6f2db92586 ANDROID: sdcardfs: Use pr_[...] instead of printk
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35331000
Change-Id: Ibc635ec865750530d32b87067779f681fe58a003
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
6e8f0a45f9 ANDROID: sdcardfs: Fix style issues with comments
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35331000
Change-Id: I8791ef7eac527645ecb9407908e7e5ece35b8f80
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
4704f29d6a ANDROID: sdcardfs: Fix formatting
This fixes various spacing and bracket related issues
pointed out by checkpatch.

Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 35331000
Change-Id: I6e248833a7a04e3899f3ae9462d765cfcaa70c96
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
75e385dc32 ANDROID: sdcardfs: declare MODULE_ALIAS_FS
From commit ee616b78aa87 ("Wrapfs: declare MODULE_ALIAS_FS")

Signed-off-by: Daniel Rosenberg <drosen@google.com>
bug: 35766959
Change-Id: Ia4728ab49d065b1d2eb27825046f14b97c328cba
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
bc75026900 ANDROID: sdcardfs: Switch ->d_inode to d_inode()
Change-Id: I12375cc2d6e82fb8adf0319be971f335f8d7a312
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
3055103aa8 ANDROID: sdcardfs: Use per mount permissions
This switches sdcardfs over to using permission2.
Instead of mounting several sdcardfs instances onto
the same underlaying directory, you bind mount a
single mount several times, and remount with the
options you want. These are stored in the private
mount data, allowing you to maintain the same tree,
but have different permissions for different mount
points.

Warning functions have been added for permission,
as it should never be called, and the correct
behavior is unclear.

Change-Id: I841b1d70ec60cf2b866fa48edeb74a0b0f8334f5
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
424d3c9024 ANDROID: sdcardfs: Add gid and mask to private mount data
Adds support for mount2, remount2, and the functions
to allocate/clone/copy the private data

The next patch will switch over to actually using it.

Change-Id: I8a43da26021d33401f655f0b2784ead161c575e3
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
alvin_liang
a812e729a9 ANDROID: sdcardfs: fix external storage exporting incorrect uid
Symptom: App cannot write into per-app folder
Root Cause: sdcardfs exports incorrect uid
Solution: fix uid
Project: All
Note:
Test done by RD: passed

Change-Id: Iff64f6f40ba4c679f07f4426d3db6e6d0db7e3ca
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
22d5fcb521 ANDROID: sdcardfs: Added top to sdcardfs_inode_info
Adding packages to the package list and moving files
takes a large amount of locks, and is currently a
heavy operation. This adds a 'top' field to the
inode_info, which points to the inode for the top
most directory whose owner you would like to match.

On permission checks and get_attr, we look up the
owner based on the information at top. When we change
a package mapping, we need only modify the information
in the corresponding top inode_info's. When renaming,
we must ensure top is set correctly in all children.
This happens when an app specific folder gets moved
outside of the folder for that app.

Change-Id: Ib749c60b568e9a45a46f8ceed985c1338246ec6c
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
a5a236a5b1 ANDROID: sdcardfs: Remove unused code
Change-Id: Ie97cba27ce44818ac56cfe40954f164ad44eccf6
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
2286cd5e4c ANDROID: sdcardfs: remove effectless config option
CONFIG_SDCARD_FS_CI_SEARCH only guards a define for
LOOKUP_CASE_INSENSITIVE, which is never used in the
kernel. Remove both, along with the option matching
that supports it.

Change-Id: I363a8f31de8ee7a7a934d75300cc9ba8176e2edf
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Rosenberg
da3341e655 ANDROID: sdcardfs: Bring up to date with Android M permissions:
In M, the workings of sdcardfs were changed significantly.
This brings sdcardfs into line with the changes.

Change-Id: I10e91a84a884c838feef7aa26c0a2b21f02e052e
2018-08-28 17:10:42 +05:30
Daniel Campello
71b8d35b08 ANDROID: Port of sdcardfs to 4.4
Change-Id: I25b99ecf214e72ebf6a57ec3085972542a8d7951
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2018-08-28 17:10:42 +05:30
Daniel Campello
ab2d36952b ANDROID: Included sdcardfs source code for kernel 3.0
Only included the source code as is for kernel 3.0. Following patches
take care of porting this file system to version 3.10.

Change-Id: I09e76db77cd98a059053ba5b6fd88572a4b75b5b
Signed-off-by: Daniel Campello <campello@google.com>
2018-08-28 17:10:42 +05:30