Commit graph

908,786 commits

Author SHA1 Message Date
Srinivasarao Pathipati
8651cbc06a virt: haven: rm_core: Re-use alloc'd message when sending requests
No need to allocate a message queue buffer for each message queue
fragment, re-use the same one.

Change-Id: I5743a704ec08732a2e405724ba795d2d8cea90e3
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-13 00:27:53 +05:30
Srinivasarao Pathipati
83c548eb97 virt: haven: rm_core: Guard against unexpected messages
Gracefully handle non-standard sequences of messages such as
continuation messages without receiving a reply/notification message
first, or a new reply/notification message without having finished the
last message sequence.

Change-Id: I52922fc9ccefb1f7dbb40fbffd2ad6b7fd1162b7
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-13 00:22:08 +05:30
Srinivasarao Pathipati
d6cfdf1189 virt: haven: rm_core: Rename connection variables
Rename "recv_buff" and "recv_buff_size" to "payload" and "size",
respectively. hh_rm_connection on tracks received buffers, so it is
redundant to add "recv". Rename "reply_err_code" to "rm_error" to make
it clear that this field is used for the resource manager's return error
code, and not some other value. While here, re-org and document the
hh_rm_connection struct.

Change-Id: I101262dd907a0e678d8d2c5232a17745f057edaf
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-12 23:00:52 +05:30
Srinivasarao Pathipati
9a6e5e12be virt: haven: rm_core: Remove current_recv_buffer tracking
current_recv_buffer tracks the current end of an ongoing message from
resource manager. It can be easily tracked by "conection->recv_buff +
connection->recv_buff_size". Do that instead to make code clearer.

Change-Id: I191dbdbf39c802868e1c6a262ef5420c02f127b2
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-11 20:41:26 +05:30
Srinivasarao Pathipati
faf7c82fab virt: haven: rm_core: Always allocate a connection for notifications
Currently, there is an optimized path to directly use the message queue
buffer when a received notification fits within a single message and
there aren't any fragments. This greatly complicates buffer management
and might not provide any measurable benefit.
Suppose Linux receives a notification with one fragment then a
notification with 3 fragments. In current flow, there is 1 alloc for the
first notification and 4 allocations for the 2nd notification (1 for
each message + 1 for overall combined buffer). In the new flow, we could
optimize this to 0 allocations for each message because we can re-use
the same message buffer for each fragment and then a single alloc for
the entire payload.
There is, however, a slightly increased cost for single-message
notifications in the form of an extra memcpy from the message buffer to
notification buffer. Under the code optimizations and simplifications
that come with this cost, it is a worthy cost.

Change-Id: Ib52bd332f59b108d7dab9121c0beefed0aa66994
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-11 20:38:30 +05:30
Srinivasarao Pathipati
840766fa59 virt: haven: rm_core: Validate notifications using payload size only
Preparation for cleaning up the resource manager core.
Notification size validation needs to only be performed on the payload
size. The RM RPC header will always be present, else the RM driver would
not have been able to determine that the message is a notification.
Thus, considering the RPC header is not required.

Change-Id: Id6a561a77d693e4f8f307d9d0d96b8d173940c60
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-10-10 11:58:25 +05:30
qctecmdr
d50888146d Merge "msm: ipa3: Add multi IDU support for external router mode FR" 2022-09-23 00:15:42 -07:00
rnamala
1414389bb2 msm: adsprpc: fix UAF process init_mem
Process init memory allowed to initialize only once
to fix possible improper acecss from remote processor.

Change-Id: Ic1a13738146fcf0d170abd76b50bdc6a75871755
Acked-by: Ranjith Goud Namala <rnamala@qti.qualcomm.com>
Signed-off-by: rnamala <quic_rnamala@quicinc.com>
2022-09-21 11:13:42 +05:30
Michael Adisumarta
e7b535d30d msm: ipa3: Add multi IDU support for external router mode FR
Update ext router mode IOCTL to get an array of
delegated prefixes and their corresponding IDU WAN IP.

Change-Id: I8ea6a98f8f0f894409e9c5af4db0bd37b46778b2
Signed-off-by: Michael Adisumarta <quic_madisuma@quicinc.com>
2022-09-20 13:48:51 -07:00
Zeng Tao
747163a77d cpu-topology: Don't error on more than CONFIG_NR_CPUS CPUs in device tree
When the kernel is configured with CONFIG_NR_CPUS smaller than the
number of CPU nodes in the device tree(DT), all the CPU nodes parsing
done to fetch topology information will fail. This is not reasonable
as it is valid to have all the physical CPUs in the system in the DT.

Let us just skip such CPU DT nodes that are not used in the kernel
rather than returning an error.

