Commit Graph

983642 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
be686d451e Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:

1ba7c99bd3 ANDROID: cpufreq: times: record fast switch frequency transitions
45ebb9628e ANDROID: GKI: add required symbols for btusb to virtual device
06d074249f ANDROID: arm64: add vendor hooks for bti and pauth fault
129e04dc19 FROMLIST: drivers: thermal: Reset previous low and high trip during thermal zone init
f72f41f50c UPSTREAM: mm: vmalloc: prevent use after free in _vm_unmap_aliases
68a3d0062d ANDROID: ABI: update allowed list for galaxy
fb247ebba9 ANDROID: Add android_vh_rproc_recovery_set
14eae186e4 ANDROID: rproc: Add vendor hook when setting recovery mode
56cc81bb39 BACKPORT: FROMLIST: scsi: ufs: Fix a deadlock in the error handler
ff748ee298 BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver
94ca15ec92 BACKPORT: FROMLIST: scsi: ufs: Limit the queue depth to host->can_queue
5b87b8d669 ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"
a7d87a08b4 UPSTREAM: cfg80211: fix management registrations locking
dd78ccadc4 ANDROID: GKI: Update symbol list for VIVO
8c9d9d8e44 FROMGIT: usb: gadget: f_mass_storage: Disable eps during disconnect
cde1d53cc9 FROMGIT: usb: gadget: udc: core: Revise comments for USB ep enable/disable
e35a305d19 UPSTREAM: tracing/cfi: Fix cmp_entries_* functions signature mismatch
335046583c FROMGIT: scsi: ufshpb: Do not report victim error in HCM
e2766208d7 FROMGIT: scsi: ufshpb: Verify that num_inflight_map_req is non-negative
193f33d061 FROMGIT: scsi: ufshpb: Use a correct max multi chunk
d054108519 FROMGIT: scsi: ufshpb: rewind the read timeout on every read
8c2c4d12bb ANDROID: sched: Add vendor hooks for sync_entity_load_avg
2cfefe22b9 ANDROID: GKI: Add symbols to abi_gki_aarch64_oplus

Resolves conflicts in:
	drivers/scsi/hosts.c

Due to api additions in android12-5.10, this also adds more api symbols
to track:

Leaf changes summary: 34 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 28 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 6 Added variables

28 Added functions:

  [A] 'function sk_buff* __hci_cmd_sync(hci_dev*, u16, u32, void*, u32)'
  [A] 'function sk_buff* __hci_cmd_sync_ev(hci_dev*, u16, u32, void*, u8, u32)'
  [A] 'function int __traceiter_android_vh_blk_alloc_rqs(void*, size_t*, blk_mq_tag_set*, blk_mq_tags*)'
  [A] 'function int __traceiter_android_vh_blk_rq_ctx_init(void*, request*, blk_mq_tags*, blk_mq_alloc_data*, u64)'
  [A] 'function int __traceiter_android_vh_mm_dirty_limits(void*, dirty_throttle_control* const, bool, unsigned long int, unsigned long int, unsigned long int, unsigned long int)'
  [A] 'function int __traceiter_android_vh_rproc_recovery_set(void*, rproc*)'
  [A] 'function int bit_wait_timeout(wait_bit_key*, int)'
  [A] 'function int bt_to_errno(__u16)'
  [A] 'function void bt_warn(const char*, ...)'
  [A] 'function int btbcm_set_bdaddr(hci_dev*, const bdaddr_t*)'
  [A] 'function int btbcm_setup_apple(hci_dev*)'
  [A] 'function int btbcm_setup_patchram(hci_dev*)'
  [A] 'function int cgroup_add_legacy_cftypes(cgroup_subsys*, cftype*)'
  [A] 'function void gpiod_put(gpio_desc*)'
  [A] 'function sk_buff* hci_cmd_sync(hci_dev*, u16, u32, void*, u32)'
  [A] 'function int hci_recv_diag(hci_dev*, sk_buff*)'
  [A] 'function int kern_path(const char*, unsigned int, path*)'
  [A] 'function int kstrtos16(const char*, unsigned int, s16*)'
  [A] 'function mem_cgroup* mem_cgroup_from_id(unsigned short int)'
  [A] 'function int out_of_line_wait_on_bit_timeout(void*, int, wait_bit_action_f*, unsigned int, unsigned long int)'
  [A] 'function void path_put(const path*)'
  [A] 'function void unregister_memory_notifier(notifier_block*)'
  [A] 'function int usb_driver_claim_interface(usb_driver*, usb_interface*, void*)'
  [A] 'function void usb_driver_release_interface(usb_driver*, usb_interface*)'
  [A] 'function urb* usb_get_from_anchor(usb_anchor*)'
  [A] 'function void usb_queue_reset_device(usb_interface*)'
  [A] 'function void usb_scuttle_anchored_urbs(usb_anchor*)'
  [A] 'function void wake_up_bit(void*, int)'

6 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_blk_alloc_rqs'
  [A] 'tracepoint __tracepoint_android_vh_blk_rq_ctx_init'
  [A] 'tracepoint __tracepoint_android_vh_mm_dirty_limits'
  [A] 'tracepoint __tracepoint_android_vh_rproc_recovery_set'
  [A] 'cgroup_subsys memory_cgrp_subsys'
  [A] 'static_key_true memory_cgrp_subsys_enabled_key'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id2c3ae3d700bbe5567c0840dc4e2acff9bba246e
2021-11-11 09:51:09 +01:00
zhengding chen
1ba7c99bd3 ANDROID: cpufreq: times: record fast switch frequency transitions
cpufreq_times_record_transition() is not called when fast switch is
enabled, leading /proc/[pid]/time_in_state to attribute all time on a
cluster to a single frequency. To fix this, add a call to
cpufreq_times_record_transition() in the fast switch path.

Test: /proc/[pid]/time_in_state shows times for more than one freq per
cluster

Bug: 204726690
Signed-off-by: zhengding chen <chenzhengding@oppo.com>
Change-Id: Ief47ffb49fcc7fbf5408eea3056930e8791d2820
2021-11-10 22:45:55 +00:00
Steve Muckle
45ebb9628e ANDROID: GKI: add required symbols for btusb to virtual device
Leaf changes summary: 18 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 18 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

18 Added functions:

  [A] 'function sk_buff* __hci_cmd_sync(hci_dev*, u16, u32, void*, u32)'
  [A] 'function sk_buff* __hci_cmd_sync_ev(hci_dev*, u16, u32, void*, u8, u32)'
  [A] 'function int bit_wait_timeout(wait_bit_key*, int)'
  [A] 'function int bt_to_errno(unsigned short int)'
  [A] 'function void bt_warn(const char*, ...)'
  [A] 'function int btbcm_set_bdaddr(hci_dev*, const bdaddr_t*)'
  [A] 'function int btbcm_setup_apple(hci_dev*)'
  [A] 'function int btbcm_setup_patchram(hci_dev*)'
  [A] 'function void gpiod_put(gpio_desc*)'
  [A] 'function sk_buff* hci_cmd_sync(hci_dev*, u16, u32, void*, u32)'
  [A] 'function int hci_recv_diag(hci_dev*, sk_buff*)'
  [A] 'function int out_of_line_wait_on_bit_timeout(void*, int, wait_bit_action_f*, unsigned int, unsigned long int)'
  [A] 'function int usb_driver_claim_interface(usb_driver*, usb_interface*, void*)'
  [A] 'function void usb_driver_release_interface(usb_driver*, usb_interface*)'
  [A] 'function urb* usb_get_from_anchor(usb_anchor*)'
  [A] 'function void usb_queue_reset_device(usb_interface*)'
  [A] 'function void usb_scuttle_anchored_urbs(usb_anchor*)'
  [A] 'function void wake_up_bit(void*, int)'

Bug: 202405948
Signed-off-by: Steve Muckle <smuckle@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I412d3bc46bc343b89f6fc28e55386def69b0d34c
2021-11-10 20:27:07 +00:00
Sangmoon Kim
06d074249f ANDROID: arm64: add vendor hooks for bti and pauth fault
Add hooks to gather data of unusual aborts and summarize it with
other information.