Change-Id: I56c6629d341b0e143372f8d643abb0c012f7e5ae
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com>
Link: https://lore.kernel.org/r/1579225973-32423-1-git-send-email-prime.zeng@hisilicon.com
Git-commit: f3c19481820cca412a768ae1d6737f59b68acfed
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Shivnandan Kumar <quic_kshivnan@quicinc.com>
2022-09-15 21:52:35 -07:00
qctecmdr
9bcca5966c Merge "soc: qcom: socinfo: correct the name of softsku_id" 2022-09-12 00:04:09 -07:00
qctecmdr
8473879e93 Merge "Merge android11-5.4.197+ (26eb689) into msm-5.4" 2022-09-12 00:04:08 -07:00
Chetan C R
5f6ae20b0c soc: qcom: socinfo: correct the name of softsku_id
Correct the softsku_id name to softsku_idx So, that post
boot scripts get this values.

Change-Id: Id7674a0557a99586b6b26f3cb3eab2819c90d272
Signed-off-by: Chetan C R <quic_cchinnad@quicinc.com>
2022-09-09 17:13:12 +05:30
Mohammed Siddiq
fd5a3b3d32 cnss2: Add code to fallback to non-contiguous FW mem allocation
Add code to fallback to non-contiguous FW mem allocation on
failure to allocate contiguous memory.

Change-Id: Idbc7ff7f9ea4d2157e3b549dde8ee090a0f0b412
Signed-off-by: Mohammed Siddiq <quic_msiddiq@quicinc.com>
2022-09-06 18:05:33 +05:30
Srinivasarao Pathipati
accdce3646 Merge android11-5.4.197+ (26eb689) into msm-5.4
* refs/heads/tmp-26eb689:
  BACKPORT: f2fs: do not set compression bit if kernel doesn't support
  UPSTREAM: f2fs: fix UAF in f2fs_available_free_memory
  ANDROID: f2fs: check nr_pages for readahead
  UPSTREAM: f2fs: guarantee to write dirty data when enabling checkpoint back
  FROMGIT: f2fs: flush data when enabling checkpoint back
  BACKPORT: f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit
  BACKPORT: f2fs: enforce the immutable flag on open files
  BACKPORT: f2fs: change i_compr_blocks of inode to atomic value
  BACKPORT: f2fs: make file immutable even if releasing zero compression block
  BACKPORT: f2fs: compress: remove unneeded preallocation
  ANDROID: binder: fix pending prio state for early exit
  ANDROID: binder: fix race in priority restore
  ANDROID: binder: switch task argument for binder_thread
  ANDROID: binder: pass desired priority by reference
  ANDROID: binder: fold common setup of node_prio
  BACKPORT: Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put
  FROMLIST: binder: fix UAF of ref->proc caused by race condition

Change-Id: I1294f6ad0b47b98ff274e4be52eb280e712f0246
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-09-02 19:41:25 +05:30
qctecmdr
3b409562e8 Merge "defconfig: sdxlemur: Enable configs on sdxlemur" 2022-09-02 04:13:14 -07:00
Rohit Agarwal
ce70d10e46 defconfig: sdxlemur: Enable configs on sdxlemur
Enable some additional configs on sdxlemur.

Change-Id: If4bfdad7b6755b5f5532ec5b21d6272d7894fd34
Signed-off-by: Rohit Agarwal <quic_rohiagar@quicinc.com>
2022-09-02 09:54:55 +05:30
Chetan C R
f19e834b29 soc: qcom: socinfo: Get SKU ID from kernel command line
Get the softsku_idx value by reading it from kernel
command line and write it to sysfs file So, that post
boot scripts get this values.

Change-Id: I7a46b3d3d3db7d34ab4f29d5fe1ea79a5ed654d1
Signed-off-by: Chetan C R <quic_cchinnad@quicinc.com>
2022-08-29 08:29:29 -07:00
rnamala
c3219d4f05 msm: adsprpc: Prevent use after free in fastrpc_invoke_send
In some async scenarios, the message context might be freed
by the async response thread before the user thread
updates the txmsg buffer. This leads to a use after free scenario.
Prevent this from happening by copying message to a temporary
variable and using this temporary variable.

Change-Id: I181eb5c6e1a6bdc2437f974d5f514d8fdfefcc9f
Acked-by: Ranjith Goud Namala <rnamala@qti.qualcomm.com>
Signed-off-by: rnamala <quic_rnamala@quicinc.com>
2022-08-28 01:48:01 -07:00
Subbaraman Narayanamurthy
00ad633ef4 power: supply: qti_battery_charger: Fix NULL pointer dereference
With psy initialized in battery_chg_init_psy(), read_property_id()
when called from battery_chg_parse_dt() can try accessing
psy->desc->name when dynamic debugging is enabled. Fix it.

Change-Id: I88114ea9779d5113524b8b15659bf8bafe6364ed
Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
2022-08-26 12:57:17 -07:00
qctecmdr
c73b8b29cc Merge "cnss2: Update DRV support flag in the feature list of host cap" 2022-08-26 03:45:52 -07:00
Mohammed Siddiq
dc7b9ccc2d cnss2: Update DRV support flag in the feature list of host cap
Update DRV support flag in the feature list of host cap so that
the firmware is aware of the DRV feature support on the host.

Change-Id: I6effd21293da80e023076469f7a42f5bf0018830
Signed-off-by: Mohammed Siddiq <msiddiq@codeaurora.org>
2022-08-25 20:55:15 -07:00
Vamsi Krishna Gattupalli
5b17b91197 msm: adsprpc: Fix for hyp_assign_phys double call
A check is introduced to restrict  the double call of
hyp_assign_phys for the same address.

Change-Id: I0ac984af9fe456d317c7c2d99d6d1290f86830e8
Acked-by: Ansa Ahmed <ansaahme@qti.qualcomm.com>
Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
2022-08-25 12:50:17 +05:30
qctecmdr
24624df1f8 Merge "msm: ipa: Modification for Pipe info based on tethering protocol" 2022-08-24 00:33:58 -07:00
qctecmdr
68eac8ff03 Merge "Merge android11-5.4.197+ (3970bc6) into msm-5.4" 2022-08-22 22:49:43 -07:00
qctecmdr
992339670c Merge "msm: mhi_dev: Avoiding delay in transfer completion" 2022-08-22 22:49:42 -07:00
Saurav Kumar
d6e85b80fd UAPI: update uapi header to fix struct re-definition errors
Update header to fix struct re-definition errors
by including host time header instead of uapi
specific time header file.

Change-Id: I67b52ba2928480c24abbdf7a2d246635fedfaafd
Signed-off-by: Saurav Kumar <quic_sauravk@quicinc.com>
2022-08-18 22:48:56 -07:00
Guillaume Nault
79ff84826e net/sched: act_mpls: Add action to push MPLS LSE before Ethernet header
Define the MAC_PUSH action which pushes an MPLS LSE before the mac
header (instead of between the mac and the network headers as the
plain PUSH action does).

The only special case is when the skb has an offloaded VLAN. In that
case, it has to be inlined before pushing the MPLS header.

Change-Id: Iea0792dac8682bccc4a6a506244c81ed799f779f
Signed-off-by: Guillaume Nault gnault@redhat.com
Signed-off-by: David S. Miller davem@davemloft.net
Git-commit: a45294af9e96a3e060b6272fa7cd2c4b196de335
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[quic_jguidry@quicinc.com: Enabled net/sched filtering and classification in
 sdxlemur.config]
Signed-off-by: James Wyatt Guidry <quic_jguidry@quicinc.com>
2022-08-16 09:30:35 -07:00
Vinayaka B M
73de3d4872 msm: ipa: Modification for Pipe info based on tethering protocol
Add support to send pipe info based on the tethering protocal.