Bug: 203187389

Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: I37b3047e72f64dc210d3d3bffe5ee207daeba8d6
2021-11-10 06:04:24 +00:00
Manaf Meethalavalappu Pallikunhi
129e04dc19 FROMLIST: drivers: thermal: Reset previous low and high trip during thermal zone init
During the suspend is in process, thermal_zone_device_update bails out
thermal zone re-evaluation for any sensor trip violation without
setting next valid trip to that sensor. It assumes during resume
it will re-evaluate same thermal zone and update trip. But when it is
in suspend temperature goes down and on resume path while updating
thermal zone if temperature is less than previously violated trip,
thermal zone set trip function evaluates the same previous high and
previous low trip as new high and low trip. Since there is no change
in high/low trip, it bails out from thermal zone set trip API without
setting any trip. It leads to a case where sensor high trip or low
trip is disabled forever even though thermal zone has a valid high
or low trip.

During thermal zone device init, reset thermal zone previous high
and low trip. It resolves above mentioned scenario.

Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
Reviewed-by: Thara Gopinath <thara.gopinath@linaro.org>

Bug: 205496325
Link: https://lore.kernel.org/linux-pm/51de966a-9c9e-88a8-5c2c-96773a64d527@linaro.org/T/#u
Change-Id: Ib57ac6164811a566b497964701f23a3c209915e3
Signed-off-by: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
2021-11-09 19:12:26 +00:00
Vijayanand Jitta
f72f41f50c UPSTREAM: mm: vmalloc: prevent use after free in _vm_unmap_aliases
A potential use after free can occur in _vm_unmap_aliases where an already
freed vmap_area could be accessed, Consider the following scenario:

Process 1						Process 2

__vm_unmap_aliases					__vm_unmap_aliases
	purge_fragmented_blocks_allcpus				rcu_read_lock()
		rcu_read_lock()
			list_del_rcu(&vb->free_list)
									list_for_each_entry_rcu(vb .. )
	__purge_vmap_area_lazy
		kmem_cache_free(va)
										va_start = vb->va->va_start

Here Process 1 is in purge path and it does list_del_rcu on vmap_block and
later frees the vmap_area, since Process 2 was holding the rcu lock at
this time vmap_block will still be present in and Process 2 accesse it and
thereby it tries to access vmap_area of that vmap_block which was already
freed by Process 1 and this results in use after free.

Fix this by adding a check for vb->dirty before accessing vmap_area
structure since vb->dirty will be set to VMAP_BBMAP_BITS in purge path
checking for this will prevent the use after free.

Link: https://lkml.kernel.org/r/1616062105-23263-1-git-send-email-vjitta@codeaurora.org
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Bug: 205658047
(cherry picked from commit ad216c0316
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git)

Change-Id: I450781b5734570d1b9e8c63ac29ad3635c8e49bb
Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org>
2021-11-09 17:29:42 +00:00
Woogeun Lee
68a3d0062d ANDROID: ABI: update allowed list for galaxy
Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

3 Added functions:

  [A] 'function int kern_path(const char*, unsigned int, path*)'
  [A] 'function int kstrtos16(const char*, unsigned int, s16*)'
  [A] 'function void path_put(const path*)'

Bug: 205492131

Signed-off-by: Woogeun Lee <woogeun.lee@samsung.com>
Change-Id: Ice467d47203335bccb9a3a7006e0ecfb97d01714
2021-11-09 04:44:01 +00:00
Elliot Berman
fb247ebba9 ANDROID: Add android_vh_rproc_recovery_set
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

1 Added function:

  [A] 'function int __traceiter_android_vh_rproc_recovery_set(void*, rproc*)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_rproc_recovery_set'

Bug: 205534894
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Change-Id: Ibd421d3b1b756f3c7f6283e1d697b865ea89b480
2021-11-08 20:26:32 +00:00
Elliot Berman
14eae186e4 ANDROID: rproc: Add vendor hook when setting recovery mode
Add vendor hook when setting recovery mode to notify coprocessor when
mode is changed.

Bug: 205534894
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Change-Id: Ie41170deb0426a7bcfeed8a51cc4e8e1a427592a
2021-11-08 20:26:18 +00:00
Bart Van Assche
56cc81bb39 BACKPORT: FROMLIST: scsi: ufs: Fix a deadlock in the error handler
The following deadlock has been observed on a test setup:
* All tags allocated.
* The SCSI error handler calls ufshcd_eh_host_reset_handler()
* ufshcd_eh_host_reset_handler() queues work that calls ufshcd_err_handler()
* ufshcd_err_handler() locks up as follows:

Workqueue: ufs_eh_wq_0 ufshcd_err_handler.cfi_jt
Call trace:
 __switch_to+0x298/0x5d8
 __schedule+0x6cc/0xa94
 schedule+0x12c/0x298
 blk_mq_get_tag+0x210/0x480
 __blk_mq_alloc_request+0x1c8/0x284
 blk_get_request+0x74/0x134
 ufshcd_exec_dev_cmd+0x68/0x640
 ufshcd_verify_dev_init+0x68/0x35c
 ufshcd_probe_hba+0x12c/0x1cb8
 ufshcd_host_reset_and_restore+0x88/0x254
 ufshcd_reset_and_restore+0xd0/0x354
 ufshcd_err_handler+0x408/0xc58
 process_one_work+0x24c/0x66c
 worker_thread+0x3e8/0xa4c
 kthread+0x150/0x1b4
 ret_from_fork+0x10/0x30

Fix this lockup by making ufshcd_exec_dev_cmd() allocate a reserved
request.

This patch is closely related to the upstream patch with the same title.

Bug: 205080886
Link: https://lore.kernel.org/linux-scsi/700f0463-23a9-8465-f712-1188cb884dea@acm.org/T/#u
Change-Id: I9e9ba3f45ba23ecf576380aa19701d3437af6cdd
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-11-08 10:01:41 -08:00
Bart Van Assche
ff748ee298 BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver
This is a GKI-compatible version of the following patch: "scsi: core:
Add support for reserved tags".

Bug: 205080886
Link: https://lore.kernel.org/linux-scsi/20211103000529.1549411-2-bvanassche@acm.org.
Change-Id: I6273114ae8cc6c2a74c72f7bc090eb0319ec5772
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-11-08 10:01:41 -08:00
Bart Van Assche
94ca15ec92 BACKPORT: FROMLIST: scsi: ufs: Limit the queue depth to host->can_queue
Before reducing 'can_queue' from 32 to 31, make
ufshcd_change_queue_depth() restrict the queue depth to 'can_queue'
instead of hba->nutrs (32). This is a backport of a subset of the
following patch: "[PATCH 2/2] scsi: ufs: Fix a deadlock in the error
handler".

Bug: 205080886
Link: https://lore.kernel.org/linux-scsi/20211103000529.1549411-3-bvanassche@acm.org/
Change-Id: I6e694a9698f91293fc2987217e3f939726c397dd
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-11-08 10:01:41 -08:00
Greg Kroah-Hartman
bb235e8cc2 Merge 5.10.78 into android12-5.10-lts
Changes in 5.10.78
	scsi: core: Put LLD module refcnt after SCSI device is released
	Revert "io_uring: reinforce cancel on flush during exit"
	sfc: Fix reading non-legacy supported link modes
	vrf: Revert "Reset skb conntrack connection..."
	net: ethernet: microchip: lan743x: Fix skb allocation failure
	media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
	Revert "xhci: Set HCD flag to defer primary roothub registration"
	Revert "usb: core: hcd: Add support for deferring roothub registration"
	mm: khugepaged: skip huge page collapse for special files
	Revert "drm/ttm: fix memleak in ttm_transfered_destroy"
	ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
	Revert "wcn36xx: Disable bmps when encryption is disabled"
	ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table
	ALSA: usb-audio: Add Audient iD14 to mixer map quirk table
	Linux 5.10.78

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2ba354907ebc582addc431e28936457b4c3cd967
2021-11-06 14:22:24 +01:00
Greg Kroah-Hartman
5040520482 Linux 5.10.78
Link: https://lore.kernel.org/r/20211104141159.561284732@linuxfoundation.org
Tested-by: Fox Chen <foxhlchen@gmail.com>
Link: https://lore.kernel.org/r/20211104170112.899181800@linuxfoundation.org
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Fox Chen <foxhlchen@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:10 +01:00
Takashi Iwai
4c7c024327 ALSA: usb-audio: Add Audient iD14 to mixer map quirk table
commit df0380b953 upstream.