Change-Id: I8d27461b4b64e1651f3f74188197156fde282d7e
Signed-off-by: Vinayaka B M <quic_vinaybm@quicinc.com>
2022-08-16 09:16:11 -07:00
Srinivasarao Pathipati
630e7df8c5 Merge android11-5.4.197+ (3970bc6) into msm-5.4
* refs/heads/tmp-3970bc6:
  UPSTREAM: Revert "net: af_key: add check for pfkey_broadcast in function pfkey_process"
  FROMGIT: arm64: fix oops in concurrently setting insn_emulation sysctls
  ANDROID: abi_gki_aarch64_qcom: Add vmemdup_user to qcom symbol list
  ANDROID: GKI: update Sony KMI symbol list
  UPSTREAM: mm: fix misplaced unlock_page in do_wp_page()
  BACKPORT: mm: do_wp_page() simplification
  UPSTREAM: mm/ksm: Remove reuse_ksm_page()
  BACKPORT: ALSA: pcm: Fix races among concurrent prealloc proc writes
  BACKPORT: ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
  BACKPORT: ALSA: pcm: Fix races among concurrent read/write and buffer changes
  ANDROID: Fix up abi issue with struct snd_pcm_runtime
  BACKPORT: ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
  BACKPORT: nfc: nfcmrvl: main: reorder destructive operations in nfcmrvl_nci_unregister_dev to avoid bugs
  Linux 5.4.197
  bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
  NFSD: Fix possible sleep during nfsd4_release_lockowner()
  NFS: Memory allocation failures are not server fatal errors
  docs: submitting-patches: Fix crossref to 'The canonical patch format'
  tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
  tpm: Fix buffer access in tpm2_get_tpm_pt()
  HID: multitouch: Add support for Google Whiskers Touchpad
  raid5: introduce MD_BROKEN
  dm verity: set DM_TARGET_IMMUTABLE feature flag
  dm stats: add cond_resched when looping over entries
  dm crypt: make printing of the key constant-time
  dm integrity: fix error code in dm_integrity_ctr()
  zsmalloc: fix races between asynchronous zspage free and page migration
  crypto: ecrdsa - Fix incorrect use of vli_cmp
  netfilter: conntrack: re-fetch conntrack after insertion
  exec: Force single empty string when argv is empty
  drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
  cfg80211: set custom regdomain after wiphy registration
  assoc_array: Fix BUG_ON during garbage collect
  drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
  i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
  net: ftgmac100: Disable hardware checksum on AST2600
  net: af_key: check encryption module availability consistency
  pinctrl: sunxi: fix f1c100s uart2 function
  ACPI: sysfs: Fix BERT error region memory mapping
  ACPI: sysfs: Make sparse happy about address space in use
  media: vim2m: initialize the media device earlier
  media: vim2m: Register video device after setting up internals
  secure_seq: use the 64 bits of the siphash for port offset calculation
  tcp: change source port randomizarion at connect() time
  Input: goodix - fix spurious key release events
  staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan()
  x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests
  lockdown: also lock down previous kgdb use
  Linux 5.4.196
  afs: Fix afs_getattr() to refetch file status if callback break occurred
  i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
  x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
  x86/xen: fix booting 32-bit pv guest
  Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE""
  ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
  firmware_loader: use kernel credentials when reading firmware
  net: stmmac: disable Split Header (SPH) for Intel platforms
  block: return ELEVATOR_DISCARD_MERGE if possible
  Input: ili210x - fix reset timing
  net: atlantic: verify hw_head_ lies within TX buffer ring
  net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe()
  ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one()
  selftests: add ping test with ping_group_range tuned
  mac80211: fix rx reordering with non explicit / psmp ack policy
  scsi: qla2xxx: Fix missed DMA unmap for aborted commands
  perf bench numa: Address compiler error on s390
  gpio: mvebu/pwm: Refuse requests with inverted polarity
  gpio: gpio-vf610: do not touch other bits when set the target bit
  net: bridge: Clear offload_fwd_mark when passing frame up bridge interface.
  igb: skip phy status check where unavailable
  ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2
  ARM: 9196/1: spectre-bhb: enable for Cortex-A15
  net: af_key: add check for pfkey_broadcast in function pfkey_process
  net/mlx5e: Properly block LRO when XDP is enabled
  NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc
  net/qla3xxx: Fix a test in ql_reset_work()
  clk: at91: generated: consider range when calculating best rate
  ice: fix possible under reporting of ethtool Tx and Rx statistics
  net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup()
  net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf()
  net/sched: act_pedit: sanitize shift argument before usage
  net: macb: Increment rx bd head after allocating skb and buffer
  ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group
  ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi
  dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
  drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
  crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
  KVM: x86/mmu: Update number of zapped pages even if page list is stable
  PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold
  Fix double fget() in vhost_net_set_backend()
  perf: Fix sys_perf_event_open() race against self
  ALSA: wavefront: Proper check of get_user() error
  SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
  SUNRPC: Don't call connect() more than once on a TCP socket
  SUNRPC: Prevent immediate close+reconnect
  SUNRPC: Clean up scheduling of autoclose
  mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch()
  mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD
  mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC
  nilfs2: fix lockdep warnings during disk space reclamation
  nilfs2: fix lockdep warnings in page operations for btree nodes
  ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
  platform/chrome: cros_ec_debugfs: detach log reader wq from devm
  drbd: remove usage of list iterator variable after loop
  MIPS: lantiq: check the return value of kzalloc()
  rtc: mc146818-lib: Fix the AltCentury for AMD platforms
  nvme-multipath: fix hang when disk goes live over reconnect
  ALSA: hda/realtek: Enable headset mic on Lenovo P360
  crypto: x86/chacha20 - Avoid spurious jumps to other functions
  crypto: stm32 - fix reference leak in stm32_crc_remove
  Input: stmfts - fix reference leak in stmfts_input_open
  Input: add bounds checking to input_set_capability()
  um: Cleanup syscall_handler_t definition/cast, fix warning
  rtc: fix use-after-free on device removal
  x86/xen: Make the secondary CPU idle tasks reliable
  x86/xen: Make the boot CPU idle task reliable
  floppy: use a statically allocated error counter
  ANDROID: fix up abi issue with struct snd_pcm_runtime
  Linux 5.4.195
  tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()
  ping: fix address binding wrt vrf
  arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map
  net: phy: Fix race condition on link status change
  MIPS: fix build with gcc-12
  drm/vmwgfx: Initialize drm_mode_fb_cmd2
  cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp()
  i40e: i40e_main: fix a missing check on list iterator
  drm/nouveau/tegra: Stop using iommu_present()
  serial: 8250_mtk: Fix register address for XON/XOFF character
  serial: 8250_mtk: Fix UART_EFR register address
  slimbus: qcom: Fix IRQ check in qcom_slim_probe
  USB: serial: option: add Fibocom MA510 modem
  USB: serial: option: add Fibocom L610 modem
  USB: serial: qcserial: add support for Sierra Wireless EM7590
  USB: serial: pl2303: add device id for HP LM930 Display
  usb: typec: tcpci: Don't skip cleanup in .remove() on error
  usb: cdc-wdm: fix reading stuck on device close
  tty: n_gsm: fix mux activation issues in gsm_config()
  tcp: resalt the secret every 10 seconds
  net: emaclite: Don't advertise 1000BASE-T and do auto negotiation
  s390: disable -Warray-bounds
  ASoC: ops: Validate input values in snd_soc_put_volsw_range()
  ASoC: max98090: Generate notifications on changes for custom control
  ASoC: max98090: Reject invalid values in custom control put()
  hwmon: (f71882fg) Fix negative temperature
  gfs2: Fix filesystem block deallocation for short writes
  net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe()
  net/smc: non blocking recvmsg() return -EAGAIN when no data and signal_pending
  net/sched: act_pedit: really ensure the skb is writable
  s390/lcs: fix variable dereferenced before check
  s390/ctcm: fix potential memory leak
  s390/ctcm: fix variable dereferenced before check
  hwmon: (ltq-cputemp) restrict it to SOC_XWAY
  dim: initialize all struct fields
  mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection
  netlink: do not reset transport header in netlink_recvmsg()
  drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name()
  ipv4: drop dst in multicast routing path
  net: Fix features skip in for_each_netdev_feature()
  mac80211: Reset MBSSID parameters upon connection
  hwmon: (tmp401) Add OF device ID table
  batman-adv: Don't skb_split skbuffs with frag_list
  Linux 5.4.194
  mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and __mcopy_atomic()
  mm: hugetlb: fix missing cache flush in copy_huge_page_from_user()
  mm: fix missing cache flush for all tail pages of compound page
  Bluetooth: Fix the creation of hdev->name
  KVM: x86/svm: Account for family 17h event renumberings in amd_pmc_perf_hw_id
  x86: kprobes: Prohibit probing on instruction which has emulate prefix
  x86: xen: insn: Decode Xen and KVM emulate-prefix signature
  x86: xen: kvm: Gather the definition of emulate prefixes
  x86/asm: Allow to pass macros to __ASM_FORM()
  KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
  arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
  can: grcan: only use the NAPI poll budget for RX
  can: grcan: grcan_probe(): fix broken system id check for errata workaround needs
  nfp: bpf: silence bitwise vs. logical OR warning
  drm/i915: Cast remain to unsigned long in eb_relocate_vma
  drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version, environment} types
  block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit
  MIPS: Use address-of operator on section symbols
  ANDROID: GKI: update the abi .xml file
  Revert "tcp: ensure to use the most recently sent skb when filling the rate sample"
  Linux 5.4.193
  mmc: rtsx: add 74 Clocks in power on flow
  PCI: aardvark: Fix reading MSI interrupt number
  PCI: aardvark: Clear all MSIs at setup
  dm: interlock pending dm_io and dm_wait_for_bios_completion
  dm: fix mempool NULL pointer race when completing IO
  tcp: make sure treq->af_specific is initialized
  ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
  ALSA: pcm: Fix races among concurrent prealloc proc writes
  ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
  ALSA: pcm: Fix races among concurrent read/write and buffer changes
  ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
  mm: fix unexpected zeroed page mapping with zram swap
  block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
  net: ipv6: ensure we call ipv6_mc_down() at most once
  KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
  x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
  kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
  NFSv4: Don't invalidate inode attributes on delegation return
  drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu
  net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
  btrfs: always log symlinks in full mode
  smsc911x: allow using IRQ0
  bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
  selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is operational
  net: emaclite: Add error handling for of_address_to_resource()
  net: stmmac: dwmac-sun8i: add missing of_node_put() in sun8i_dwmac_register_mdio_mux()
  net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init()
  RDMA/siw: Fix a condition race issue in MPA request processing
  ASoC: dmaengine: Restore NULL prepare_slave_config() callback
  hwmon: (adt7470) Fix warning on module removal
  NFC: netlink: fix sleep in atomic bug when firmware download timeout
  nfc: nfcmrvl: main: reorder destructive operations in nfcmrvl_nci_unregister_dev to avoid bugs
  nfc: replace improper check device_is_registered() in netlink related functions
  can: grcan: use ofdev->dev when allocating DMA memory
  can: grcan: grcan_close(): fix deadlock
  s390/dasd: Fix read inconsistency for ESE DASD devices
  s390/dasd: Fix read for ESE with blksize < 4k
  s390/dasd: prevent double format of tracks for ESE devices
  s390/dasd: fix data corruption for ESE devices
  ASoC: meson: Fix event generation for G12A tohdmi mux
  ASoC: wm8958: Fix change notifications for DSP controls
  ASoC: da7219: Fix change notifications for tone generator frequency
  genirq: Synchronize interrupt thread startup
  ACPICA: Always create namespace nodes using acpi_ns_create_node()
  firewire: core: extend card->lock in fw_core_handle_bus_reset
  firewire: remove check of list iterator against head past the loop body
  firewire: fix potential uaf in outbound_phy_packet_callback()
  Revert "SUNRPC: attempt AF_LOCAL connect on setup"
  gpiolib: of: fix bounds check for 'gpio-reserved-ranges'
  ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes
  parisc: Merge model and model name into one line in /proc/cpuinfo
  MIPS: Fix CP0 counter erratum detection for R4k CPUs
  Linux 5.4.192
  mm, hugetlb: allow for "high" userspace addresses
  hugetlbfs: get unmapped area below TASK_UNMAPPED_BASE for hugetlbfs
  tty: n_gsm: fix incorrect UA handling
  tty: n_gsm: fix wrong command frame length field encoding
  tty: n_gsm: fix wrong command retry handling
  tty: n_gsm: fix missing explicit ldisc flush
  tty: n_gsm: fix insufficient txframe size
  netfilter: nft_socket: only do sk lookups when indev is available
  tty: n_gsm: fix malformed counter for out of frame data
  tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2
  x86/cpu: Load microcode during restore_processor_state()
  net: ethernet: stmmac: fix write to sgmii_adapter_base
  drivers: net: hippi: Fix deadlock in rr_close()
  cifs: destage any unwritten data to the server before calling copychunk_write
  x86: __memcpy_flushcache: fix wrong alignment if size > 2^32
  ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit()
  ASoC: wm8731: Disable the regulator when probing fails
  tcp: fix F-RTO may not work correctly when receiving DSACK
  ixgbe: ensure IPsec VF<->PF compatibility
  bnx2x: fix napi API usage sequence
  tls: Skip tls_append_frag on zero copy size
  drm/amd/display: Fix memory leak in dcn21_clock_source_create
  net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK
  net: bcmgenet: hide status block before TX timestamping
  clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource()
  bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create()
  tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT
  ip_gre: Make o_seqno start from 0 in native mode
  net/smc: sync err code when tcp connection was refused
  net: hns3: add validity check for message data length
  cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
  pinctrl: pistachio: fix use of irq_of_parse_and_map()
  arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock
  ARM: dts: imx6ull-colibri: fix vqmmc regulator
  sctp: check asoc strreset_chunk in sctp_generate_reconf_event
  tcp: ensure to use the most recently sent skb when filling the rate sample
  tcp: md5: incorrect tcp_header_len for incoming connections
  bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt hook
  mtd: rawnand: Fix return value check of wait_for_completion_timeout
  ipvs: correctly print the memory size of ip_vs_conn_tab
  ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35
  ARM: dts: am3517-evm: Fix misc pinmuxing
  ARM: dts: Fix mmc order for omap3-gta04
  phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe
  phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe
  ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek
  phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks
  ARM: OMAP2+: Fix refcount leak in omap_gic_of_init
  phy: samsung: exynos5250-sata: fix missing device put in probe error paths
  phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe
  ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue
  USB: Fix xhci event ring dequeue pointer ERDP update issue
  mtd: rawnand: fix ecc parameters for mt7622
  arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards
  arm64: dts: meson: remove CPU opps below 1GHz for G12B boards
  video: fbdev: udlfb: properly check endpoint type
  hex2bin: fix access beyond string end
  hex2bin: make the function hex_to_bin constant-time
  arch_topology: Do not set llc_sibling if llc_id is invalid
  serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device
  serial: 8250: Also set sticky MCR bits in console restoration
  serial: imx: fix overrun interrupts in DMA mode
  usb: dwc3: gadget: Return proper request status
  usb: dwc3: core: Fix tx/rx threshold settings
  usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind()
  usb: gadget: uvc: Fix crash when encoding data for usb request
  usb: typec: ucsi: Fix role swapping
  usb: misc: fix improper handling of refcount in uss720_probe()
  iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on()
  iio: dac: ad5446: Fix read_raw not returning set value
  iio: dac: ad5592r: Fix the missing return value.
  xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms
  xhci: stop polling roothubs after shutdown
  USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions
  USB: serial: option: add support for Cinterion MV32-WA/MV32-WB
  USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader
  USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS
  USB: quirks: add STRING quirk for VCOM device
  USB: quirks: add a Realtek card reader
  usb: mtu3: fix USB 3.0 dual-role-switch from device to host
  lightnvm: disable the subsystem
  hamradio: remove needs_free_netdev to avoid UAF
  hamradio: defer 6pack kfree after unregister_netdev
  floppy: disable FDRAWCMD by default

 Conflicts:
	drivers/usb/dwc3/gadget.c
	include/linux/dma-mapping.h
	include/linux/stmmac.h
	mm/memory.c

Change-Id: I3bf49e11ae4aeaf1db353efbdfee950cd12de8cf
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2022-08-16 16:52:01 +05:30
qctecmdr
df885aa30f Merge "net/sched: act_vlan: Add {POP,PUSH}_ETH actions" 2022-08-12 10:24:16 -07:00
qctecmdr
0d46248c73 Merge "iio: qcom-spmi-adc5: Add support for calibrated bat_therm channel" 2022-08-10 22:10:46 -07:00
Jaegeuk Kim
26eb689452 BACKPORT: f2fs: do not set compression bit if kernel doesn't support
If kernel doesn't have CONFIG_F2FS_FS_COMPRESSION, a file having FS_COMPR_FL via
ioctl(FS_IOC_SETFLAGS) is unaccessible due to f2fs_is_compress_backend_ready().
Let's avoid it.

Bug: 240921972
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit d5a44717f6e0f0943808671e36b1909619707016)
Change-Id: Ieb0f8945175ea5ccb0060690e882f054360fb8f0
2022-08-10 13:06:44 -07:00
Dongliang Mu
17bdd623f3 UPSTREAM: f2fs: fix UAF in f2fs_available_free_memory
if2fs_fill_super
-> f2fs_build_segment_manager
   -> create_discard_cmd_control
      -> f2fs_start_discard_thread