This is a fix equivalent with the upstream commit df0380b953 ("ALSA:
usb-audio: Add quirk for Audient iD14"), adapted to the earlier
kernels up to 5.14.y.  It adds the quirk entry with the old
ignore_ctl_error flag to the usbmix_ctl_maps, instead.

The original commit description says:
    Audient iD14 (2708:0002) may get a control message error that
    interferes the operation e.g. with alsactl.  Add the quirk to ignore
    such errors like other devices.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:10 +01:00
Takashi Iwai
f3eb44f496 ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table
commit 22390ce786 upstream.

This is a fix equivalent with the upstream commit 22390ce786 ("ALSA:
usb-audio: add Schiit Hel device to quirk table"), adapted to the
earlier kernels up to 5.14.y.  It adds the quirk entry with the old
ignore_ctl_error flag to the usbmix_ctl_maps, instead.

The original patch description says:
    The Shciit Hel device responds to the ctl message for the mic capture
    switch with a timeout of -EPIPE:

            usb 7-2.2: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
            usb 7-2.2: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
            usb 7-2.2: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
            usb 7-2.2: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1

    This seems safe to ignore as the device works properly with the control
    message quirk, so add it to the quirk table so all is good.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Bryan O'Donoghue
68765fc977 Revert "wcn36xx: Disable bmps when encryption is disabled"
commit 285bb1738e upstream.

This reverts commit c6522a5076.

Testing on tip-of-tree shows that this is working now. Revert this and
re-enable BMPS for Open APs.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211022140447.2846248-3-bryan.odonoghue@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Wang Kefeng
f84b791d4c ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
commit eb4f756915 upstream.

After commit 77a7300aba ("of/irq: Get rid of NO_IRQ usage"),
no irq case has been removed, irq_of_parse_and_map() will return
0 in all cases when get error from parse and map an interrupt into
linux virq space.

amba_device_register() is only used on no-DT initialization, see
  s3c64xx_pl080_init()		arch/arm/mach-s3c/pl080.c
  ep93xx_init_devices()		arch/arm/mach-ep93xx/core.c

They won't set -1 to irq[0], so no need the warn.

This reverts commit 2eac58d502.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Greg Kroah-Hartman
bbc920fb32 Revert "drm/ttm: fix memleak in ttm_transfered_destroy"
This reverts commit c21b400221 which is
commit 0db55f9a1b upstream.

Seems that the older kernels can not handle this fix because, to quote
Christian:
	The problem is this memory leak could potentially happen with
	5.10 as wel, just much much much less likely.

	But my guess is that 5.10 is so buggy that when the leak does
	NOT happen we double free and obviously causing a crash.

So it needs to be reverted.

Link: https://lore.kernel.org/r/1a1cc125-9314-f569-a6c4-40fc4509a377@amd.com
Cc: Christian König <christian.koenig@amd.com>
Cc: Erhard F. <erhard_f@mailbox.org>
Cc: Erhard F. <erhard_f@mailbox.org>
Cc: Huang Rui <ray.huang@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Yang Shi
6d67b2a73b mm: khugepaged: skip huge page collapse for special files
commit a4aeaa06d4 upstream.

The read-only THP for filesystems will collapse THP for files opened
readonly and mapped with VM_EXEC.  The intended usecase is to avoid TLB
misses for large text segments.  But it doesn't restrict the file types
so a THP could be collapsed for a non-regular file, for example, block
device, if it is opened readonly and mapped with EXEC permission.  This
may cause bugs, like [1] and [2].

This is definitely not the intended usecase, so just collapse THP for
regular files in order to close the attack surface.

[shy828301@gmail.com: fix vm_file check [3]]

Link: https://lore.kernel.org/lkml/CACkBjsYwLYLRmX8GpsDpMthagWOjWWrNxqY6ZLNQVr6yx+f5vA@mail.gmail.com/ [1]
Link: https://lore.kernel.org/linux-mm/000000000000c6a82505ce284e4c@google.com/ [2]
Link: https://lkml.kernel.org/r/CAHbLzkqTW9U3VvTu1Ki5v_cLRC9gHW+znBukg_ycergE0JWj-A@mail.gmail.com [3]
Link: https://lkml.kernel.org/r/20211027195221.3825-1-shy828301@gmail.com
Fixes: 99cb0dbd47 ("mm,thp: add read-only THP support for (non-shmem) FS")
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Yang Shi <shy828301@gmail.com>
Reported-by: Hao Sun <sunhao.th@gmail.com>
Reported-by: syzbot+aae069be1de40fb11825@syzkaller.appspotmail.com
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Song Liu <songliubraving@fb.com>
Cc: Andrea Righi <andrea.righi@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Greg Kroah-Hartman
5a7957491e Revert "usb: core: hcd: Add support for deferring roothub registration"
This reverts commit d58fc9e9c1 which is
commit 58877b0824 upstream.

It has been reported to be causing problems in Arch and Fedora bug
reports.

Reported-by: Hans de Goede <hdegoede@redhat.com>
Link: https://bbs.archlinux.org/viewtopic.php?pid=2000956#p2000956
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019542
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019576
Link: https://lore.kernel.org/r/42bcbea6-5eb8-16c7-336a-2cb72e71bc36@redhat.com
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Chris Chiu <chris.chiu@canonical.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Greg Kroah-Hartman
50f46bd309 Revert "xhci: Set HCD flag to defer primary roothub registration"
This reverts commit 0ea9ac731a which is
commit b7a0a792f8 upstream.

It has been reported to be causing problems in Arch and Fedora bug
reports.

Reported-by: Hans de Goede <hdegoede@redhat.com>
Link: https://bbs.archlinux.org/viewtopic.php?pid=2000956#p2000956
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019542
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019576
Link: https://lore.kernel.org/r/42bcbea6-5eb8-16c7-336a-2cb72e71bc36@redhat.com
Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Chris Chiu <chris.chiu@canonical.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Dan Carpenter
d7fc85f610 media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
commit 35d2969ea3 upstream.

The bounds checking in avc_ca_pmt() is not strict enough.  It should
be checking "read_pos + 4" because it's reading 5 bytes.  If the
"es_info_length" is non-zero then it reads a 6th byte so there needs to
be an additional check for that.

I also added checks for the "write_pos".  I don't think these are
required because "read_pos" and "write_pos" are tied together so
checking one ought to be enough.  But they make the code easier to
understand for me.  The check on write_pos is:

	if (write_pos + 4 >= sizeof(c->operand) - 4) {

The first "+ 4" is because we're writing 5 bytes and the last " - 4"
is to leave space for the CRC.

The other problem is that "length" can be invalid.  It comes from
"data_length" in fdtv_ca_pmt().

Cc: stable@vger.kernel.org
Reported-by: Luo Likang <luolikang@nsfocus.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Yuiko Oshino
b93a70bf2b net: ethernet: microchip: lan743x: Fix skb allocation failure
commit e8684db191 upstream.

The driver allocates skb during ndo_open with GFP_ATOMIC which has high chance of failure when there are multiple instances.
GFP_KERNEL is enough while open and use GFP_ATOMIC only from interrupt context.

Fixes: 23f0703c12 ("lan743x: Add main source files for new lan743x driver")
Signed-off-by: Yuiko Oshino <yuiko.oshino@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Eugene Crosser
b9c85a71e1 vrf: Revert "Reset skb conntrack connection..."
commit 55161e67d4 upstream.

This reverts commit 09e856d54b.

When an interface is enslaved in a VRF, prerouting conntrack hook is
called twice: once in the context of the original input interface, and
once in the context of the VRF interface. If no special precausions are
taken, this leads to creation of two conntrack entries instead of one,
and breaks SNAT.

Commit above was intended to avoid creation of extra conntrack entries
when input interface is enslaved in a VRF. It did so by resetting
conntrack related data associated with the skb when it enters VRF context.

However it breaks netfilter operation. Imagine a use case when conntrack
zone must be assigned based on the original input interface, rather than
VRF interface (that would make original interfaces indistinguishable). One
could create netfilter rules similar to these:

        chain rawprerouting {
                type filter hook prerouting priority raw;
                iif realiface1 ct zone set 1 return
                iif realiface2 ct zone set 2 return
        }

This works before the mentioned commit, but not after: zone assignment
is "forgotten", and any subsequent NAT or filtering that is dependent
on the conntrack zone does not work.

Here is a reproducer script that demonstrates the difference in behaviour.

==========
#!/bin/sh

# This script demonstrates unexpected change of nftables behaviour
# caused by commit 09e856d54b ""vrf: Reset skb conntrack
# connection on VRF rcv"
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=09e856d54bda5f288ef8437a90ab2b9b3eab83d1
#
# Before the commit, it was possible to assign conntrack zone to a
# packet (or mark it for `notracking`) in the prerouting chanin, raw
# priority, based on the `iif` (interface from which the packet
# arrived).
# After the change, # if the interface is enslaved in a VRF, such
# assignment is lost. Instead, assignment based on the `iif` matching
# the VRF master interface is honored. Thus it is impossible to
# distinguish packets based on the original interface.
#
# This script demonstrates this change of behaviour: conntrack zone 1
# or 2 is assigned depending on the match with the original interface
# or the vrf master interface. It can be observed that conntrack entry
# appears in different zone in the kernel versions before and after
# the commit.

IPIN=172.30.30.1
IPOUT=172.30.30.2
PFXL=30

ip li sh vein >/dev/null 2>&1 && ip li del vein
ip li sh tvrf >/dev/null 2>&1 && ip li del tvrf
nft list table testct >/dev/null 2>&1 && nft delete table testct

ip li add vein type veth peer veout
ip li add tvrf type vrf table 9876
ip li set veout master tvrf
ip li set vein up
ip li set veout up
ip li set tvrf up
/sbin/sysctl -w net.ipv4.conf.veout.accept_local=1
/sbin/sysctl -w net.ipv4.conf.veout.rp_filter=0
ip addr add $IPIN/$PFXL dev vein
ip addr add $IPOUT/$PFXL dev veout

nft -f - <<__END__
table testct {
	chain rawpre {
		type filter hook prerouting priority raw;
		iif { veout, tvrf } meta nftrace set 1
		iif veout ct zone set 1 return
		iif tvrf ct zone set 2 return
		notrack
	}
	chain rawout {
		type filter hook output priority raw;
		notrack
	}
}
__END__

uname -rv
conntrack -F
ping -W 1 -c 1 -I vein $IPOUT
conntrack -L

Signed-off-by: Eugene Crosser <crosser@average.org>
Acked-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Florian Westphal <fw@strlen.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:09 +01:00
Erik Ekman
0382fdf9ae sfc: Fix reading non-legacy supported link modes
commit 041c614882 upstream.

Everything except the first 32 bits was lost when the pause flags were
added. This makes the 50000baseCR2 mode flag (bit 34) not appear.

I have tested this with a 10G card (SFN5122F-R7) by modifying it to
return a non-legacy link mode (10000baseCR).

Signed-off-by: Erik Ekman <erik@kryo.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:08 +01:00
Lee Jones
748786564a Revert "io_uring: reinforce cancel on flush during exit"
This reverts commit 88dbd085a5.

Causes the following Syzkaller reported issue:

BUG: kernel NULL pointer dereference, address: 0000000000000010
PGD 0 P4D 0
Oops: 0002 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 546 Comm: syz-executor631 Tainted: G    B             5.10.76-syzkaller-01178-g4944ec82ebb9 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:arch_atomic_try_cmpxchg syzkaller/managers/android-5-10/kernel/./arch/x86/include/asm/atomic.h:202 [inline]
RIP: 0010:atomic_try_cmpxchg_acquire syzkaller/managers/android-5-10/kernel/./include/asm-generic/atomic-instrumented.h:707 [inline]
RIP: 0010:queued_spin_lock syzkaller/managers/android-5-10/kernel/./include/asm-generic/qspinlock.h:82 [inline]
RIP: 0010:do_raw_spin_lock_flags syzkaller/managers/android-5-10/kernel/./include/linux/spinlock.h:195 [inline]
RIP: 0010:__raw_spin_lock_irqsave syzkaller/managers/android-5-10/kernel/./include/linux/spinlock_api_smp.h:119 [inline]
RIP: 0010:_raw_spin_lock_irqsave+0x10d/0x210 syzkaller/managers/android-5-10/kernel/kernel/locking/spinlock.c:159
Code: 00 00 00 e8 d5 29 09 fd 4c 89 e7 be 04 00 00 00 e8 c8 29 09 fd 42 8a 04 3b 84 c0 0f 85 be 00 00 00 8b 44 24 40 b9 01 00 00 00 <f0> 41 0f b1 4d 00 75 45 48 c7 44 24 20 0e 36 e0 45 4b c7 04 37 00
RSP: 0018:ffffc90000f174e0 EFLAGS: 00010097
RAX: 0000000000000000 RBX: 1ffff920001e2ea4 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffc90000f17520
RBP: ffffc90000f175b0 R08: dffffc0000000000 R09: 0000000000000003
R10: fffff520001e2ea5 R11: 0000000000000004 R12: ffffc90000f17520
R13: 0000000000000010 R14: 1ffff920001e2ea0 R15: dffffc0000000000
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000010 CR3: 000000000640f000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 prepare_to_wait+0x9c/0x290 syzkaller/managers/android-5-10/kernel/kernel/sched/wait.c:248
 io_uring_cancel_files syzkaller/managers/android-5-10/kernel/fs/io_uring.c:8690 [inline]
 io_uring_cancel_task_requests+0x16a9/0x1ed0 syzkaller/managers/android-5-10/kernel/fs/io_uring.c:8760
 io_uring_flush+0x170/0x6d0 syzkaller/managers/android-5-10/kernel/fs/io_uring.c:8923
 filp_close+0xb0/0x150 syzkaller/managers/android-5-10/kernel/fs/open.c:1319
 close_files syzkaller/managers/android-5-10/kernel/fs/file.c:401 [inline]
 put_files_struct+0x1d4/0x350 syzkaller/managers/android-5-10/kernel/fs/file.c:429
 exit_files+0x80/0xa0 syzkaller/managers/android-5-10/kernel/fs/file.c:458
 do_exit+0x6d9/0x23a0 syzkaller/managers/android-5-10/kernel/kernel/exit.c:808
 do_group_exit+0x16a/0x2d0 syzkaller/managers/android-5-10/kernel/kernel/exit.c:910
 get_signal+0x133e/0x1f80 syzkaller/managers/android-5-10/kernel/kernel/signal.c:2790
 arch_do_signal+0x8d/0x620 syzkaller/managers/android-5-10/kernel/arch/x86/kernel/signal.c:805
 exit_to_user_mode_loop syzkaller/managers/android-5-10/kernel/kernel/entry/common.c:161 [inline]
 exit_to_user_mode_prepare+0xaa/0xe0 syzkaller/managers/android-5-10/kernel/kernel/entry/common.c:191
 syscall_exit_to_user_mode+0x24/0x40 syzkaller/managers/android-5-10/kernel/kernel/entry/common.c:266
 do_syscall_64+0x3d/0x70 syzkaller/managers/android-5-10/kernel/arch/x86/entry/common.c:56
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x7fc6d1589a89
Code: Unable to access opcode bytes at RIP 0x7fc6d1589a5f.
RSP: 002b:00007ffd2b5da728 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffdfc RBX: 0000000000005193 RCX: 00007fc6d1589a89
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fc6d161142c
RBP: 0000000000000032 R08: 00007ffd2b5eb0b8 R09: 0000000000000000
R10: 00007ffd2b5da750 R11: 0000000000000246 R12: 00007fc6d161142c
R13: 00007ffd2b5da750 R14: 00007ffd2b5da770 R15: 0000000000000000
Modules linked in:
CR2: 0000000000000010
---[ end trace fe8044f7dc4d8d65 ]---
RIP: 0010:arch_atomic_try_cmpxchg syzkaller/managers/android-5-10/kernel/./arch/x86/include/asm/atomic.h:202 [inline]
RIP: 0010:atomic_try_cmpxchg_acquire syzkaller/managers/android-5-10/kernel/./include/asm-generic/atomic-instrumented.h:707 [inline]
RIP: 0010:queued_spin_lock syzkaller/managers/android-5-10/kernel/./include/asm-generic/qspinlock.h:82 [inline]
RIP: 0010:do_raw_spin_lock_flags syzkaller/managers/android-5-10/kernel/./include/linux/spinlock.h:195 [inline]
RIP: 0010:__raw_spin_lock_irqsave syzkaller/managers/android-5-10/kernel/./include/linux/spinlock_api_smp.h:119 [inline]
RIP: 0010:_raw_spin_lock_irqsave+0x10d/0x210 syzkaller/managers/android-5-10/kernel/kernel/locking/spinlock.c:159
Code: 00 00 00 e8 d5 29 09 fd 4c 89 e7 be 04 00 00 00 e8 c8 29 09 fd 42 8a 04 3b 84 c0 0f 85 be 00 00 00 8b 44 24 40 b9 01 00 00 00 <f0> 41 0f b1 4d 00 75 45 48 c7 44 24 20 0e 36 e0 45 4b c7 04 37 00
RSP: 0018:ffffc90000f174e0 EFLAGS: 00010097
RAX: 0000000000000000 RBX: 1ffff920001e2ea4 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffc90000f17520
RBP: ffffc90000f175b0 R08: dffffc0000000000 R09: 0000000000000003
R10: fffff520001e2ea5 R11: 0000000000000004 R12: ffffc90000f17520
R13: 0000000000000010 R14: 1ffff920001e2ea0 R15: dffffc0000000000
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000010 CR3: 000000000640f000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess), 1 bytes skipped:
   0:	00 00                	add    %al,(%rax)
   2:	e8 d5 29 09 fd       	callq  0xfd0929dc
   7:	4c 89 e7             	mov    %r12,%rdi
   a:	be 04 00 00 00       	mov    $0x4,%esi
   f:	e8 c8 29 09 fd       	callq  0xfd0929dc
  14:	42 8a 04 3b          	mov    (%rbx,%r15,1),%al
  18:	84 c0                	test   %al,%al
  1a:	0f 85 be 00 00 00    	jne    0xde
  20:	8b 44 24 40          	mov    0x40(%rsp),%eax
  24:	b9 01 00 00 00       	mov    $0x1,%ecx
* 29:	f0 41 0f b1 4d 00    	lock cmpxchg %ecx,0x0(%r13) <-- trapping instruction
  2f:	75 45                	jne    0x76
  31:	48 c7 44 24 20 0e 36 	movq   $0x45e0360e,0x20(%rsp)
  38:	e0 45
  3a:	4b                   	rex.WXB
  3b:	c7                   	.byte 0xc7
  3c:	04 37                	add    $0x37,%al

Link: https://syzkaller.appspot.com/bug?extid=b0003676644cf0d6acc4
Reported-by: syzbot+b0003676644cf0d6acc4@syzkaller.appspotmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:08 +01:00
Ming Lei
7b57c38d12 scsi: core: Put LLD module refcnt after SCSI device is released
commit f2b85040ac upstream.

SCSI host release is triggered when SCSI device is freed. We have to make
sure that the low-level device driver module won't be unloaded before SCSI
host instance is released because shost->hostt is required in the release
handler.

Make sure to put LLD module refcnt after SCSI device is released.

Fixes a kernel panic of 'BUG: unable to handle page fault for address'
reported by Changhui and Yi.

Link: https://lore.kernel.org/r/20211008050118.1440686-1-ming.lei@redhat.com
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reported-by: Changhui Zhong <czhong@redhat.com>
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-06 14:10:08 +01:00
Greg Kroah-Hartman
5b87b8d669 ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"
Commit 4c22227e39 ("cfg80211: fix management registrations locking")
in 5.10.77, which is commit 09b1d5dc6c ("cfg80211: fix management
registrations locking") upstream, moved the mgmt_registrations_lock out
of struct wireless_dev.  This did not change the structure size, but
caused a CRC change in the structure pointer, which tripped the abi
checker.

So restore the variable, and comment that this is not used anymore.  No
driver should ever be touching this so it is safe.

Note, using a __GENKSYMS__ hack would work, as the overall structure
size remains the same when this variable is removed, BUT the warning
that the field is gone is reported by libabigail correctly, which would
require a .xml update, so it's not worth it.

Bug: 161946584
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibcfe743833860e6f75611d7ebed1036a77be0a69
2021-11-06 12:02:55 +00:00
Johannes Berg
a7d87a08b4 UPSTREAM: cfg80211: fix management registrations locking
The management registrations locking was broken, the list was
locked for each wdev, but cfg80211_mgmt_registrations_update()
iterated it without holding all the correct spinlocks, causing
list corruption.

Rather than trying to fix it with fine-grained locking, just
move the lock to the wiphy/rdev (still need the list on each
wdev), we already need to hold the wdev lock to change it, so
there's no contention on the lock in any case. This trivially
fixes the bug since we hold one wdev's lock already, and now
will hold the lock that protects all lists.

Cc: stable@vger.kernel.org
Reported-by: Jouni Malinen <j@w1.fi>
Fixes: 6cd536fe62 ("cfg80211: change internal management frame registration API")
Link: https://lore.kernel.org/r/20211025133111.5cf733eab0f4.I7b0abb0494ab712f74e2efcd24bb31ac33f7eee9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 204384349
(cherry picked from commit 09b1d5dc6c)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id1bca68277be3a5f7c7329a8195018946f686bdb
2021-11-06 12:02:45 +00:00
Yang Yang
dd78ccadc4 ANDROID: GKI: Update symbol list for VIVO
Leaf changes summary: 6 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 3 Added variables

3 Added functions:

  [A] 'function int __traceiter_android_vh_blk_alloc_rqs(void*, size_t*, blk_mq_tag_set*, blk_mq_tags*)'
  [A] 'function int __traceiter_android_vh_blk_rq_ctx_init(void*, request*, blk_mq_tags*, blk_mq_alloc_data*, u64)'
  [A] 'function int __traceiter_android_vh_mm_dirty_limits(void*, dirty_throttle_control* const, bool, unsigned long int, unsigned long int, unsigned long int, unsigned long int)'

3 Added variables:

  [A] 'tracepoint __tracepoint_android_vh_blk_alloc_rqs'
  [A] 'tracepoint __tracepoint_android_vh_blk_rq_ctx_init'
  [A] 'tracepoint __tracepoint_android_vh_mm_dirty_limits'

Bug: 205166460
Change-Id: Iec948f354fe142576525a2f35769077d8c63788d
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-11-05 07:28:04 +00:00
Wesley Cheng
8c9d9d8e44 FROMGIT: usb: gadget: f_mass_storage: Disable eps during disconnect
When receiving a disconnect event from the UDC, the mass storage
function driver currently runs the handle_exception() routine
asynchronously.  For UDCs that support runtime PM, there is a
possibility the UDC is already suspended by the time the
do_set_interface() is executed.  This can lead to HW register access
while the UDC is already suspended.

Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>

Bug: 204343836
(cherry picked from commit 9fff139aeb
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing)
Change-Id: I6c8011baddf02d6b0eadb5934416bc24b8a93f4a
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2021-11-04 22:42:04 +00:00
Wesley Cheng
cde1d53cc9 FROMGIT: usb: gadget: udc: core: Revise comments for USB ep enable/disable
The usb_ep_disable() and usb_ep_enable() routines are being widely
used in atomic/interrupt context by function drivers.  Hence, the
statement about it being able to only run in process context may
not be true.  Add an explicit comment mentioning that it can be used
in atomic context.

Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>

Bug: 204343836
(cherry picked from commit b0d5d2a716
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing)
Change-Id: I1adb5d074fe2f9e33ebfdb30d335283c56bc7b39
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
2021-11-04 22:41:52 +00:00
Kalesh Singh
e35a305d19 UPSTREAM: tracing/cfi: Fix cmp_entries_* functions signature mismatch
If CONFIG_CFI_CLANG=y, attempting to read an event histogram will cause
the kernel to panic due to failed CFI check.

    1. echo 'hist:keys=common_pid' >> events/sched/sched_switch/trigger
    2. cat events/sched/sched_switch/hist
    3. kernel panics on attempting to read hist

This happens because the sort() function expects a generic
int (*)(const void *, const void *) pointer for the compare function.
To prevent this CFI failure, change tracing map cmp_entries_* function
signatures to match this.

Also, fix the build error reported by the kernel test robot [1].

[1] https://lore.kernel.org/r/202110141140.zzi4dRh4-lkp@intel.com/

Link: https://lkml.kernel.org/r/20211014045217.3265162-1-kaleshsingh@google.com

Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

Bug: 204946901
(cherry picked from commit 7ce1bb83a1)
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Change-Id: I4a1a39b086b5e306ddecabd9a6076e2fb14c3f70
2021-11-04 21:10:25 +00:00
Avri Altman
335046583c FROMGIT: scsi: ufshpb: Do not report victim error in HCM
In host control mode, eviction is precieved as an extreme measure.
There are several conditions that both the entering and exiting regions
should meet, so that eviction will take place.

The common case however, is that those conditions are rarely met, so it
is normal that the act of eviction fails.  Therefore, Do not report an
error in host control mode if eviction fails.

Link: https://lore.kernel.org/r/20210808090024.21721-5-avri.altman@wdc.com
Fixes: 6c59cb501b (scsi: ufs: ufshpb: Make eviction depend on region's reads)
(cherry picked from commit 10163cee1f
git: //git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next)
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: Id6aa444ea5e2efd15c507bbd586c421018c75998
2021-11-04 20:28:57 +00:00
Avri Altman
e2766208d7 FROMGIT: scsi: ufshpb: Verify that num_inflight_map_req is non-negative
num_inflight_map_req should not be negative.  It is incremented and
decremented without any protection, allowing it theoretically to be
negative, should some weird unbalanced count occur.

Verify that the those calls are properly serielized.

Link: https://lore.kernel.org/r/20210808090024.21721-4-avri.altman@wdc.com
Fixes: 33845a2d84 (scsi: ufs: ufshpb: Limit the number of in-flight map requests)
(cherry picked from commit 22aede9f48
git: //git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next)
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I8a8252c919e6678752b60bcd950cb08e765e6aed
2021-11-04 20:28:51 +00:00
Avri Altman
193f33d061 FROMGIT: scsi: ufshpb: Use a correct max multi chunk
In HPB2.0, if pre_req_min_tr_len < transfer_len < pre_req_max_tr_len
the driver is expected to send a HPB-WRITE-BUFFER companion to HPB-READ.

The upper bound should fit into a single byte, regardless of
bMAX_ DATA_SIZE_FOR_HPB_SINGLE_CMD which being an attribute (u32) can
be significantly larger.

To further illustrate the issue let us consider the following scenario:
 - SCSI_DEFAULT_MAX_SECTORS is 1024 limiting the IO chunks to 512KB
 - The OEM changes scsi_host_template .max_sectors to be 2048, which
   allows a 1M requests: transfer_len = 256
 - pre_req_max_tr_len = HPB_MULTI_CHUNK_HIGH = 256
 - ufshpb_is_supported_chunk returns true (256 <= 256)
 - WARN_ON_ONCE(transfer_len > HPB_MULTI_CHUNK_HIGH) doesn't warn
 - ufshpb_set_hpb_read_to_upiu cast transfer_len to u8: transfer_len = 0
 - the command is failing with illegal request

Link: https://lore.kernel.org/r/20210808090024.21721-3-avri.altman@wdc.com
Fixes: 41d8a9333c (scsi: ufs: ufshpb: Add HPB 2.0 support)
(cherry picked from commit 07106f86ae
git: //git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next)
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: I0dc568020a0fe6c4ddf6952f89ad5230770fd7f3
2021-11-04 20:28:46 +00:00
Avri Altman
d054108519 FROMGIT: scsi: ufshpb: rewind the read timeout on every read
The "cold"-timer purpose is not to hang-on to active regions with no
reads.  Therefore the read-timeout should be re-wind on every read, and
not just when the region is activated.

Link: https://lore.kernel.org/r/20210808090024.21721-2-avri.altman@wdc.com
Fixes: 13c044e916 (scsi: ufs: ufshpb: Add "cold" regions timer)
(cherry picked from commit 283e61c5a9
git: //git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next)
Signed-off-by: Avri Altman <avri.altman@wdc.com>
Change-Id: If174a161028cf2382538d69e30181cda979a12de
2021-11-04 20:28:41 +00:00
JianMin Liu
8c2c4d12bb ANDROID: sched: Add vendor hooks for sync_entity_load_avg
Add vendor hooks to monitor more update load-avg point
where tasks on the run-queue will go through.

Bug: 204857484

Signed-off-by: JianMin Liu <jian-min.liu@mediatek.com>
Change-Id: I440d7b9686a37508bd7568454472ab014ba0d0c9
2021-11-04 18:49:18 +00:00
Liujie Xie
2cfefe22b9 ANDROID: GKI: Add symbols to abi_gki_aarch64_oplus
Add some file nodes to control and tune the memcg status in the memory
cgroup, need add some symbols to abi_gki_aarch64_oplus.

Leaf changes summary: 5 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 2 Added variables

3 Added functions:

  [A] 'function int cgroup_add_legacy_cftypes(cgroup_subsys*, cftype*)'
  [A] 'function mem_cgroup* mem_cgroup_from_id(unsigned short int)'
  [A] 'function void unregister_memory_notifier(notifier_block*)'

2 Added variables:

  [A] 'cgroup_subsys memory_cgrp_subsys'
  [A] 'static_key_true memory_cgrp_subsys_enabled_key'

Bug: 204860045
Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: I69805dcdfbe363c13031ae0a9556761b71a67428
2021-11-04 16:48:18 +00:00
Greg Kroah-Hartman
a7c8ce8460 Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:

29af14b086 ANDROID: GKI: Update symbols to symbol list
8d7f609cda ANDROID: fips140: add name and version, and a function to retrieve them
64d769e53f ANDROID: fips140: add service indicators
b9066e59a5 ANDROID: GKI: Update symbols to symbol list
1eae8229b7 ANDROID: GKI: Update symbols to symbol list
aee113fcef ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
9cafb6afaa ANDROID: GKI: Update symbols to symbol list
6ad609468d ANDROID: Fix mmu_notifier imbalance
62f22f5c05 ANDROID: ABI: Update symbol list for IMX
f5284c5c9c ANDROID: Update symbol list for mtk
8a30a2cadd ANDROID: GKI: update virtual device symbol list
cf721d6c46 ANDROID: ABI: add new symbols required by fips140.ko
482b0323cf ANDROID: fips140: zeroize temporary values from integrity check
ecf9341134 ANDROID: fips140: remove in-place updating of live algorithms
e45108ecff ANDROID: fips140: block crypto operations until tests complete
6b995f5a54 ANDROID: fips140: preserve RELA sections without relying on the module loader
e8d56bd78b ANDROID: module: apply special LTO treatment to .text even if CFI is disabled
52b70d491b ANDROID: fips140: use FIPS140_CFLAGS when compiling fips140-selftests.c
e5b14396f9 ANDROID: fips140: take into account AES-GCM not being approvable
960ebb2b56 ANDROID: fips140: add jitterentropy to fips140 module
2ee56aad31 ANDROID: fips140: add AES-CMAC
2b5843ae2d ANDROID: fips140: add AES-CBC-CTS
1be58af077 ANDROID: fips140: remove non-prediction-resistant DRBG test
17ccefe140 ANDROID: fips140: use full 16-byte IV
b397a0387c ANDROID: fips140: test all implementations
82c940e0e1 ANDROID: Update symbol list for mtk
8d68a30fe1 ANDROID: ASoC: soc-pcm: Get all BEs along DAPM path
ea440234c7 ANDROID: GKI: refresh XML following ANDROID_KABI_USE change
f8b361d17d ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE()
ad8da78c87 UPSTREAM: sched/scs: Reset the shadow stack when idle_task_exit
74782dd0ce ANDROID: cpuhp/pause: add function define if not define CONFIG_CPUSETS
75a5637ccf ANDROID: GKI: Add a symbol to vendor symbol list
1c0e68339c ANDROID: f2fs: fix potential deadlock by android ftrace
8d5dd0a5a4 ANDROID: gki_defconfig: enable CONFIG_USB_CONFIGFS_F_UVC
d4091df63c ANDROID: GKI: Update symbols list for vivo
a451a6c447 ANDROID: GKI: Add missing symbol list whitespace
a32d8ee384 Revert "ANDROID: mpam: add vendor hook to record MPAM"
2ccbb92f7f ANDROID: userfaultfd: Fix merge resolution: validate_range()
09bd9e940e ANDROID: cpuhp/pause: schedule cpu_hotplug_work on resume cpu
2a813b466b ANDROID: GKI: Update symbols to abi_gki_aarch64_oplus
a8c611fa24 ANDROID: GKI: Update symbols list for vivo
16493a3c87 Revert "BACKPORT: ASoC: soc-pcm: Get all BEs along DAPM path"
a84e45d3c3 FROMGIT: usb: dwc3: gadget: Skip resizing EP's TX FIFO if already resized
168de6b1d9 FROMGIT: usb: dwc3: gadget: Change to dev_dbg() when queuing to inactive gadget/ep
6cb41901ea ANDROID: ABI: update allowed list for galaxy
48e5c07fe0 ANDROID: dma_heap: add dma_parms for uncached heap
a0345d4590 ANDROID: GKI: rockchip: Enable symbols for pinctrl and rk8xx
8e9111c2b2 ANDROID: GKI: rockchip: Enable symbols for typec
28edc30761 ANDROID: GKI: rockchip: Add build script
9329ddc34d ANDROID: GKI: Add some symbols to symbol list to support vendor module
bd4a84253c UPSTREAM:  core: Add L2P entry swap quirk for Micron UFS
44b339535e ANDROID: gki_defconfig: remove CONFIG_UBSAN_MISC entry
71f70987f9 UPSTREAM: ubsan: remove overflow checks
65a04c1a8e UPSTREAM: ubsan: disable unsigned-overflow check for i386
7611578ecb UPSTREAM: ubsan: expand tests and reporting
fca16257ca UPSTREAM: ubsan: remove UBSAN_MISC in favor of individual options
c2985e13dd UPSTREAM: ubsan: enable for all*config builds
5eb5780afe UPSTREAM: ubsan: disable UBSAN_TRAP for all*config
c108d79a12 UPSTREAM: ubsan: disable object-size sanitizer under GCC
9ecd3c915d UPSTREAM: ubsan: move cc-option tests into Kconfig
70e365831f UPSTREAM: ubsan: remove redundant -Wno-maybe-uninitialized
45b1eb7115 UPSTREAM: mm/mremap: fix BUILD_BUG_ON() error in get_extent

Due to api additions in android12-5.10, this also adds more api symbols
to track:

Leaf changes summary: 75 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 53 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 22 Added variables

53 Added functions:

  [A] 'function __sum16 __skb_checksum_complete(sk_buff*)'
  [A] 'function int __traceiter_android_vh_cpu_up(void*, unsigned int)'
  [A] 'function int __traceiter_android_vh_cpufreq_acct_update_power(void*, u64, task_struct*, unsigned int)'
  [A] 'function int __traceiter_android_vh_filemap_fault_cache_page(void*, vm_fault*, page*)'
  [A] 'function int __traceiter_android_vh_filemap_fault_get_page(void*, vm_fault*, page**, bool*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_alloc(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_css_offline(void*, cgroup_subsys_state*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_css_online(void*, cgroup_subsys_state*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_free(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mem_cgroup_id_remove(void*, mem_cgroup*)'
  [A] 'function int __traceiter_android_vh_mmap_region(void*, vm_area_struct*, unsigned long int)'
  [A] 'function int __traceiter_android_vh_scmi_timeout_sync(void*, int*)'
  [A] 'function int __traceiter_android_vh_shrink_slab_bypass(void*, gfp_t, int, mem_cgroup*, int, bool*)'
  [A] 'function int __traceiter_android_vh_snd_soc_card_get_comp_chain(void*, bool*)'
  [A] 'function int __traceiter_android_vh_try_to_unmap_one(void*, vm_area_struct*, page*, unsigned long int, bool)'
  [A] 'function int __traceiter_sched_stat_sleep(void*, task_struct*, u64)'
  [A] 'function int __traceiter_sched_waking(void*, task_struct*)'
  [A] 'function int __typec_altmode_register_driver(typec_altmode_driver*, module*)'
  [A] 'function int ahash_register_instance(crypto_template*, ahash_instance*)'
  [A] 'function int blkcg_activate_policy(request_queue*, const blkcg_policy*)'
  [A] 'function void blkcg_deactivate_policy(request_queue*, const blkcg_policy*)'
  [A] 'function int blkcg_policy_register(blkcg_policy*)'
  [A] 'function void blkcg_policy_unregister(blkcg_policy*)'
  [A] 'function blkcg_gq* blkg_lookup_slowpath(blkcg*, request_queue*, bool)'
  [A] 'function int crypto_grab_spawn(crypto_spawn*, crypto_instance*, const char*, u32, u32)'
  [A] 'function int crypto_register_aeads(aead_alg*, int)'
  [A] 'function int crypto_register_ahashes(ahash_alg*, int)'
  [A] 'function int crypto_register_rng(rng_alg*)'
  [A] 'function crypto_tfm* crypto_spawn_tfm(crypto_spawn*, u32, u32)'
  [A] 'function void crypto_unregister_rng(rng_alg*)'
  [A] 'function cgroup_subsys_state* css_next_descendant_pre(cgroup_subsys_state*, cgroup_subsys_state*)'
  [A] 'function int dump_align(coredump_params*, int)'
  [A] 'function int dump_emit(coredump_params*, void*, int)'
  [A] 'function fwnode_handle* fwnode_create_software_node(const property_entry*, const fwnode_handle*)'
  [A] 'function int ip6_local_out(net*, sock*, sk_buff*)'
  [A] 'function int ip6_route_me_harder(net*, sock*, sk_buff*)'
  [A] 'function int ip_local_out(net*, sock*, sk_buff*)'
  [A] 'function cgroup_subsys_state* kthread_blkcg()'
  [A] 'function void nf_ct_attach(sk_buff*, const sk_buff*)'
  [A] 'function cgroup_subsys_state* of_css(kernfs_open_file*)'
  [A] 'function pinctrl_gpio_range* pinctrl_find_gpio_range_from_pin(pinctrl_dev*, unsigned int)'
  [A] 'function void skb_dump(const char*, const sk_buff*, bool)'
  [A] 'function int spi_write_then_read(spi_device*, void*, unsigned int, void*, unsigned int)'
  [A] 'function tcpm_port* tcpm_register_port(device*, tcpc_dev*)'
  [A] 'function void tcpm_unregister_port(tcpm_port*)'
  [A] 'function typec_port* typec_altmode2port(typec_altmode*)'
  [A] 'function int typec_altmode_enter(typec_altmode*, u32*)'
  [A] 'function int typec_altmode_exit(typec_altmode*)'
  [A] 'function int typec_altmode_notify(typec_altmode*, unsigned long int, void*)'
  [A] 'function void typec_altmode_unregister_driver(typec_altmode_driver*)'
  [A] 'function int typec_altmode_vdm(typec_altmode*, const u32, const u32*, int)'
  [A] 'function int typec_get_negotiated_svdm_version(typec_port*)'
  [A] 'function int vb2_create_bufs(vb2_queue*, v4l2_create_buffers*)'

22 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_tcp_recvmsg'
  [A] 'tracepoint __tracepoint_android_rvh_tcp_recvmsg_stat'
  [A] 'tracepoint __tracepoint_android_rvh_tcp_sendmsg_locked'
  [A] 'tracepoint __tracepoint_android_rvh_udp_recvmsg'
  [A] 'tracepoint __tracepoint_android_rvh_udp_sendmsg'
  [A] 'tracepoint __tracepoint_android_vh_cpu_up'
  [A] 'tracepoint __tracepoint_android_vh_cpufreq_acct_update_power'
  [A] 'tracepoint __tracepoint_android_vh_filemap_fault_cache_page'
  [A] 'tracepoint __tracepoint_android_vh_filemap_fault_get_page'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_alloc'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_css_offline'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_css_online'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_free'
  [A] 'tracepoint __tracepoint_android_vh_mem_cgroup_id_remove'
  [A] 'tracepoint __tracepoint_android_vh_mmap_region'
  [A] 'tracepoint __tracepoint_android_vh_scmi_timeout_sync'
  [A] 'tracepoint __tracepoint_android_vh_shrink_slab_bypass'
  [A] 'tracepoint __tracepoint_android_vh_snd_soc_card_get_comp_chain'
  [A] 'tracepoint __tracepoint_android_vh_try_to_unmap_one'
  [A] 'tracepoint __tracepoint_sched_stat_sleep'
  [A] 'tracepoint __tracepoint_sched_waking'
  [A] 'blkcg blkcg_root'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ica9d2a84fcd58c6ff9c2b0eb7146a7e9657c167f
2021-11-04 17:26:58 +01:00
xieliujie
29af14b086 ANDROID: GKI: Update symbols to symbol list
Update symbols to symbol list externed by oem modules.

Leaf changes summary: 4 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 2 Added variables

2 Added functions:

  [A] 'function int __traceiter_sched_stat_sleep(void*, task_struct*, u64)'
  [A] 'function int __traceiter_sched_waking(void*, task_struct*)'

2 Added variables:

  [A] 'tracepoint __tracepoint_sched_stat_sleep'
  [A] 'tracepoint __tracepoint_sched_waking'

Bug: 193384408
Change-Id: I9979f21fb3feec8dadc57ef515ab7697cc84e2ca
Signed-off-by: xieliujie <xieliujie@oppo.com>
2021-11-04 01:28:38 +00:00
Eric Biggers
8d7f609cda ANDROID: fips140: add name and version, and a function to retrieve them
This is needed to meet a FIPS 140-3 requirement that modules provide a
service that retrieves their name and versioning information.

Bug: 188620248
Change-Id: I36049c839c4217e3616daab52ec536b46479c12a
Signed-off-by: Eric Biggers <ebiggers@google.com>
(cherry picked from commit 2888f960d0)
2021-11-03 09:23:35 -07:00
Eric Biggers
64d769e53f ANDROID: fips140: add service indicators
To satisfy the FIPS 140-3 "service indicators" requirement, add a
function which checks whether the given algorithm is "approved" or not.

Note that this function is a bit different from the module's other APIs
in that it is an exported symbol rather than a registration-based API.
This avoids needing to make kernel/KMI changes, so I think we should do
it this way if possible, given that it's unlikely this function will be
used in practice outside of the lab test.  Built-in code can still call
this function via symbol_get() if it really wants to.

Bug: 188620248
Change-Id: I26c976258fa9446b34eb189bba7154142d85da16
Signed-off-by: Eric Biggers <ebiggers@google.com>
(cherry picked from commit fe4b8d3c68)
2021-11-03 09:23:35 -07:00
zhengding chen
b9066e59a5 ANDROID: GKI: Update symbols to symbol list
Update symbols to symbol list externed by oem modules.

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added variable

1 Added function:

  [A] 'function int __traceiter_android_vh_cpufreq_acct_update_power(void*, u64, task_struct*, unsigned int)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_cpufreq_acct_update_power'

Bug: 193384408
Signed-off-by: zhengding chen <chenzhengding@oppo.com>
Change-Id: Ia8b4c3bf3847dd3e61a82bd11c87039fcc2bfbf0
2021-11-03 11:50:19 +00:00
Greg Kroah-Hartman
76698ea35f ANDROID: GKI: fix up abi breakage from "cfg80211: fix management registrations locking"
Commit 4c22227e39 ("cfg80211: fix management registrations locking")
in 5.10.77, which is commit 09b1d5dc6c ("cfg80211: fix management
registrations locking") upstream, moved the mgmt_registrations_lock out
of struct wireless_dev.  This did not change the structure size, but
caused a CRC change in the structure pointer, which tripped the abi
checker.

So restore the variable, and comment that this is not used anymore.  No
driver should ever be touching this so it is safe.

Note, using a __GENKSYMS__ hack would work, as the overall structure
size remains the same when this variable is removed, BUT the warning
that the field is gone is reported by libabigail correctly, which would
require a .xml update, so it's not worth it.

Bug: 161946584
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibcfe743833860e6f75611d7ebed1036a77be0a69
2021-11-03 11:11:23 +01:00
Greg Kroah-Hartman
a739489620 Merge 5.10.77 into android12-5.10-lts
Changes in 5.10.77
	ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images
	ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
	ARM: 9134/1: remove duplicate memcpy() definition
	ARM: 9138/1: fix link warning with XIP + frame-pointer
	ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
	ARM: 9141/1: only warn about XIP address when not compile testing
	io_uring: don't take uring_lock during iowq cancel
	powerpc/bpf: Fix BPF_MOD when imm == 1
	arm64: Avoid premature usercopy failure
	ext4: fix possible UAF when remounting r/o a mmp-protected file system
	usbnet: sanity check for maxpacket
	usbnet: fix error return code in usbnet_probe()
	Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
	pinctrl: amd: disable and mask interrupts on probe
	ata: sata_mv: Fix the error handling of mv_chip_id()
	tipc: fix size validations for the MSG_CRYPTO type
	nfc: port100: fix using -ERRNO as command type mask
	Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
	net/tls: Fix flipped sign in tls_err_abort() calls
	mmc: vub300: fix control-message timeouts
	mmc: cqhci: clear HALT state after CQE enable
	mmc: mediatek: Move cqhci init behind ungate clock
	mmc: dw_mmc: exynos: fix the finding clock sample value
	mmc: sdhci: Map more voltage level to SDHCI_POWER_330
	mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
	ocfs2: fix race between searching chunks and release journal_head from buffer_head
	nvme-tcp: fix H2CData PDU send accounting (again)
	cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
	cfg80211: fix management registrations locking
	net: lan78xx: fix division by zero in send path
	mm, thp: bail out early in collapse_file for writeback page
	drm/ttm: fix memleak in ttm_transfered_destroy
	drm/amdgpu: fix out of bounds write
	cgroup: Fix memory leak caused by missing cgroup_bpf_offline
	riscv, bpf: Fix potential NULL dereference
	tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
	bpf: Fix potential race in tail call compatibility check
	bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch()
	IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
	IB/hfi1: Fix abba locking issue with sc_disable()
	nvmet-tcp: fix data digest pointer calculation
	nvme-tcp: fix data digest pointer calculation
	nvme-tcp: fix possible req->offset corruption
	octeontx2-af: Display all enabled PF VF rsrc_alloc entries.
	RDMA/mlx5: Set user priority for DCT
	arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
	reset: brcmstb-rescal: fix incorrect polarity of status bit
	regmap: Fix possible double-free in regcache_rbtree_exit()
	net: batman-adv: fix error handling
	net-sysfs: initialize uid and gid before calling net_ns_get_ownership
	cfg80211: correct bridge/4addr mode check
	net: Prevent infinite while loop in skb_tx_hash()
	RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
	gpio: xgs-iproc: fix parsing of ngpios property
	nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
	mlxsw: pci: Recycle received packet upon allocation failure
	net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
	net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
	net: nxp: lpc_eth.c: avoid hang when bringing interface down
	net/tls: Fix flipped sign in async_wait.err assignment
	phy: phy_ethtool_ksettings_get: Lock the phy for consistency
	phy: phy_ethtool_ksettings_set: Move after phy_start_aneg
	phy: phy_start_aneg: Add an unlocked version
	phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings
	sctp: use init_tag from inithdr for ABORT chunk
	sctp: fix the processing for INIT_ACK chunk
	sctp: fix the processing for COOKIE_ECHO chunk
	sctp: add vtag check in sctp_sf_violation
	sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
	sctp: add vtag check in sctp_sf_ootb
	lan743x: fix endianness when accessing descriptors
	KVM: s390: clear kicked_mask before sleeping again
	KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
	scsi: ufs: ufs-exynos: Correct timeout value setting registers
	riscv: fix misalgned trap vector base address
	riscv: Fix asan-stack clang build
	perf script: Check session->header.env.arch before using it
	Linux 5.10.77

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I4cd89af4d20b7a8a1a6d9906233d1aaf026659a8
2021-11-02 20:03:12 +01:00
Greg Kroah-Hartman
09df347cfd Linux 5.10.77
Link: https://lore.kernel.org/r/20211101082511.254155853@linuxfoundation.org
Tested-by: Fox Chen <foxhlchen@gmail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Tested-by: Hulk Robot <hulkrobot@huawei.com>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-02 19:48:25 +01:00
Song Liu
fbb91dadb5 perf script: Check session->header.env.arch before using it
commit 29c77550ee upstream.

When perf.data is not written cleanly, we would like to process existing
data as much as possible (please see f_header.data.size == 0 condition
in perf_session__read_header). However, perf.data with partial data may
crash perf. Specifically, we see crash in 'perf script' for NULL
session->header.env.arch.

Fix this by checking session->header.env.arch before using it to determine
native_arch. Also split the if condition so it is easier to read.

Committer notes:

If it is a pipe, we already assume is a native arch, so no need to check
session->header.env.arch.

Signed-off-by: Song Liu <songliubraving@fb.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: kernel-team@fb.com
Cc: stable@vger.kernel.org
Link: http://lore.kernel.org/lkml/20211004053238.514936-1-songliubraving@fb.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-02 19:48:25 +01:00
Alexandre Ghiti
6f416815c5 riscv: Fix asan-stack clang build
commit 54c5639d8f upstream.

Nathan reported that because KASAN_SHADOW_OFFSET was not defined in
Kconfig, it prevents asan-stack from getting disabled with clang even
when CONFIG_KASAN_STACK is disabled: fix this by defining the
corresponding config.

Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
Fixes: 8ad8b72721 ("riscv: Add KASAN support")
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-02 19:48:25 +01:00