It invokes kthread_run to create a thread and run issue_discard_thread.

However, if f2fs_build_node_manager fails, the control flow goes to
free_nm and calls f2fs_destroy_node_manager. This function will free
sbi->nm_info. However, if issue_discard_thread accesses sbi->nm_info
after the deallocation, but before the f2fs_stop_discard_thread, it will
cause UAF(Use-after-free).

-> f2fs_destroy_segment_manager
   -> destroy_discard_cmd_control
      -> f2fs_stop_discard_thread

Fix this by stopping discard thread before f2fs_destroy_node_manager.

Note that, the commit d6d2b491a82e1 introduces the call of
f2fs_available_free_memory into issue_discard_thread.

Cc: stable@vger.kernel.org
Fixes: d6d2b491a82e ("f2fs: allow to change discard policy based on cached discard cmds")
Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 5429c9dbc9025f9a166f64e22e3a69c94fd5b29b)
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Change-Id: If121b453455b11b2aded8ba8a3899faad431dbd3
2022-08-10 13:06:44 -07:00
Jaegeuk Kim
7e4f972231 ANDROID: f2fs: check nr_pages for readahead
Old kernel versions have the issue, since upstream f2fs removed this flow by:
commit d4384de9eb5e ("f2fs: Remove readahead collision detection").

Bug: 206148707
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Fixes: 8c95605c41a1 ("f2fs: avoid readahead race condition")
Change-Id: I3a95f0b436d0a5ee420f41d892401a8d79d4fe79
2022-08-10 13:06:44 -07:00
Jaegeuk Kim
f711e743ec UPSTREAM: f2fs: guarantee to write dirty data when enabling checkpoint back
We must flush all the dirty data when enabling checkpoint back. Let's guarantee
that first by adding a retry logic on sync_inodes_sb(). In addition to that,
this patch adds to flush data in fsync when checkpoint is disabled, which can
mitigate the sync_inodes_sb() failures in advance.

Bug: 194449609
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit dddd3d65293a52c2c3850c19b1e5115712e534d8)
Change-Id: I5bbef7386ddbb44fd925262fb68a8ef0a4960993
(cherry picked from commit 90c60a51f510da64554abe9c6b748ed624543192)
2022-08-10 12:46:21 -07:00
Jaegeuk Kim
d7b2931cce FROMGIT: f2fs: flush data when enabling checkpoint back
During checkpoint=disable period, f2fs bypasses all the synchronous IOs such as
sync and fsync. So, when enabling it back, we must flush all of them in order
to keep the data persistent. Otherwise, suddern power-cut right after enabling
checkpoint will cause data loss.

Bug: 171063590
Fixes: 4354994f09 ("f2fs: checkpoint disabling")
Cc: stable@vger.kernel.org
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 8d52dbb373579b48f5758dd0cdd2ac0fb4e5be7f git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev)
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: Iaca2d6fc1841fffa8677d5d592732c94241fb3fb
2022-08-10 12:46:21 -07:00
Guillaume Nault
bd20869df5 net/sched: act_vlan: Add {POP,PUSH}_ETH actions
Implement TCA_VLAN_ACT_POP_ETH and TCA_VLAN_ACT_PUSH_ETH, to
    respectively pop and push a base Ethernet header at the beginning of a
    frame.

    POP_ETH is just a matter of pulling ETH_HLEN bytes. VLAN tags, if any,
    must be stripped before calling POP_ETH.

    PUSH_ETH is restricted to skbs with no mac_header, and only the MAC
    addresses can be configured. The Ethertype is automatically set from
    skb->protocol. These restrictions ensure that all skb's fields remain
    consistent, so that this action can't confuse other part of the
    networking stack (like GSO).

    Since openvswitch already had these actions, consolidate the code in
    skbuff.c (like for vlan and mpls push/pop).

Change-Id: Ifce1d5fee3eb1741bdc88b22f9000226744cc56c
Signed-off-by: Guillaume Nault gnault@redhat.com
Signed-off-by: David S. Miller davem@davemloft.net
Git-commit: 19fbcb36a39eefbe8912a13ccc02e937b1c418d6
Git-repo: https://android.googlesource.com/kernel/common/
[quic_jguidry@quicinc.com: Added CONFIG_NET_SCHED_ACT_VLAN_QGKI to
 sdxlemur.config]
Signed-off-by: James Wyatt Guidry <quic_jguidry@quicinc.com>
2022-08-10 09:29:25 -07:00
Aditya Mathur
abb255af77 virtiofs: fix virtio_fs_fiq_ops api
Fixing api signature for virtio_fs_fiq_ops.

Change-Id: Ib6b5112b710b0293d9af5c29e460c07e9d30b153
Signed-off-by: Aditya Mathur <quic_aditmath@quicinc.com>
2022-08-09 02:51:27 -07:00
qctecmdr
ded7fbf8bd Merge "dt-bindings: iio: add support for calibrated bat_therm channel" 2022-08-08 05:05:25 -07:00
Jishnu Prakash
9b947ab102 iio: qcom-spmi-adc5: Add support for calibrated bat_therm channel
Add support for calibrated bat_therm channel which
has more accuracy than default bat_therm channel.

Change-Id: I7516c96aaca90db2dd84ed47364ea8f5d1259360
Signed-off-by: Jishnu Prakash <quic_jprakash@quicinc.com>
2022-08-07 23:16:41 -07:00
Jishnu Prakash
fed05d2fd3 dt-bindings: iio: add support for calibrated bat_therm channel
Add support for calibrated bat_therm channel on charger PMICs
PM8350B and PM7325B, which has more accuracy than default bat_therm
channel.

Change-Id: Id24e187c5a83519f9913457e871429bf729d9213
Signed-off-by: Jishnu Prakash <quic_jprakash@quicinc.com>
2022-08-07 23:16:06 -07:00
Swathi K
6596344010 msm: adsprpc: Handle out of bounds access
Add check for channel ID in fastrpc_buf_alloc to
fix out of bounds access.

Change-Id: I92f2717edcc91c19309589ce7c11c91c8129b71a
Signed-off-by: Swathi K <quic_c_kataka@quicinc.com>
2022-08-04 17:59:38 +05:30
Jaegeuk Kim
601b2ed3e6 BACKPORT: f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit
commit c61404153eb6 upstream.

Once we release compressed blocks, we used to set IMMUTABLE bit. But it turned
out it disallows every fs operations which we don't need for compression.

Let's just prevent writing data only.

Bug: 237904436
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I3f91a67da56fe26e39a776a5bc595aa809dc804b
2022-08-04 09:05:59 +00:00
Chao Yu
d2972f90d6 BACKPORT: f2fs: enforce the immutable flag on open files
commit e0fcd01510ad upstream.

This patch ports commit 02b016ca7f ("ext4: enforce the immutable
flag on open files") to f2fs.

According to the chattr man page, "a file with the 'i' attribute
cannot be modified..."  Historically, this was only enforced when the
file was opened, per the rest of the description, "... and the file
can not be opened in write mode".

There is general agreement that we should standardize all file systems
to prevent modifications even for files that were opened at the time
the immutable flag is set.  Eventually, a change to enforce this at
the VFS layer should be landing in mainline.

Bug: 237904436
Cc: stable@kernel.org
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I9c74498ed3174309ff14158c8c3ad6dee6e1c8ca
2022-08-04 09:05:59 +00:00
Daeho Jeong
d2e72fa0b9 BACKPORT: f2fs: change i_compr_blocks of inode to atomic value
commit c2759ebaf7e8 upstream.

writepages() can be concurrently invoked for the same file by different
threads such as a thread fsyncing the file and a kworker kernel thread.
So, changing i_compr_blocks without protection is racy and we need to
protect it by changing it with atomic type value. Plus, we don't need
a 64bit value for i_compr_blocks, so just we will use a atomic value,
not atomic64.

Bug: 237904436
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I11f837249078d1b7ef50ac9c156c375542c714b3
2022-08-04 09:05:59 +00:00
Daeho Jeong
8629059128 BACKPORT: f2fs: make file immutable even if releasing zero compression block
commit 567c4bf54a85 upstream.

When we use F2FS_IOC_RELEASE_COMPRESS_BLOCKS ioctl, if we can't find
any compressed blocks in the file even with large file size, the
ioctl just ends up without changing the file's status as immutable.
It makes the user, who expects that the file is immutable when it
returns successfully, confused.

Bug: 237904436
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I2c96428442e69b69c7064096d2e1ce8e2b99cc09
2022-08-04 09:05:59 +00:00
Chao Yu
3cf0f8245d BACKPORT: f2fs: compress: remove unneeded preallocation
commit 8f1d49832636 upstream.

We will reserve iblocks for compression saved, so during compressed
cluster overwrite, we don't need to preallocate blocks for later
write.

In addition, it adds a bug_on to detect wrong reserved iblock number
in __f2fs_cluster_blocks().

Bug fix in the original patch by Jaegeuk:
If we released compressed blocks having an immutable bit, we can see less
number of compressed block addresses. Let's fix wrong BUG_ON.

Bug: 237904436
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: I673af616581a9e7bf711e60d1588856f24f65dc9
2022-08-04 09:05:59 +00:00
qctecmdr
b2e71fbdb8 Merge "msm: adsprpc: Validate the CID" 2022-08-03 11:48:30 -07:00
Carlos Llamas
012ab662e2 ANDROID: binder: fix pending prio state for early exit
When calling binder_do_set_priority() with the same policy and priority
values as the current task, we exit early since there is nothing to do.
However, the BINDER_PRIO_PENDING state might be set and in this case we
fail to update it. A subsequent call to binder_transaction_priority()
will then read an incorrect state and save the wrong priority. Fix this
by setting thread->prio_state to BINDER_PRIO_SET on our way out.

Bug: 199309216
Fixes: cac827f2619b ("ANDROID: binder: fix race in priority restore")
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Change-Id: I21e906cf4b2ebee908af41fe101ecd458ae1991c
(cherry picked from commit 72193be6d4bd9ad29dacd998c14dff97f7a6c6c9)
2022-08-03 16:21:47 +00:00