Commit Graph

897177 Commits

Author SHA1 Message Date
Steve Muckle
15a5e4ad4f ANDROID: add TEST_MAPPING for net/, include/net
Run CtsNetTestCases in presubmit for changes in net/ and
include/net/.

Bug: 186664401
Change-Id: I3cf942bd0418ad55a6559d6933927b0da86da595
Signed-off-by: Steve Muckle <smuckle@google.com>
(cherry picked from commit 55415d7022a8835d8979e09a74da3df29c9091ec)
2023-01-23 17:54:01 +00:00
Jialiang Wang
f5b4a7be57 UPSTREAM: nfp: fix use-after-free in area_cache_get()
commit 02e1a114fdb71e59ee6770294166c30d437bf86a upstream.

area_cache_get() is used to distribute cache->area and set cache->id,
 and if cache->id is not 0 and cache->area->kref refcount is 0, it will
 release the cache->area by nfp_cpp_area_release(). area_cache_get()
 set cache->id before cpp->op->area_init() and nfp_cpp_area_acquire().

But if area_init() or nfp_cpp_area_acquire() fails, the cache->id is
 is already set but the refcount is not increased as expected. At this
 time, calling the nfp_cpp_area_release() will cause use-after-free.

To avoid the use-after-free, set cache->id after area_init() and
 nfp_cpp_area_acquire() complete successfully.

Note: This vulnerability is triggerable by providing emulated device
 equipped with specified configuration.

 BUG: KASAN: use-after-free in nfp6000_area_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:760)
  Write of size 4 at addr ffff888005b7f4a0 by task swapper/0/1

 Call Trace:
  <TASK>
 nfp6000_area_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:760)
 area_cache_get.constprop.8 (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:884)

 Allocated by task 1:
 nfp_cpp_area_alloc_with_name (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:303)
 nfp_cpp_area_cache_add (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:802)
 nfp6000_init (drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c:1230)
 nfp_cpp_from_operations (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:1215)
 nfp_pci_probe (drivers/net/ethernet/netronome/nfp/nfp_main.c:744)

 Freed by task 1:
 kfree (mm/slub.c:4562)
 area_cache_get.constprop.8 (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:873)
 nfp_cpp_read (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:924 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c:973)
 nfp_cpp_readl (drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cpplib.c:48)

Bug: 254471126
Signed-off-by: Jialiang Wang <wangjialiang0806@163.com>
Reviewed-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Acked-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20220810073057.4032-1-wangjialiang0806@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Iad626deee45edc6bdf7a095d3de1defc5c6ad996
Signed-off-by: Lee Jones <joneslee@google.com>
2023-01-23 17:42:44 +00:00
Linus Torvalds
5a9d35543f UPSTREAM: proc: avoid integer type confusion in get_proc_long
commit e6cfaf34be9fcd1a8285a294e18986bfc41a409c upstream.

proc_get_long() is passed a size_t, but then assigns it to an 'int'
variable for the length.  Let's not do that, even if our IO paths are
limited to MAX_RW_COUNT (exactly because of these kinds of type errors).

So do the proper test in the rigth type.

Bug: 261488859
Reported-by: Kyle Zeng <zengyhkyle@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I75a06fe777c638b82ef3fbd1346e985065ab17f2
Signed-off-by: Lee Jones <joneslee@google.com>
2023-01-23 15:18:03 +00:00
Linus Torvalds
cffda199e1 UPSTREAM: proc: proc_skip_spaces() shouldn't think it is working on C strings
commit bce9332220bd677d83b19d21502776ad555a0e73 upstream.

proc_skip_spaces() seems to think it is working on C strings, and ends
up being just a wrapper around skip_spaces() with a really odd calling
convention.

Instead of basing it on skip_spaces(), it should have looked more like
proc_skip_char(), which really is the exact same function (except it
skips a particular character, rather than whitespace).  So use that as
inspiration, odd coding and all.

Now the calling convention actually makes sense and works for the
intended purpose.

Bug: 261488859
Reported-and-tested-by: Kyle Zeng <zengyhkyle@gmail.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie21bf20f3b92b78c5f31093b354a77b4133810e7
Signed-off-by: Lee Jones <joneslee@google.com>
2023-01-23 15:17:59 +00:00
Lee Jones
e418b27c0c ANDROID: usb: f_accessory: Check buffer size when initialised via composite
When communicating with accessory devices via USBFS, the initialisation
call-stack looks like:

  ConfigFS > Gadget ConfigFS > UDC > Gadget ConfigFS > Composite

Eventually ending up in composite_dev_prepare() where memory for the
data buffer is allocated and initialised.  The default size used for the
allocation is USB_COMP_EP0_BUFSIZ (4k).  When handling bulk transfers,
acc_ctrlrequest() needs to be able to handle buffers up to
BULK_BUFFER_SIZE (16k).  Instead of adding new generic attributes to
'struct usb_request' to track the size of the allocated buffer, we can
simply split off the affected thread of execution to travel via a
knowledgeable abstracted function acc_ctrlrequest_composite() where we
can complete the necessary specific checks.

Bug: 264029575
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia1280f85499621d3fa57f7262b4a2c80f4be7773
Signed-off-by: Lee Jones <joneslee@google.com>
2023-01-23 10:39:10 +00:00
Minchan Kim
8912db2538 BACKPORT: mm: don't be stuck to rmap lock on reclaim path
The rmap locks(i_mmap_rwsem and anon_vma->root->rwsem) could be contended
under memory pressure if processes keep working on their vmas(e.g., fork,
mmap, munmap).  It makes reclaim path stuck.  In our real workload traces,
we see kswapd is waiting the lock for 300ms+(worst case, a sec) and it
makes other processes entering direct reclaim, which were also stuck on
the lock.

This patch makes lru aging path try_lock mode like shink_page_list so the
reclaim context will keep working with next lru pages without being stuck.
if it found the rmap lock contended, it rotates the page back to head of
lru in both active/inactive lrus to make them consistent behavior, which
is basic starting point rather than adding more heristic.

Since this patch introduces a new "contended" field as out-param along
with try_lock in-param in rmap_walk_control, it's not immutable any longer
if the try_lock is set so remove const keywords on rmap related functions.
Since rmap walking is already expensive operation, I doubt the const
would help sizable benefit( And we didn't have it until 5.17).

In a heavy app workload in Android, trace shows following statistics.  It
almost removes rmap lock contention from reclaim path.

Martin Liu reported:

Before:

   max_dur(ms)  min_dur(ms)  max-min(dur)ms  avg_dur(ms)  sum_dur(ms)  count blocked_function
         1632            0            1631   151.542173        31672    209  page_lock_anon_vma_read
          601            0             601   145.544681        28817    198  rmap_walk_file

After:

   max_dur(ms)  min_dur(ms)  max-min(dur)ms  avg_dur(ms)  sum_dur(ms)  count blocked_function
          NaN          NaN              NaN          NaN          NaN    0.0             NaN
            0            0                0     0.127645            1     12  rmap_walk_file

[minchan@kernel.org: add comment, per Matthew]
  Link: https://lkml.kernel.org/r/YnNqeB5tUf6LZ57b@google.com
Link: https://lkml.kernel.org/r/20220510215423.164547-1-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan@kernel.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: John Dias <joaodias@google.com>
Cc: Tim Murray <timmurray@google.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Martin Liu <liumartin@google.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Conflicts:
	folio->page

(cherry picked from commit 6d4675e601357834dadd2ba1d803f6484596015c)
Bug: 239681156
Bug: 252333201
Bug: 265247508
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I0c63e0291120c8a1b5f2d83b8a7b210cb56c27a2
Signed-off-by: chenxin <chenxinxin@xiaomi.corp-partner.google.com>
Signed-off-by: guchongchong <guchongchong@xiaomi.corp-partner.google.com>
(cherry picked from commit a0eae55f26a0cbdd828db226592093ad2142889c)
2023-01-13 08:56:32 +00:00
A. Cody Schuffelen
a69a8cd3c5 ANDROID: Add more hvc devices for virtio-console.
This allows creating more TTY devices bound to virtio-console devices.

Bug: 170149708
Test: ls /dev/hvc* on a cuttlefish device
Change-Id: Id07c25bded35dac5d17736731bfd8b8f4f1d463b
Signed-off-by: A. Cody Schuffelen <schuffelen@google.com>
2023-01-10 23:03:46 +00:00
Roderick Colenbrander
7b7c361b98 UPSTREAM: HID: playstation: support updated DualSense rumble mode.
Newer DualSense firmware supports a revised classic rumble mode,
which feels more similar to rumble as supported on previous PlayStation
controllers. It has been made the default on PlayStation and non-PlayStation
devices now (e.g. iOS and Windows). Default to this new mode when
supported.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-4-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 9fecab247ed15e6145c126fc56ee1e89860741a7)
Change-Id: Icd330111a4d1b1e76a04cd11c623d0982ce3d66f
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Roderick Colenbrander
ff79b92f34 UPSTREAM: HID: playstation: add initial DualSense Edge controller support
Provide initial support for the DualSense Edge controller. The brings
support up to the level of the original DualSense, but won't yet provide
support for new features (e.g. reprogrammable buttons).

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-3-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit b8a968efab301743fd659b5649c5d7d3e30e63a6)
Change-Id: I5b95de806e823085d1144f016d8cfd76e4a933ef
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Roderick Colenbrander
9c127a4a06 UPSTREAM: HID: playstation: stop DualSense output work on remove.
Ensure we don't schedule any new output work on removal and wait
for any existing work to complete. If we don't do this e.g. rumble
work can get queued during deletion and we trigger a kernel crash.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-2-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 182934a1e93b17f4edf71f4fcc8d19b19a6fe67a)
Change-Id: I40cadfde5765cdabf45def929860258d6019bf10
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Greg Kroah-Hartman
b32bdd3e88 UPSTREAM: HID: playstation: convert to use dev_groups
There is no need for a driver to individually add/create device groups,
the driver core will do it automatically for you.  Convert the
hid-playstation driver to use the dev_groups pointer instead of manually
calling the driver core to create the group and have it be cleaned up
later on by the devm core.

Cc: Roderick Colenbrander <roderick.colenbrander@sony.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit b4a9af9be628e4f9d09997e0bdef30f6718e88ec)
Change-Id: I516a1b0ef7f4f8545e0c1b9485b49879dd7a3136
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Jiri Kosina
c1ac1f8001 UPSTREAM: HID: playstation: fix return from dualsense_player_led_set_brightness()
brightness_set_blocking() callback expects function returning int. This fixes
the follwoing build failure:

drivers/hid/hid-playstation.c: In function ‘dualsense_player_led_set_brightness’:
drivers/hid/hid-playstation.c:885:1: error: no return statement in function returning non-void [-Werror=return-type]
 }
 ^

Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 3c92cb4cb60c71b574e47108ead8b6f0470850db)
Change-Id: Id16b960826a26ac22c1a14572444f9af29689ed6
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Roderick Colenbrander
d44545535e UPSTREAM: HID: playstation: expose DualSense player LEDs through LED class.
The DualSense player LEDs were so far not adjustable from user-space.
This patch exposes each LED individually through the LED class. Each
LED uses the new 'player' function resulting in a name like:
'inputX:white:player-1' for the first LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 8c0ab553b072025530308f74b2c0223ec50dffe5)
Change-Id: I49c699a99b0b8a7bb7980560e3ea7a12faf646aa
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Roderick Colenbrander
07dd46d289 BACKPORT: leds: add new LED_FUNCTION_PLAYER for player LEDs for game controllers.
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.

This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.

Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 61177c088a57bed259122f3c7bc6d61984936a12)
[Farid: Fixed minor conflict due to skipped commits outside scope of
hid-playstation]
Change-Id: I696f62cda377be1523e74e92b66b28f3c0716c43
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Roderick Colenbrander
f91c45c176 UPSTREAM: HID: playstation: expose DualSense lightbar through a multi-color LED.
The DualSense lightbar has so far been supported, but it was not yet
adjustable from user space. This patch exposes it through a multi-color
LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit fc97b4d6a1a6d418fd4053fd7716eca746fdd163)
Change-Id: I48204113da804b13ad5bed2f651a5826ab5a86f7
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Gene Chen
749207d940 UPSTREAM: leds: flash: Fix multicolor no-ops registration by return 0
Fix multicolor no-ops registration by return 0,
and move the same registration functions outside of #ifdef block.

Signed-off-by: Gene Chen <gene_chen@richtek.com>
Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>

Bug: 260685629
(cherry picked from commit 6039b7e87be0b350a5f8fc135adfb5d1f4ba66ad)
Change-Id: Ieb8cace2978f61bd2de5c576e851987c6ba31e2c
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Dan Murphy
3e667a0854 UPSTREAM: leds: multicolor: Introduce a multicolor class definition
Introduce a multicolor class that groups colored LEDs
within a LED node.

The multicolor class groups monochrome LEDs and allows controlling two
aspects of the final combined color: hue and lightness. The former is
controlled via the intensity file and the latter is controlled
via brightness file.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
[squashed leds: multicolor: Fix camel case in documentation in]

Bug: 260685629
(cherry picked from commit 55d5d3b46b08a4dc0b05343d24640744e7430ed7)
Change-Id: Ib1f41d74ace8e3a9c1071d52202c8d8b70a912e0
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-21 16:28:02 +00:00
Farid Chahla
0b5ee17e7d ANDROID: GKI: enable mulitcolor-led
To enable newer version of DualSense driver, i.e. hid-playstation, we
need to set LEDS_CLASS_MULTICOLOR to "y".

Bug: 260685629
Change-Id: I52b0b1b6a061457e009b62a6bd6b66a91c8c37a2
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-20 17:33:50 +00:00
Lee Jones
0ce03d1655 BACKPORT: Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled
[ Upstream commit 152fe65f300e1819d59b80477d3e0999b4d5d7d2 ]

When enabled, KASAN enlarges function's stack-frames.  Pushing quite a few
over the current threshold.  This can mainly be seen on 32-bit
architectures where the present limit (when !GCC) is a lowly 1024-Bytes.

Bug: 261962742
Link: https://lkml.kernel.org/r/20221125120750.3537134-3-lee@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@gmail.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Tom Rix <trix@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Change-Id: I505a5187220b426fe49c0f15bf1704198082f63d
Signed-off-by: Lee Jones <joneslee@google.com>
2022-12-09 12:18:58 +00:00
Lee Jones
20fb10aa4c UPSTREAM: bpf: Ensure correct locking around vulnerable function find_vpid()
[ Upstream commit 83c10cc362d91c0d8d25e60779ee52fdbbf3894d ]

The documentation for find_vpid() clearly states:

  "Must be called with the tasklist_lock or rcu_read_lock() held."

Presently we do neither for find_vpid() instance in bpf_task_fd_query().
Add proper rcu_read_lock/unlock() to fix the issue.

Bug: 232939090
Fixes: 41bdc4b40e ("bpf: introduce bpf subcommand BPF_TASK_FD_QUERY")
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220912133855.1218900-1-lee@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I517b52d97a22b92be1a479279067ddb7b84efbba
2022-12-06 14:29:41 +00:00
Hyunwoo Kim
0ec485223d UPSTREAM: HID: roccat: Fix use-after-free in roccat_read()
[ Upstream commit cacdb14b1c8d3804a3a7d31773bc7569837b71a4 ]

roccat_report_event() is responsible for registering
roccat-related reports in struct roccat_device.

int roccat_report_event(int minor, u8 const *data)
{
	struct roccat_device *device;
	struct roccat_reader *reader;
	struct roccat_report *report;
	uint8_t *new_value;

	device = devices[minor];

	new_value = kmemdup(data, device->report_size, GFP_ATOMIC);
	if (!new_value)
		return -ENOMEM;

	report = &device->cbuf[device->cbuf_end];

	/* passing NULL is safe */
	kfree(report->value);
	...

The registered report is stored in the struct roccat_device member
"struct roccat_report cbuf[ROCCAT_CBUF_SIZE];".
If more reports are received than the "ROCCAT_CBUF_SIZE" value,
kfree() the saved report from cbuf[0] and allocates a new reprot.
Since there is no lock when this kfree() is performed,
kfree() can be performed even while reading the saved report.

static ssize_t roccat_read(struct file *file, char __user *buffer,
		size_t count, loff_t *ppos)
{
	struct roccat_reader *reader = file->private_data;
	struct roccat_device *device = reader->device;
	struct roccat_report *report;
	ssize_t retval = 0, len;
	DECLARE_WAITQUEUE(wait, current);

	mutex_lock(&device->cbuf_lock);

	...

	report = &device->cbuf[reader->cbuf_start];
	/*
	 * If report is larger than requested amount of data, rest of report
	 * is lost!
	 */
	len = device->report_size > count ? count : device->report_size;

	if (copy_to_user(buffer, report->value, len)) {
		retval = -EFAULT;
		goto exit_unlock;
	}
	...

The roccat_read() function receives the device->cbuf report and
delivers it to the user through copy_to_user().
If the N+ROCCAT_CBUF_SIZE th report is received while copying of
the Nth report->value is in progress, the pointer that copy_to_user()
is working on is kfree()ed and UAF read may occur. (race condition)

Since the device node of this driver does not set separate permissions,
this is not a security vulnerability, but because it is used for
requesting screen display of profile or dpi settings,
a user using the roccat device can apply udev to this device node or
There is a possibility to use it by giving.

Bug: 251067658
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I90b24df9216ab87a4fec0ab06fa52e7b1eb97fd1
2022-12-05 10:43:45 +00:00
Charan Teja Kalla
cbbd724281 ANDROID: arm64: mm: perform clean & invalidation in __dma_map_area
commit c50f11c6196f ("arm64: mm: Don't invalidate FROM_DEVICE buffers at
start of DMA transfer") break assumptions of some device drivers about
invalidation that happens as part of __dma_map_area(DMA_FROM_DEVICE). An
example include drivers using dmabuf API dma_buf_begin_cpu_access() and
dma_buf_end_cpu_access() to achieve buffer invalidation. Fix this breakage
by replacing clean with clean and invalidation in __dma_map_area() for
DMA inbound case.

Bug: 260978220
Change-Id: Id1a2750c2036de693cd52e8f7316f1d820b5a262
Fixes: c50f11c6196f ("arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer")
Signed-off-by: Charan Teja Kalla <quic_charante@quicinc.com>
Signed-off-by: Shiraz Hashim <quic_shashim@quicinc.com>
Signed-off-by: Prakash Gupta <quic_guptap@quicinc.com>
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
2022-12-05 09:27:06 +05:30
Greg Kroah-Hartman
4338018da7 Merge tag 'android11-5.4.219_r00' into android11-5.4
This is the merge of the upstream LTS release of 5.4.219 into the
android11-5.4 branch.

It contains the following commits:

cb8a045992 ANDROID: GKI: db845c: Update symbols list and ABI
f944347410 Merge 5.4.219 into android11-5.4-lts
fd92cfed8b Linux 5.4.219
0cb5be43dc wifi: mac80211: fix MBSSID parsing use-after-free
9478c5f9c0 wifi: mac80211: don't parse mbssid in assoc response
7f441a6c90 mac80211: mlme: find auth challenge directly
c248c3330d Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
4fa407bf37 Merge 5.4.218 into android11-5.4-lts
1d0da8674c Linux 5.4.218
3ff54a91e4 Input: xpad - fix wireless 360 controller breaking after suspend
6904677595 Input: xpad - add supported devices as contributed on github
9389750ac6 wifi: cfg80211: update hidden BSSes to avoid WARN_ON
7fab3bf520 wifi: mac80211_hwsim: avoid mac80211 warning on bad rate
77bb20ccb9 wifi: cfg80211: avoid nontransmitted BSS list corruption
785eaabfe3 wifi: cfg80211: fix BSS refcounting bugs
359ce507f7 wifi: cfg80211: ensure length byte is present before access
43689bf2cd wifi: cfg80211/mac80211: reject bad MBSSID elements
020402c7dd wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans()
c634a9107f random: use expired timer rather than wq for mixing fast pool
39800adc38 random: avoid reading two cache lines on irq randomness
bc0375ca43 random: restore O_NONBLOCK support
49d2fc9f99 USB: serial: qcserial: add new usb-id for Dell branded EM7455
20a5bde605 scsi: stex: Properly zero out the passthrough command structure
46b822a755 efi: Correct Macmini DMI match in uefi cert quirk
b719d10f7e ALSA: hda: Fix position reporting on Poulsbo
e5d25a3bfd random: clamp credited irq bits to maximum mixed
194f59391d ceph: don't truncate file in atomic_open
259c0f6816 nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure
b7e409d11d nilfs2: fix leak of nilfs_root in case of writer thread creation failure
792211333a nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level()
963089ad76 rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
2da677c0c7 mmc: core: Terminate infinite loop in SD-UHS voltage switch
373eca05b5 mmc: core: Replace with already defined values for readability
7ec8f073c2 USB: serial: ftdi_sio: fix 300 bps rate for SIO
21446ad9cb usb: mon: make mmapped memory read only
d2f3a51ca2 arch: um: Mark the stack non-executable to fix a binutils warning
bb2d4c37b1 um: Cleanup compiler warning in arch/x86/um/tls_32.c
9e26e0eef6 um: Cleanup syscall_handler_t cast in syscalls_32.h
3c9a75b3d2 net/ieee802154: fix uninit value bug in dgram_sendmsg
61be8898d7 scsi: qedf: Fix a UAF bug in __qedf_probe()
c790d3a00d ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer
aefe2f55a9 dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API failure
db702ecd71 dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property
59684c8777 firmware: arm_scmi: Add SCMI PM driver remove routine
70e4f70d54 fs: fix UAF/GPF bug in nilfs_mdt_destroy
398312c687 perf tools: Fixup get_current_dir_name() compilation
393a1aa421 mm: pagewalk: Fix race between unmap and page walker
c01b171cd9 Merge 5.4.217 into android11-5.4-lts
6e150d605c Linux 5.4.217
0c41153c36 docs: update mediator information in CoC docs
096740d675 Makefile.extrawarn: Move -Wcast-function-type-strict to W=1
e911caf9a1 Revert "drm/amdgpu: use dirty framebuffer helper"
ae19c3c76d xfs: remove unused variable 'done'
538657def7 xfs: fix uninitialized variable in xfs_attr3_leaf_inactive
9ff41b8d71 xfs: streamline xfs_attr3_leaf_inactive
c893fedaf1 xfs: move incore structures out of xfs_da_format.h
5e13ad940a xfs: fix memory corruption during remote attr value buffer invalidation
821e0951b4 xfs: refactor remote attr value buffer invalidation
a1b66abe30 xfs: fix IOCB_NOWAIT handling in xfs_file_dio_aio_read
1e4a0723eb xfs: fix s_maxbytes computation on 32-bit kernels
16de74ee3a xfs: truncate should remove all blocks, not just to the end of the page cache
87e73331e4 xfs: introduce XFS_MAX_FILEOFF
bd67d06b09 xfs: fix misuse of the XFS_ATTR_INCOMPLETE flag
24f45c8782 x86/speculation: Add RSB VM Exit protections
564275d4b9 x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
4891e5fd10 x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current
9862c0f4fd x86/speculation: Disable RRSBA behavior
b9ae02c3c2 x86/bugs: Add Cannon lake to RETBleed affected CPU list
d6a8a470dc x86/cpu/amd: Enumerate BTC_NO
2edfa537f3 x86/common: Stamp out the stepping madness
17a9fc4a7b x86/speculation: Fill RSB on vmexit for IBRS
2242cf2150 KVM: VMX: Fix IBRS handling after vmexit
51c71ed134 KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS
a31bdec99a KVM: VMX: Convert launched argument to flags
5895a9297e KVM: VMX: Flatten __vmx_vcpu_run()
64723cd346 KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw
57ba312f10 KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S
87dfe68a35 x86/speculation: Remove x86_spec_ctrl_mask
4109a8ce10 x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit
0fd086edf8 x86/speculation: Fix SPEC_CTRL write on SMT state change
18d5a93fd2 x86/speculation: Fix firmware entry SPEC_CTRL handling
03a575a0f9 x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n
8afd1c7da2 x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
3ee9e9a5af intel_idle: Disable IBRS during long idle
97bc52c14a x86/bugs: Report Intel retbleed vulnerability
fd67fe3db9 x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation()
2d4ce2d72c x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS
e2d793a374 x86/bugs: Optimize SPEC_CTRL MSR writes
a3111faed5 x86/entry: Add kernel IBRS implementation
fd32a31553 x86/entry: Remove skip_r11rcx
3c93ff4e23 x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value
9a596426d7 x86/bugs: Add AMD retbleed= boot parameter
063b7f9806 x86/bugs: Report AMD retbleed vulnerability
954d591a84 x86/cpufeatures: Move RETPOLINE flags to word 11
893cd858b0 x86/kvm/vmx: Make noinstr clean
f62d272c2f x86/cpu: Add a steppings field to struct x86_cpu_id
69460b1ed6 x86/cpu: Add consistent CPU match macros
87449d94e7 x86/devicetable: Move x86 specific macro out of generic code
fbd29b7549 Revert "x86/cpu: Add a steppings field to struct x86_cpu_id"
3a8ff61e6f Revert "x86/speculation: Add RSB VM Exit protections"
3e7819945e Merge 5.4.216 into android11-5.4-lts
f28b7414ab Linux 5.4.216
b8b87cb136 clk: iproc: Do not rely on node name for correct PLL setup
d417d5eb29 clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks
762706bd12 selftests: Fix the if conditions of in test_extra_filter()
ae0d3a4316 nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices
18ef5cd4c5 nvme: add new line after variable declatation
3ea4a53424 usbnet: Fix memory leak in usbnet_disconnect()
6ca922ec75 Input: melfas_mip4 - fix return value check in mip4_probe()
38c4d8230f Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time"
7291d19a9e soc: sunxi: sram: Fix debugfs info for A64 SRAM C
cdbcdfc961 soc: sunxi: sram: Fix probe function ordering issues
73dbc6e136 soc: sunxi_sram: Make use of the helper function devm_platform_ioremap_resource()
26170e4fd1 soc: sunxi: sram: Prevent the driver from being unbound
883778a1f4 soc: sunxi: sram: Actually claim SRAM regions
1ba5248608 ARM: dts: am33xx: Fix MMCHS0 dma properties
d0c69c722f ARM: dts: Move am33xx and am43xx mmc nodes to sdhci-omap driver
d185652800 media: dvb_vb2: fix possible out of bound access
0f4634f70b mm: fix madivse_pageout mishandling on non-LRU page
ffd11370b7 mm/migrate_device.c: flush TLB while holding PTL
b9e31f4885 mm: prevent page_frag_alloc() from corrupting the memory
d535fb8384 mm/page_alloc: fix race condition between build_all_zonelists and page allocation
2ec4949738 mmc: moxart: fix 4-bit bus width and remove 8-bit bus width
bb7c23e4e5 libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205
5cebfac6a8 Revert "net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()"
9a3740f448 ntfs: fix BUG_ON in ntfs_lookup_inode_by_name()
46e784cf4a ARM: dts: integrator: Tag PCI host with device_type
85b5edb1b4 clk: ingenic-tcu: Properly enable registers before accessing timers
f8a2e22289 net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455
43699b8fbc uas: ignore UAS for Thinkplus chips
fc540f6e4b usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS
383c663c73 uas: add no-uas quirk for Hiksemi usb_disk
79e1dca55a Merge 5.4.215 into android11-5.4-lts
6215647d96 Linux 5.4.215
579976dc0d ext4: make directory inode spreading reflect flexbg size
26e7c965f4 xfs: fix use-after-free when aborting corrupt attr inactivation
8b3c9eb1b3 xfs: fix an ABBA deadlock in xfs_rename
37ec5a20c8 xfs: don't commit sunit/swidth updates to disk if that would cause repair failures
4668f08cda xfs: split the sunit parameter update into two parts
fd6c5da3fa xfs: refactor agfl length computation function
6363fdf7ac xfs: use bitops interface for buf log item AIL flag check
a95582d9d5 xfs: stabilize insert range start boundary to avoid COW writeback race
7a20c664a7 xfs: fix some memory leaks in log recovery
ad9759d488 xfs: always log corruption errors
0336599b64 xfs: constify the buffer pointer arguments to error functions
8856a6572f xfs: convert EIO to EFSCORRUPTED when log contents are invalid
9185003c93 xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename()
796ff09598 xfs: attach dquots and reserve quota blocks during unwritten conversion
a33bcad48b xfs: range check ri_cnt when recovering log items
a102869fb1 xfs: add missing assert in xfs_fsmap_owner_from_rmap
979eb12304 xfs: slightly tweak an assert in xfs_fs_map_blocks
c494dbca99 xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata
bb7eb3ca4b ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
04aa8187eb workqueue: don't skip lockdep work dependency in cancel_work_sync()
a874609522 drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
75ed7dee26 drm/amd/display: Limit user regamma to a valid value
c89849ecfd drm/amdgpu: use dirty framebuffer helper
0b467eab0a Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region
8c8d0f7ac8 cifs: always initialize struct msghdr smb_msg completely
1438e412ae usb: xhci-mtk: fix issue of out-of-bounds array access
2e47335140 s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
9eb710d184 serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
6cc0434f9d serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
556e827b0f serial: Create uart_xmit_advance()
903f7d322c net: sched: fix possible refcount leak in tc_new_tfilter()
0e8de8f54b net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
67199c26a0 perf kcore_copy: Do not check /proc/modules is unchanged
80b2f37b33 perf jit: Include program header in ELF files
95c5637d3d can: gs_usb: gs_can_open(): fix race dev->can.state condition
11ebf32fde netfilter: ebtables: fix memory leak when blob is malformed
6a3239f806 net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs
d12a1eb070 net/sched: taprio: avoid disabling offload when it was never enabled
420c9b1073 of: mdio: Add of_node_put() when breaking out of for_each_xx
d2ac2baf1f i40e: Fix set max_tx_rate when it is lower than 1 Mbps
450d106804 i40e: Fix VF set max MTU size
3daf097819 iavf: Fix set max MTU size with port VLAN and jumbo frames
bfaff9adaa iavf: Fix bad page state
9bf52411ee MIPS: Loongson32: Fix PHY-mode being left unspecified
405bd0ebb0 MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
37f79374bb net: team: Unsync device addresses on ndo_stop
346e94aa4a ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
b84fdb6be1 iavf: Fix cached head and tail value for iavf_get_tx_pending
721ea8ac06 netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
d0a24bc8e2 netfilter: nf_conntrack_irc: Tighten matching on DCC message
0376a77fa7 netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
c9355b7e5a arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
312eb4574d arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
a52ef6ae28 arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
016b150992 mm/slub: fix to return errno if kmalloc() fails
cafb9cad9b efi: libstub: check Shim mode using MokSBStateRT
9599d46019 ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
befadcf8f7 ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
b90ac48c05 ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
5f622518a7 ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
8f8a740e91 ALSA: hda/realtek: Re-arrange quirk table entries
dafeac1226 ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
95b9a7f0bf ALSA: hda: add Intel 5 Series / 3400 PCI DID
7fff38ab90 ALSA: hda/tegra: set depop delay for tegra
78d3ae9bfa USB: serial: option: add Quectel RM520N
55f0f59e82 USB: serial: option: add Quectel BG95 0x0203 composition
95b97afdde USB: core: Fix RST error in hub.c
f5e322ffe7 Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
430c9bd664 Revert "usb: add quirks for Lenovo OneLink+ Dock"
05ec31717f usb: cdns3: fix issue with rearming ISO OUT endpoint
10c5d34f6f usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
ddf7bc2218 usb: add quirks for Lenovo OneLink+ Dock
da8ac08694 tty: serial: atmel: Preserve previous USART mode if RS485 disabled
e56a402819 serial: atmel: remove redundant assignment in rs485_config
85a64208b3 tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data
9ad48cbf8b wifi: mac80211: Fix UAF in ieee80211_scan_rx()
9a3695bde9 usb: xhci-mtk: relax TT periodic bandwidth allocation
174645cc63 usb: xhci-mtk: allow multiple Start-Split in a microframe
6cfde07c5d usb: xhci-mtk: add some schedule error number
664b0b8f4e usb: xhci-mtk: add a function to (un)load bandwidth info
d1eed0d3fb usb: xhci-mtk: use @sch_tt to check whether need do TT schedule
1833e8e049 usb: xhci-mtk: add only one extra CS for FS/LS INTR
3826d4f0ef usb: xhci-mtk: get the microframe boundary for ESIT
4ccf7afa47 usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
a5bdea59f4 usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
67bf926f16 usb: dwc3: gadget: Refactor pullup()
24e4f6308d usb: dwc3: gadget: Prevent repeat pullup()
62b6cbc598 usb: dwc3: Issue core soft reset before enabling run/stop
e24f90d761 usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
85371aad28 ALSA: hda/sigmatel: Fix unused variable warning for beep power change
07191f9848 cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
1878eaf0ed video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
47c5ef29e5 mksysmap: Fix the mismatch of 'L0' symbols in System.map
f0ebdfc10b MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
c53c3cbca5 afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
1aea20f98e net: usb: qmi_wwan: add Quectel RM520N
447f95d413 ALSA: hda/tegra: Align BDL entry to 4KB boundary
9f55da12d0 ALSA: hda/sigmatel: Keep power up while beep is enabled
39265647c4 rxrpc: Fix calc of resend age
cc273ed79e rxrpc: Fix local destruction being repeated
da01ec04a0 regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe()
17a21341d9 ASoC: nau8824: Fix semaphore unbalance at error paths
323f289a90 iomap: iomap that extends beyond EOF should be marked dirty
d88039e6fe MAINTAINERS: add Chandan as xfs maintainer for 5.4.y
36128fd71f cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
81081a5c9c cifs: revalidate mapping when doing direct writes
834f4d856f tracing: hold caller_addr to hardirq_{enable,disable}_ip
2c4e260d45 task_stack, x86/cea: Force-inline stack helpers
4051324a6d ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
47d7e6af5b parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
2aae9b7d07 drm/meson: Fix OSD1 RGB to YCbCr coefficient
5dd9cb66b7 drm/meson: Correct OSD1 global alpha value
f1de50e1db gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
82e276e5fc NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
e0e88c25f8 of: fdt: fix off-by-one error in unflatten_dt_nodes()
366e92d405 Merge branch 'android11-5.4' into branch 'android11-5.4-lts'
79028819d5 Merge 5.4.214 into android11-5.4-lts
04f2440283 Revert "USB: core: Prevent nested device-reset calls"
b4a6b74ba6 Merge 5.4.213 into android11-5.4-lts
d60223937b Revert "io_uring: disable polling pollfree files"
cfe83da8bd Revert "netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y"
184c57f3a5 Revert "sched/deadline: Fix priority inheritance with multiple scheduling classes"
dd54474fff Revert "kernel/sched: Remove dl_boosted flag comment"
d52832d985 Revert "mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse"
51223c9db5 Merge 5.4.212 into android11-5.4-lts
64522c903c Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
9f02aa34e1 Linux 5.4.214
c629ec4ddd tracefs: Only clobber mode/uid/gid on remount if asked
fe26b6ca04 soc: fsl: select FSL_GUTS driver for DPIO
1bd66f1053 net: dp83822: disable rx error interrupt
c128bff9ff mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
bf3cd8f2c6 usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
72b31dc264 platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
0573dc9f15 perf/arm_pmu_platform: fix tests for platform_get_irq() failure
baba0cfc3d nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
161e755552 Input: iforce - add support for Boeder Force Feedback Wheel
a725bc34d8 ieee802154: cc2520: add rc code in cc2520_tx()
2670d1d3f5 tg3: Disable tg3 device on system reboot to avoid triggering AER
c118ae56a5 hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
3e89e8d1c6 HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
7e214f5b2f drm/msm/rd: Fix FIFO-full deadlock
7e17397001 Linux 5.4.213
077041e486 MIPS: loongson32: ls1c: Fix hang during startup
4e8d7039cf x86/nospec: Fix i386 RSB stuffing
64f9755b40 sch_sfb: Also store skb len before calling child enqueue
9d3237b590 tcp: fix early ETIMEDOUT after spurious non-SACK RTO
19816a0214 nvme-tcp: fix UAF when detecting digest errors
a4f0d34580 RDMA/mlx5: Set local port to one when accessing counters
3df71e11a4 ipv6: sr: fix out-of-bounds read when setting HMAC data.
e7f78835d5 RDMA/siw: Pass a pointer to virt_to_page()
5332a09451 i40e: Fix kernel crash during module removal
d488e2baf2 tipc: fix shift wrapping bug in map_get()
279c7668e3 sch_sfb: Don't assume the skb is still around after enqueueing to child
a2f0ff5bee afs: Use the operation issue time instead of the reply time for callbacks
8077a50c8c rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
36f7b71f8a netfilter: nf_conntrack_irc: Fix forged IP logic
323b6847e5 netfilter: br_netfilter: Drop dst references before setting.
367a655f07 RDMA/hns: Fix supported page size
57b2897ec3 soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
87fe1703ba RDMA/cma: Fix arguments order in net device validation
d80ad99911 regulator: core: Clean up on enable failure
c108e20351 ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
e192a08f65 smb3: missing inode locks in punch hole
59c6902a96 cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
13d67aadb1 cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
059516952c cgroup: Optimize single thread migration
d0e7be0dc9 scsi: lpfc: Add missing destroy_workqueue() in error path
5682c94644 scsi: mpt3sas: Fix use-after-free warning
8d66989b5f nvmet: fix a use-after-free
9fc8c5fa42 debugfs: add debugfs_lookup_and_remove()
0d895d2bb1 kprobes: Prohibit probes in gate area
0492798bf8 ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
e275cf3318 ALSA: aloop: Fix random zeros in capture data when using jiffies timer
45321a7d02 ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
adbbc1a8c5 drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
e1955cdd31 fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
fcab25a6b0 arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
a3714415c4 parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
dcf54e6cae parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
c72d97146f drm/radeon: add a force flush to delay work when radeon
ae2c6cc8fb drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
bca46f2295 drm/gem: Fix GEM handle release errors
bd2a3bff31 scsi: megaraid_sas: Fix double kfree()
944f276cbc USB: serial: ch341: fix disabled rx timer on older devices
f0003ab97a USB: serial: ch341: fix lost character on LCR updates
d288c6383a usb: dwc3: disable USB core PHY management
9c670d0bb1 usb: dwc3: fix PHY disable sequence
9ab0c653ef btrfs: harden identification of a stale device
4e5ba186d9 drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
3af1316df7 ALSA: seq: Fix data-race at module auto-loading
4fa63d526c ALSA: seq: oss: Fix data-race for max_midi_devs access
82a86f82bc net: mac802154: Fix a condition in the receive path
d228b897b8 ip: fix triggering of 'icmp redirect'
66689c5c02 wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
1142f04f92 driver core: Don't probe devices after bus_type.match() probe deferral
bb87fe79bc usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
df18750848 USB: core: Prevent nested device-reset calls
87b47c7f9f s390: fix nospec table alignments
b604e79fba s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
33f8f83024 usb-storage: Add ignore-residue quirk for NXP PN7462AU
e2e153bb6d USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
8ef85884f4 usb: dwc2: fix wrong order of phy_power_on and phy_init
08f27a2428 usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
1abdc68b49 USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
3cd8e3448e USB: serial: option: add Quectel EM060K modem
b988c14d7c USB: serial: option: add support for OPPO R11 diag port
234fd17306 USB: serial: cp210x: add Decagon UCA device id
0143b57361 xhci: Add grace period after xHC start to prevent premature runtime suspend.
c7e5a90eee thunderbolt: Use the actual buffer in tb_async_error()
cb2684e906 gpio: pca953x: Add mutex_lock for regcache sync in PM
7756eb1ed1 hwmon: (gpio-fan) Fix array out of bounds access
979fe68b2e clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
389a45dc06 Input: rk805-pwrkey - fix module autoloading
1929a5275e clk: core: Fix runtime PM sequence in clk_core_unprepare()
577b32abfd Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
582e87c6bb clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
5d4acadcdf drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
bc37b05702 usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
30d0901b30 binder: fix UAF of ref->proc caused by race condition
b30dd08fd5 USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
f8632b8bb5 misc: fastrpc: fix memory corruption on open
ec186b9f4a misc: fastrpc: fix memory corruption on probe
0d90ef8749 iio: adc: mcp3911: use correct formula for AD conversion
d186c65599 Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
a6b7e8d975 tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
1cf1930369 vt: Clear selection before changing the font
214877169e powerpc: align syscall table for ppc32
d0aac7146e staging: rtl8712: fix use after free bugs
a65a2a33c6 serial: fsl_lpuart: RS485 RTS polariy is inverse
ae5e8d0baa net/smc: Remove redundant refcount increase
47e6794316 Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
91ecfbcd8d tcp: annotate data-race around challenge_timestamp
f8a94fdf02 sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
0946ff31d1 kcm: fix strp_init() order and cleanup
02986e1bb6 ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
fffa19b5e5 net: sched: tbf: don't call qdisc_put() while holding tree lock
e1ba258dac Revert "xhci: turn off port power in shutdown"
2dca3c6126 wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
bed12d7531 ieee802154/adf7242: defer destroy_workqueue call
ddc6e82321 iio: adc: mcp3911: make use of the sign bit
630a97e4da platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
765497cc74 drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg
fced8363b4 drm/msm/dsi: fix the inconsistent indenting
83b25f9eb2 net: dp83822: disable false carrier interrupt
007541bc27 Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
96f09cd544 fs: only do a memory barrier for the first set_buffer_uptodate()
d51e1682fa net: mvpp2: debugfs: fix memory leak when using debugfs_lookup()
f4c4637a38 wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()
8028ff4cdb efi: capsule-loader: Fix use-after-free in efi_capsule_write
d6deb370b5 Linux 5.4.212
0052348329 net: neigh: don't call kfree_skb() under spin_lock_irqsave()
25a80e7284 net/af_packet: check len when min_header_len equals to 0
fc78b2fc21 io_uring: disable polling pollfree files
b474ff1b20 kprobes: don't call disarm_kprobe() for disabled kprobes
6fbc49b7f0 lib/vdso: Mark do_hres() and do_coarse() as __always_inline
2161d3c12c lib/vdso: Let do_coarse() return 0 to simplify the callsite
06ebb40b87 btrfs: tree-checker: check for overlapping extent items
63c7905840 netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y
5c5cd52ab0 drm/amd/display: Fix pixel clock programming
c570198c3d s390/hypfs: avoid error message under KVM
51be9dd391 neigh: fix possible DoS due to net iface start/stop loop
814b756d4e drm/amd/display: clear optc underflow before turn off odm clock
a06e4eb651 drm/amd/display: Avoid MPC infinite loop
2608885a4f btrfs: unify lookup return value when dir entry is missing
1fe3375cf2 btrfs: do not pin logs too early during renames
e9b4baabf8 btrfs: introduce btrfs_lookup_match_dir
2fe3eee488 mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
8b68e53d56 bpf: Don't redirect packets with invalid pkt_len
934e49f7d6 ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead
7d9591b32a fbdev: fb_pm2fb: Avoid potential divide by zero error
53c7c4d5d4 HID: hidraw: fix memory leak in hidraw_release()
466b67c054 media: pvrusb2: fix memory leak in pvr_probe
63d8c1933e udmabuf: Set the DMA mask for the udmabuf device (v2)
fa2b822d86 HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report
6551fbe258 Bluetooth: L2CAP: Fix build errors in some archs
adc7640e19 kbuild: Fix include path in scripts/Makefile.modpost
80a7fe2b70 x86/bugs: Add "unknown" reporting for MMIO Stale Data
09602177d8 s390/mm: do not trigger write fault when vma does not allow VM_WRITE
c9c5501e81 mm: Force TLB flush for PFNMAP mappings before unlink_file_vma()
b4c928ace9 scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq
2045b9d306 perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
8e7fb19f1a md: call __md_stop_writes in md_stop
f35c4fec07 mm/hugetlb: fix hugetlb not supporting softdirty tracking
f09c1b80df ACPI: processor: Remove freq Qos request for all CPUs
cacd522e66 s390: fix double free of GS and RI CBs on fork() failure
c3862f5592 asm-generic: sections: refactor memory_intersects
13b2856037 loop: Check for overflow while configuring loop
2668aeac01 x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry
dd3365d3b4 btrfs: check if root is readonly while setting security xattr
5b44dcf8b7 btrfs: add info when mount fails due to stale replace target
40554fa41a btrfs: replace: drop assert for suspended replace
201bb5d745 btrfs: fix silent failure when deleting root reference
571a13b350 ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter
aa0a3f72c6 net: Fix a data-race around sysctl_somaxconn.
923fa41ade net: Fix a data-race around netdev_budget_usecs.
adeb24afd2 net: Fix a data-race around netdev_budget.
575c57e9e0 net: Fix a data-race around sysctl_net_busy_read.
6e8f9df62d net: Fix a data-race around sysctl_net_busy_poll.
5da0632c07 net: Fix a data-race around sysctl_tstamp_allow_data.
4482215f93 ratelimit: Fix data-races in ___ratelimit().
a90afeab21 net: Fix data-races around netdev_tstamp_prequeue.
c1d0ef0e6f net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
dbd0f1991a netfilter: nft_tunnel: restrict it to netdev family
fba05d2502 netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
a2ce367ae7 netfilter: nft_payload: do not truncate csum_offset and csum_type
8700153529 netfilter: nft_payload: report ERANGE for too long offset and length
bc7ba4cd0b bnxt_en: fix NQ resource accounting during vf creation on 57500 chips
160c4eb47d netfilter: ebtables: reject blobs that don't provide all entry points
8b9155eae8 net: ipvtap - add __init/__exit annotations to module init/exit funcs
1498077d56 bonding: 802.3ad: fix no transmission of LACPDUs
ac3541b11e net: moxa: get rid of asymmetry in DMA mapping/unmapping
eb8236dff7 net/mlx5e: Properly disable vlan strip on non-UL reps
6e4b20d548 rose: check NULL rose_loopback_neigh->loopback
4c14faf166 SUNRPC: RPC level errors should set task->tk_rpc_status
8ee27a4f0f af_key: Do not call xfrm_probe_algs in parallel
63da7a2bbf xfrm: fix refcount leak in __xfrm_policy_check()
a9f94dc4dd kernel/sched: Remove dl_boosted flag comment
d2b65976bf sched/deadline: Fix priority inheritance with multiple scheduling classes
c498c8cbc2 sched/deadline: Fix stale throttling on de-/boosted tasks
184c8ab534 sched/deadline: Unthrottle PI boosted threads while enqueuing
71b7edfc76 pinctrl: amd: Don't save/restore interrupt status and wake status bits
8e52d0c57d Revert "selftests/bpf: Fix test_align verifier log patterns"
2b13ddc9e0 Revert "selftests/bpf: Fix "dubious pointer arithmetic" test"
a89c4b5868 usb: cdns3: Fix issue for clear halt endpoint
87b41b041c kernel/sys_ni: add compat entry for fadvise64_64
945dc19778 parisc: Fix exception handler for fldw and fstw instructions
bb415d2687 audit: fix potential double free on error path from fsnotify_add_inode_mark
15a2cff2b5 Revert "USB: HCD: Fix URB giveback issue in tasklet function"
05426a3d4f Merge 5.4.211 into android11-5.4-lts
684cc17be8 Linux 5.4.211
473f43725b btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()
6fd4cea044 btrfs: only write the sectors in the vertical stripe which has data stripes
04e41b6bac can: j1939: j1939_session_destroy(): fix memory leak of skbs
18e0ab31b0 can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
5c9637279f tracing/probes: Have kprobes and uprobes use $COMM too
5d8244d42d MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0
2b7f559152 video: fbdev: i740fb: Check the argument of i740_calc_vclk()
5e14b04c84 powerpc/64: Init jump labels before parse_early_param()
720f6112c3 smb3: check xattr value length earlier
29e734ec33 f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()
dd9d894b41 ALSA: timer: Use deferred fasync helper
76f87b11a4 ALSA: core: Add async signal helpers
f4159834d1 powerpc/32: Don't always pass -mcpu=powerpc to the compiler
d78d0ee79b watchdog: export lockup_detector_reconfigure
814d83c5e1 RISC-V: Add fast call path of crash_kexec()
812cb21259 riscv: mmap with PROT_WRITE but no PROT_READ is invalid
1b49707df6 mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start
3e6994735c vfio: Clear the caps->buf to NULL after free
ca3fc1c38e tty: serial: Fix refcount leak bug in ucc_uart.c
3c0efcd608 lib/list_debug.c: Detect uninitialized lists
a6805b3dcf ext4: avoid resizing to a partial cluster size
5bebfd6077 ext4: avoid remove directory when directory is corrupted
f5d46f1b47 drivers:md:fix a potential use-after-free bug
7a2fe15946 nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
0bf3dcfb03 dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed
d13b990d4f selftests/kprobe: Do not test for GRP/ without event failures
082da6a9c3 um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups
c3ce788be3 PCI/ACPI: Guard ARM64-specific mcfg_quirks
695af60af7 cxl: Fix a memory leak in an error handling path
ca06b4cde5 gadgetfs: ep_io - wait until IRQ finishes
927907f1cb scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input
d401611a93 clk: qcom: ipq8074: dont disable gcc_sleep_clk_src
f78ac62e6b vboxguest: Do not use devm for irq
cfa8f707a5 usb: renesas: Fix refcount leak bug
0334d23c56 usb: host: ohci-ppc-of: Fix refcount leak bug
b743d6cef4 drm/meson: Fix overflow implicit truncation warnings
29b30e0413 irqchip/tegra: Fix overflow implicit truncation warnings
e2d5318065 usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info
e65d9b7147 usb: cdns3 fix use-after-free at workaround 2
e7170b5a28 PCI: Add ACS quirk for Broadcom BCM5750x NICs
d58ef25678 drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
d0c4307aea locking/atomic: Make test_and_*_bit() ordered on failure
90fb514a16 gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file
55197ba6d6 igb: Add lock to avoid data race
44b406aab0 fec: Fix timer capture timing in `fec_ptp_enable_pps()`
f861285de8 i40e: Fix to stop tx_timeout recovery if GLOBR fails
781212b344 ice: Ignore EEXIST when setting promisc mode
545ec873f1 net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry
b360ce159c net: moxa: pass pdev instead of ndev to DMA functions
cb1753bc68 net: dsa: mv88e6060: prevent crash on an unused port
ccb0a42d3f powerpc/pci: Fix get_phb_number() locking
b5dd26e073 netfilter: nf_tables: really skip inactive sets when allocating name
f415fda659 clk: rockchip: add sclk_mac_lbtest to rk3188_critical_clocks
ff289f2be5 iavf: Fix adminq error handling
2b4daaed4f nios2: add force_successful_syscall_return()
d6d9dd2cc3 nios2: restarts apply only to the first sigframe we build...
01e783b45e nios2: fix syscall restart checks
9e9151768b nios2: traced syscall does need to check the syscall number
73c0883732 nios2: don't leave NULLs in sys_call_table[]
86a89da5cd nios2: page fault et.al. are *not* restartable syscalls...
965333345f tee: add overflow check in register_shm_helper()
cfa215a76a dpaa2-eth: trace the allocated address instead of page struct
9a6cbaa50f atm: idt77252: fix use-after-free bugs caused by tst_timer
2f14656fe1 xen/xenbus: fix return type in xenbus_file_read()
c61d3b92f5 nfp: ethtool: fix the display error of `ethtool -m DEVNAME`
a1d13886fd NTB: ntb_tool: uninitialized heap data in tool_fn_write()
215cbd3c0d tools build: Switch to new openssl API for test-libcrypto
a91204264e tools/vm/slabinfo: use alphabetic order when two values are equal
12f777a957 dt-bindings: arm: qcom: fix MSM8916 MTP compatibles
0ecc55fece vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()
f82f1e2042 vsock: Fix memory leak in vsock_connect()
f4f2acf012 plip: avoid rcu debug splat
85b5747321 geneve: do not use RT_TOS for IPv6 flowlabel
760a01c36b ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool
49c1ae5fc8 pinctrl: sunxi: Add I/O bias setting for H6 R-PIO
b0de3436ca pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed
c26012a1e6 pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map
ac6d4482f2 net: bgmac: Fix a BUG triggered by wrong bytes_compl
1ad4ba9341 devlink: Fix use-after-free after a failed reload
c1bdc6de51 SUNRPC: Reinitialise the backchannel request buffers before reuse
b0e2839873 sunrpc: fix expiry of auth creds
0a901c2f7f can: mcp251x: Fix race condition on receive interrupt
f7ee3b772d NFSv4/pnfs: Fix a use-after-free bug in open
14b5a92e33 NFSv4.1: RECLAIM_COMPLETE must handle EACCES
89dd9bec66 NFSv4: Fix races in the legacy idmapper upcall
e7eba28ba7 NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly
68a84001f7 NFSv4.1: Don't decrease the value of seq_nr_highest_sent
2c8477600c Documentation: ACPI: EINJ: Fix obsolete example
7db182a2eb apparmor: Fix memleak in aa_simple_write_to_buffer()
ef6fb6f0d0 apparmor: fix reference count leak in aa_pivotroot()
7f6092dc8f apparmor: fix overlapping attachment computation
98ab8dfa04 apparmor: fix aa_label_asxprint return check
1b4c44823a apparmor: Fix failed mount permission check error message
825b0f6bb0 apparmor: fix absroot causing audited secids to begin with =
dd78c35a27 apparmor: fix quiet_denied for file rules
45be56968d can: ems_usb: fix clang's -Wunaligned-access warning
f67c43e4b1 tracing: Have filter accept "common_cpu" to be consistent
90b0526dd8 btrfs: fix lost error handling when looking up extended ref on log replay
d33e770f0a mmc: pxamci: Fix an error handling path in pxamci_probe()
6db5285844 mmc: pxamci: Fix another error handling path in pxamci_probe()
b1b2b8adb0 ata: libata-eh: Add missing command name
70e0c8a454 rds: add missing barrier to release_refill
d040e85ae9 ALSA: info: Fix llseek return value when using callback
992480132e net_sched: cls_route: disallow handle of 0
7d9d0ba99c net/9p: Initialize the iounit field during fid creation
13e17a18a4 Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
4d5e45fdf0 Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"
f135c65085 scsi: sg: Allow waiting for commands to complete on removed device
cf218ff991 tcp: fix over estimation in sk_forced_mem_schedule()
8cdba919ac KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()
8fb5e77604 KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
4c08dd3fbd KVM: Add infrastructure and macro to mark VM as bugged
8659026858 btrfs: reject log replay if there is unsupported RO compat flag
1fcd691cc2 net_sched: cls_route: remove from list when handle is 0
b123049846 iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE)
18048cba44 firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails
7c77d1f9ba timekeeping: contribute wall clock to rng on time change
5e0fcc5ad3 ACPI: CPPC: Do not prevent CPPC from working in the future
2c7e93e338 dm writecache: set a default MAX_WRITEBACK_JOBS
05cef0999b dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
cb583ca612 dm raid: fix address sanitizer warning in raid_status
71f601c779 dm raid: fix address sanitizer warning in raid_resume
2f2fa48c9f intel_th: pci: Add Meteor Lake-P support
ab1f9cb500 intel_th: pci: Add Raptor Lake-S PCH support
0d8fd1fa17 intel_th: pci: Add Raptor Lake-S CPU support
8887ef07ff ext4: correct the misjudgment in ext4_iget_extra_inode
be9614e15e ext4: correct max_inline_xattr_value_size computing
b9a2dfd1a0 ext4: fix extent status tree race in writeback error recovery path
b10b2122d7 ext4: update s_overhead_clusters in the superblock during an on-line resize
9d14687321 ext4: fix use-after-free in ext4_xattr_set_entry
41ff115b14 ext4: make sure ext4_append() always allocates new block
748d17d476 ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
025604c702 btrfs: reset block group chunk force if we have to wait
cf8927ce66 tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH
61a1793b05 kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification
37690cb866 spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
91d11a3376 x86/olpc: fix 'logical not is only applied to the left hand side'
42afeecce2 scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection
d2e82c78e3 scsi: qla2xxx: Turn off multi-queue for 8G adapters
83cb0fb848 scsi: qla2xxx: Fix discovery issues in FC-AL topology
bc98764d80 scsi: zfcp: Fix missing auto port scan and thus missing target ports
eacb50f173 video: fbdev: s3fb: Check the size of screen before memset_io()
53198b8193 video: fbdev: arkfb: Check the size of screen before memset_io()
d71528ccdc video: fbdev: vt8623fb: Check the size of screen before memset_io()
09777c16a0 tools/thermal: Fix possible path truncations
a249e1b89c video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
46513b4a80 x86/numa: Use cpumask_available instead of hardcoded NULL check
26d2d13d9f scripts/faddr2line: Fix vmlinux detection on arm64
563ffb782d genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO
9813d27d59 powerpc/pci: Fix PHB numbering when using opal-phbid
6a119c1a58 kprobes: Forbid probing on trampoline and BPF code areas
cc53477d89 perf symbol: Fail to read phdr workaround
f388643657 powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
d99733ad47 powerpc/xive: Fix refcount leak in xive_get_max_prio
14329d29a0 powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader
3ec50b8a01 powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias
44a43b65d7 powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32
ddaa8cc5a6 video: fbdev: sis: fix typos in SiS_GetModeID()
49a4c1a87e video: fbdev: amba-clcd: Fix refcount leak bugs
a9286ff4c1 watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
ba406e3100 ASoC: audio-graph-card: Add of_node_put() in fail path
bb1cc434df fuse: Remove the control interface for virtio-fs
0839846274 ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
3edcd1348b s390/zcore: fix race when reading from hardware system area
50be644f7d iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
b948ff8a9e mfd: max77620: Fix refcount leak in max77620_initialise_fps
8d01edaf9e mfd: t7l66xb: Drop platform disable callback
b45bcdf627 kfifo: fix kfifo_to_user() return type
8ee5d40ae2 rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
9a87a53284 iommu/exynos: Handle failed IOMMU device registration properly
44913ccfa1 tty: n_gsm: fix missing corner cases in gsmld_poll()
ae9bfcbfd7 tty: n_gsm: fix DM command
b625b74549 tty: n_gsm: fix wrong T1 retry count handling
373343d8a7 vfio/ccw: Do not change FSM state in subchannel event
51642e1328 remoteproc: qcom: wcnss: Fix handling of IRQs
fbf9795646 tty: n_gsm: fix race condition in gsmld_write()
597bec4a4c tty: n_gsm: fix packet re-transmission without open control channel
ba10f6c2f0 tty: n_gsm: fix non flow control frames during mux flow off
8b355d6b1f profiling: fix shift too large makes kernel panic
8791703edd ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV
ba4d971fe1 ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
34734e4c52 serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()
79f566907d ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
4f97b5bb81 ASoC: codecs: da7210: add check for i2c_add_driver
b488ceb233 ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
d6d41f0464 ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
d3f15a4be2 opp: Fix error check in dev_pm_opp_attach_genpd()
fa5b65d393 jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted
fc1ec67ba5 ext4: recover csum seed of tmp_inode after migrating to extents
36a88efe87 jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction()
242303bf7f null_blk: fix ida error handling in null_add_dev()
b348e204a5 RDMA/rxe: Fix error unwind in rxe_create_qp()
38403d143d mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
d3beb91c99 platform/olpc: Fix uninitialized data in debugfs write
358db0ebec USB: serial: fix tty-port initialized comments
06f56d9e74 PCI: tegra194: Fix link up retry sequence
f916f6e039 PCI: tegra194: Fix Root Port interrupt handling
ed44d9ce8c HID: alps: Declare U1_UNICORN_LEGACY support
46f5458211 mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
d0cc1ba2be mmc: cavium-octeon: Add of_node_put() when breaking out of loop
b100b0b002 gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
2f90813f1c RDMA/hfi1: fix potential memory leak in setup_base_ctxt()
11edf0bba1 RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event
fb9193af53 RDMA/hns: Fix incorrect clearing of interrupt status register
414849317b usb: gadget: udc: amd5536 depends on HAS_DMA
bc6f609401 scsi: smartpqi: Fix DMA direction for RAID requests
b1b8034953 mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
9d8b911fe3 memstick/ms_block: Fix a memory leak
830c38ec9a memstick/ms_block: Fix some incorrect memory allocation
4c472a2c9e mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
6bb0f10966 staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
b5d924cb4c intel_th: msu: Fix vmalloced buffers
d81195c474 intel_th: msu-sink: Potential dereference of null pointer
859342220a intel_th: Fix a resource leak in an error handling path
3771ee6c46 soundwire: bus_type: fix remove and shutdown support
2fcb7182de clk: qcom: camcc-sdm845: Fix topology around titan_top power domain
7dc9eb967a clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
5780dde510 clk: qcom: ipq8074: fix NSS port frequency tables
15f4d52835 usb: host: xhci: use snprintf() in xhci_decode_trb()
7cfb3120ec clk: qcom: clk-krait: unlock spin after mux completion
8191b6cd9a driver core: fix potential deadlock in __driver_attach
be8f7c44d5 misc: rtsx: Fix an error handling path in rtsx_pci_probe()
507cabdb36 clk: mediatek: reset: Fix written reset bit offset
9ecabd76bf usb: xhci: tegra: Fix error check
65d36ec409 usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
8cbc3870ff usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
8e88b42575 fpga: altera-pr-ip: fix unsigned comparison with less than zero
44ffee3979 mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
f3cc27198c mtd: partitions: Fix refcount leak in parse_redboot_of
a1cdbd344f mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
519ff31a6d HID: cp2112: prevent a buffer overflow in cp2112_xfer()
1367f4a3e6 mtd: rawnand: meson: Fix a potential double free issue
80b1465b2a mtd: maps: Fix refcount leak in ap_flash_init
9124d51e01 mtd: maps: Fix refcount leak in of_flash_probe_versatile
e0012773af clk: renesas: r9a06g032: Fix UART clkgrp bitsel
51fb8c2c10 dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock
d3b2922637 net: rose: fix netdev reference changes
34b88491b4 netdevsim: Avoid allocation warnings triggered from user space
9d9e0d5560 iavf: Fix max_rate limiting
50a7949fd9 crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
439297ec5c net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS
878e7f3980 wifi: libertas: Fix possible refcount leak in if_usb_probe()
5cca5f714f wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue
52b11a48cf wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()`
becbc82919 i2c: mux-gpmux: Add of_node_put() when breaking out of loop
6d9f3128c0 i2c: cadence: Support PEC for SMBus block read
80df14022c Bluetooth: hci_intel: Add check for platform_driver_register
26168f0656 can: pch_can: pch_can_error(): initialize errc before using it
a025f6ca15 can: error: specify the values of data[5..7] of CAN error frames
61bcc556ff can: usb_8dev: do not report txerr and rxerr during bus-off
d8833eaa5f can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
a37e2bad76 can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
80b135a023 can: sun4i_can: do not report txerr and rxerr during bus-off
d20bf7e761 can: hi311x: do not report txerr and rxerr during bus-off
e94369cdc0 can: sja1000: do not report txerr and rxerr during bus-off
5b9d4919a7 can: rcar_can: do not report txerr and rxerr during bus-off
4cb29f25b2 can: pch_can: do not report txerr and rxerr during bus-off
ecbdb2985e selftests/bpf: fix a test for snprintf() overflow
e134d998a9 wifi: p54: add missing parentheses in p54_flush()
6942c45a22 wifi: p54: Fix an error handling path in p54spi_probe()
60c9983425 wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi()
72d9ce5b08 fs: check FMODE_LSEEK to control internal pipe splicing
8cf6e837dc selftests: timers: clocksource-switch: fix passing errors from child
2f243fe8db selftests: timers: valid-adjtimex: build fix for newer toolchains
8ebe6121e7 libbpf: Fix the name of a reused map
fd35e34ece tcp: make retransmitted SKB fit into the send window
6296d09d2b drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed.
1ae9edf7e8 mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
e86a88d39c media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment
cf411bcc65 crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq
2e34d6c818 drm/msm/mdp5: Fix global state lock backoff
5d4128a163 drm: bridge: sii8620: fix possible off-by-one
3a7ebe131c drm/mediatek: dpi: Only enable dpi after the bridge is enabled
42c8e38e86 drm/mediatek: dpi: Remove output format of YUV
0f214563ab drm/rockchip: Fix an error handling path rockchip_dp_probe()
3345fd3533 drm/rockchip: vop: Don't crash for invalid duplicate_state()
9f64fb4551 crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE
b53cbaf9b3 drm/vc4: dsi: Correct DSI divider calculations
120161c127 drm/vc4: plane: Fix margin calculations for the right/bottom edges
84f638fbf8 drm/vc4: plane: Remove subpixel positioning check
59340f399c media: hdpvr: fix error value returns in hdpvr_read
87c35bbefd drm/mcde: Fix refcount leak in mcde_dsi_bind
289079d6c5 drm: bridge: adv7511: Add check for mipi_dsi_driver_register
73304c7594 wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
e9e21206b8 ath9k: fix use-after-free in ath9k_hif_usb_rx_cb
fef3261630 media: tw686x: Register the irq at the end of probe
871a1e9492 i2c: Fix a potential use after free
127ecd6b1f drm: adv7511: override i2c address of cec before accessing it
8cdf42c7ba drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function
db1a9add3f drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
6a5ade10a3 drm/mipi-dbi: align max_chunk to 2 in spi_transfer
f52b31ecaf wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
c59876f8c9 ath10k: do not enforce interrupt trigger type
08cc3995fb dm: return early from dm_pr_call() if DM device is suspended
bc4e8b95c4 thermal/tools/tmon: Include pthread and time headers in tmon.h
91732a2794 nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
35f9e861d9 regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
52e1f85bf7 blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created
bee4d2ab4d erofs: avoid consecutive detection for Highmem memory
62060951cc arm64: dts: mt7622: fix BPI-R64 WPS button
8501674394 bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
3d69823858 ARM: dts: qcom: pm8841: add required thermal-sensor-cells
bc73c72a85 soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register
a530fa52d4 cpufreq: zynq: Fix refcount leak in zynq_get_revision
c4f92af7fc ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
935035cf97 ARM: OMAP2+: Fix refcount leak in omapdss_init_of
b95e19f1ec ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg
1f0448cb8a soc: fsl: guts: machine variable might be unset
1e9cc69eae ARM: dts: ast2600-evb: fix board compatible
4a4bb53e63 ARM: dts: ast2500-evb: fix board compatible
0b7f674c12 x86/pmem: Fix platform-device leak in error path
5afe042c88 ARM: bcm: Fix refcount leak in bcm_kona_smc_init
6b28bf3e04 meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
ef5102a0a7 ARM: findbit: fix overflowing offset
c7835f93db spi: spi-rspi: Fix PIO fallback on RZ platforms
90bdf50ae7 selinux: Add boundary check in put_entry()
3c48d3067e PM: hibernate: defer device probing when resuming from hibernation
930e7b260e ARM: shmobile: rcar-gen2: Increase refcount for new reference
a770da1866 arm64: dts: allwinner: a64: orangepi-win: Fix LED node name
5f1510dd2f arm64: dts: qcom: ipq8074: fix NAND node name
308bb82c61 ACPI: LPSS: Fix missing check in register_device_clock()
b61119d085 ACPI: PM: save NVS memory for Lenovo G40-45
81abef841f ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks
3e505298a7 ARM: OMAP2+: display: Fix refcount leak bug
749ee1c4c3 spi: synquacer: Add missing clk_disable_unprepare()
f7e6740e1e ARM: dts: imx6ul: fix qspi node compatible
5db7e1796d ARM: dts: imx6ul: fix lcdif node compatible
82cff0cf71 ARM: dts: imx6ul: fix csi node compatible
667023a284 ARM: dts: imx6ul: change operating-points to uint32-matrix
a6e6203616 ARM: dts: imx6ul: add missing properties for sram
bd80dd86f9 wait: Fix __wait_event_hrtimeout for RT/DL tasks
3fb368c0ae genirq: Don't return error on missing optional irq_request_resources()
b3f4236838 ext2: Add more validity checks for inode counts
04549063d5 arm64: fix oops in concurrently setting insn_emulation sysctls
fa09c39265 arm64: Do not forget syscall when starting a new thread.
c5940c0821 x86: Handle idle=nomwait cmdline properly for x86_idle
cf2db24ec4 epoll: autoremove wakers even more aggressively
a452bc3deb netfilter: nf_tables: fix null deref due to zeroed list head
4dad1c8207 netfilter: nf_tables: do not allow RULE_ID to refer to another chain
fab2f61cc3 netfilter: nf_tables: do not allow SET_ID to refer to another table
cc525d667b arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC
57e2c84445 ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC
5d952c7ae3 USB: HCD: Fix URB giveback issue in tasklet function
e9205d8dd1 coresight: Clear the connection field properly
274e44e212 MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
dbd0059018 powerpc/powernv: Avoid crashing if rng is NULL
5b8f55bc05 powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E
28a6d14ba6 powerpc/fsl-pci: Fix Class Code of PCIe Root Port
9293b7ee52 PCI: Add defines for normal and subtractive PCI bridges
8c3ae6b1d7 ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
ce839b9331 md-raid10: fix KASAN warning
ecd489683a serial: mvebu-uart: uart2 error bits clearing
d11e3f4fdc fuse: limit nsec
ed43fb20d3 iio: light: isl29028: Fix the warning in isl29028_remove()
a5b8aad548 drm/amdgpu: Check BO's requested pinning domains against its preferred_domains
8afbf206aa drm/nouveau: fix another off-by-one in nvbios_addr
5557e9469b drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
b8f3830cd9 parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode
d7ba24d3a8 parisc: Fix device names in /proc/iomem
a7573260ad ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()
8b4588b8b0 usbnet: Fix linkwatch use-after-free on disconnect
2afb553d68 fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
6f9cd356eb thermal: sysfs: Fix cooling_device_stats_setup() error code path
a698d2fa85 fs: Add missing umask strip in vfs_tmpfile
e2a231454e vfs: Check the truncate maximum size in inode_newsize_ok()
cc9e874dac tty: vt: initialize unicode screen buffer
9e274a4f60 ALSA: hda/realtek: Add quirk for another Asus K42JZ model
495f153c15 ALSA: hda/cirrus - support for iMac 12,1 model
f4f2d3742b ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model
79e522101c mm/mremap: hold the rmap lock in write mode when moving page table entries.
731436e1ee KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
914a274320 KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
7835986587 KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value
68e1313bb8 KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
e40bde8a28 KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case
c841dfce0b KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case
717c93c7f6 HID: wacom: Don't register pad_input for touch switch
0ca140b284 HID: wacom: Only report rotation for art pen
d14b6fe911 add barriers to buffer_uptodate and set_buffer_uptodate
6f3342a5e8 wifi: mac80211_hwsim: use 32-bit skb cookie
4f4bf4e52b wifi: mac80211_hwsim: add back erroneously removed cast
84014008bc wifi: mac80211_hwsim: fix race condition in pending packet
ae52cf801a igc: Remove _I_PHY_ID checking
05e0bb8c3c ALSA: bcd2000: Fix a UAF bug on the error path of probing
58e337d27f scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover"
013acaa597 x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments
635e8e6f68 Makefile: link with -z noexecstack --no-warn-rwx-segments

Change-Id: I160e4fdc055e7b7708c84eb279f26cce9da6915d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2022-11-29 09:10:07 +00:00
Wenchao Chen
a6768f02c5 UPSTREAM: mmc: hsq: Fix data stomping during mmc recovery
The block device uses multiple queues to access emmc. There will be up to 3
requests in the hsq of the host. The current code will check whether there
is a request doing recovery before entering the queue, but it will not check
whether there is a request when the lock is issued. The request is in recovery
mode. If there is a request in recovery, then a read and write request is
initiated at this time, and the conflict between the request and the recovery
request will cause the data to be trampled.

Bug: 254441685
Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
Fixes: 511ce378e16f ("mmc: Add MMC host software queue support")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220916090506.10662-1-wenchao.chen666@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit e7afa79a3b35a27a046a2139f8b20bd6b98155c2)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I031ad3f8e41937a6285926f9b87592f510ba9d7c
2022-11-22 07:58:44 +00:00
Michael Wu
c08e708d2b UPSTREAM: pinctrl: sunxi: Fix name for A100 R_PIO
The name of A100 R_PIO driver should be sun50i-a100-r-pinctrl,
not sun50iw10p1-r-pinctrl.

Bug: 254441685
Fixes: 473436e7647d6 ("pinctrl: sunxi: add support for the Allwinner A100 pin controller")
Signed-off-by: Michael Wu <michael@allwinnertech.com>
Acked-by: Samuel Holland <samuel@sholland.org>
Link: https://lore.kernel.org/r/20220819024541.74191-1-michael@allwinnertech.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 76648c867c6c03b8a468d9c9222025873ecc613d)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I0499eb9db03b7b1c267c722b7f620e427d207850
2022-11-22 07:58:44 +00:00
Adrian Hunter
b45868d624 BACKPORT: mmc: core: Fix UHS-I SD 1.8V workaround branch
When introduced, upon success, the 1.8V fixup workaround in
mmc_sd_init_card() would branch to practically the end of the function, to
a label named "done". Unfortunately, perhaps due to the label name, over
time new code has been added that really should have come after "done" not
before it. Let's fix the problem by moving the label to the correct place
and rename it "cont".

Bug: 254441685
Fixes: 045d705dc1fb ("mmc: core: Enable the MMC host software queue for the SD card")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Seunghui Lee <sh043.lee@samsung.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220815073321.63382-2-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 15c56208c79c340686869c31595c209d1431c5e8)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I95b5445f74710ac4623611efb7f3cba59b2264a9
2022-11-22 07:58:44 +00:00
Luiz Augusto von Dentz
4f0ce36d86 UPSTREAM: Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression
The patch d0be8347c623: "Bluetooth: L2CAP: Fix use-after-free caused
by l2cap_chan_put" from Jul 21, 2022, leads to the following Smatch
static checker warning:

        net/bluetooth/l2cap_core.c:1977 l2cap_global_chan_by_psm()
        error: we previously assumed 'c' could be null (see line 1996)

Bug: 254441685
Fixes: d0be8347c623 ("Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
(cherry picked from commit 332f1795ca202489c665a75e62e18ff6284de077)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I20b471b7348f5907427918792e77fa7543da51a4
2022-11-22 07:58:44 +00:00
Johannes Berg
624ab3a0c0 UPSTREAM: wifi: mac80211_hwsim: set virtio device ready in probe()
Just like a similar commit to arch/um/drivers/virt-pci.c, call
virtio_device_ready() to make this driver work after commit
b4ec69d7e09 ("virtio: harden vring IRQ"), since the driver uses
the virtqueues in the probe function.  (The virtio core sets
the device ready when probe returns.)

Bug: 254441685
Fixes: 8b4ec69d7e09 ("virtio: harden vring IRQ")
Fixes: 5d44fe7c9808 ("mac80211_hwsim: add frame transmission support over virtio")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20220613210401.327958-1-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
(cherry picked from commit 3f3558c8054f82950b6decf928738306f556edf3)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia813ad70f2aa9908d8756bcfe9be17f86a0f5ec2
2022-11-22 07:58:44 +00:00
Eric Biggers
de960e4e26 BACKPORT: f2fs: don't use casefolded comparison for "." and ".."
Tryng to rename a directory that has all following properties fails with
EINVAL and triggers the 'WARN_ON_ONCE(!fscrypt_has_encryption_key(dir))'
in f2fs_match_ci_name():

    - The directory is casefolded
    - The directory is encrypted
    - The directory's encryption key is not yet set up
    - The parent directory is *not* encrypted

The problem is incorrect handling of the lookup of ".." to get the
parent reference to update.  fscrypt_setup_filename() treats ".." (and
".") specially, as it's never encrypted.  It's passed through as-is, and
setting up the directory's key is not attempted.  As the name isn't a
no-key name, f2fs treats it as a "normal" name and attempts a casefolded
comparison.  That breaks the assumption of the WARN_ON_ONCE() in
f2fs_match_ci_name() which assumes that for encrypted directories,
casefolded comparisons only happen when the directory's key is set up.

We could just remove this WARN_ON_ONCE().  However, since casefolding is
always a no-op on "." and ".." anyway, let's instead just not casefold
these names.  This results in the standard bytewise comparison.

Bug: 254441685
Fixes: 7ad08a58bf67 ("f2fs: Handle casefolding with Encryption")
Cc: <stable@vger.kernel.org> # v5.11+
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit b5639bb4313b9d455fc9fc4768d23a5e4ca8cb9d)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ib4b2519957e016898655936fc6137dd411b5b40c
2022-11-22 07:58:43 +00:00
Dong Aisheng
c219b2d3f5 UPSTREAM: Revert "mm/cma.c: remove redundant cma_mutex lock"
This reverts commit a4efc174b382fcdb which introduced a regression issue
that when there're multiple processes allocating dma memory in parallel by
calling dma_alloc_coherent(), it may fail sometimes as follows:

Error log:
cma: cma_alloc: linux,cma: alloc failed, req-size: 148 pages, ret: -16
cma: number of available pages:
3@125+20@172+12@236+4@380+32@736+17@2287+23@2473+20@36076+99@40477+108@40852+44@41108+20@41196+108@41364+108@41620+
108@42900+108@43156+483@44061+1763@45341+1440@47712+20@49324+20@49388+5076@49452+2304@55040+35@58141+20@58220+20@58284+
7188@58348+84@66220+7276@66452+227@74525+6371@75549=> 33161 free of 81920 total pages

When issue happened, we saw there were still 33161 pages (129M) free CMA
memory and a lot available free slots for 148 pages in CMA bitmap that we
want to allocate.

When dumping memory info, we found that there was also ~342M normal
memory, but only 1352K CMA memory left in buddy system while a lot of
pageblocks were isolated.

Memory info log:
Normal free:351096kB min:30000kB low:37500kB high:45000kB reserved_highatomic:0KB
	    active_anon:98060kB inactive_anon:98948kB active_file:60864kB inactive_file:31776kB
	    unevictable:0kB writepending:0kB present:1048576kB managed:1018328kB mlocked:0kB
	    bounce:0kB free_pcp:220kB local_pcp:192kB free_cma:1352kB lowmem_reserve[]: 0 0 0
Normal: 78*4kB (UECI) 1772*8kB (UMECI) 1335*16kB (UMECI) 360*32kB (UMECI) 65*64kB (UMCI)
	36*128kB (UMECI) 16*256kB (UMCI) 6*512kB (EI) 8*1024kB (UEI) 4*2048kB (MI) 8*4096kB (EI)
	8*8192kB (UI) 3*16384kB (EI) 8*32768kB (M) = 489288kB

The root cause of this issue is that since commit a4efc174b382 ("mm/cma.c:
remove redundant cma_mutex lock"), CMA supports concurrent memory
allocation.  It's possible that the memory range process A trying to alloc
has already been isolated by the allocation of process B during memory
migration.

The problem here is that the memory range isolated during one allocation
by start_isolate_page_range() could be much bigger than the real size we
want to alloc due to the range is aligned to MAX_ORDER_NR_PAGES.

Taking an ARMv7 platform with 1G memory as an example, when
MAX_ORDER_NR_PAGES is big (e.g.  32M with max_order 14) and CMA memory is
relatively small (e.g.  128M), there're only 4 MAX_ORDER slot, then it's
very easy that all CMA memory may have already been isolated by other
processes when one trying to allocate memory using dma_alloc_coherent().
Since current CMA code will only scan one time of whole available CMA
memory, then dma_alloc_coherent() may easy fail due to contention with
other processes.

This patch simply falls back to the original method that using cma_mutex
to make alloc_contig_range() run sequentially to avoid the issue.

Bug: 254441685
Link: https://lkml.kernel.org/r/20220509094551.3596244-1-aisheng.dong@nxp.com
Link: https://lore.kernel.org/all/20220315144521.3810298-2-aisheng.dong@nxp.com/
Fixes: a4efc174b382 ("mm/cma.c: remove redundant cma_mutex lock")
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Lecopzer Chen <lecopzer.chen@mediatek.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>	[5.11+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 60a60e32cf91169840abcb4a80f0b0df31708ba7)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie0bcde1f809dbaf34d4cf56d564c3c4a76be2931
2022-11-22 07:58:43 +00:00
Sven Peter
bcbaf126b8 UPSTREAM: usb: dwc3: Try usb-role-switch first in dwc3_drd_init
If the PHY controller node has a "port" dwc3 tries to find an
extcon device even when "usb-role-switch" is present. This happens
because dwc3_get_extcon() sees that "port" node and then calls
extcon_find_edev_by_node() which will always return EPROBE_DEFER
in that case.

On the other hand, even if an extcon was present and dwc3_get_extcon()
was successful it would still be ignored in favor of "usb-role-switch".

Let's just first check if "usb-role-switch" is configured in the device
tree and directly use it instead and only try to look for an extcon
device otherwise.

Bug: 254441685
Fixes: 8a0a13799744 ("usb: dwc3: Registering a role switch in the DRD code.")
Cc: stable <stable@kernel.org>
Signed-off-by: Sven Peter <sven@svenpeter.dev>
Link: https://lore.kernel.org/r/20220411155300.9766-1-sven@svenpeter.dev
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit ab7aa2866d295438dc60522f85c5421c6b4f1507)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I394fbcaf90a5a37b3a22c309dd46fd46d7510442
2022-11-22 07:58:43 +00:00
Heikki Krogerus
2117e7c78a BACKPORT: usb: typec: ucsi: Fix reuse of completion structure
The role swapping completion variable is reused, so it needs
to be reinitialised every time. Otherwise it will be marked
as done after the first time it's used and completing
immediately.

Bug: 254441685
Link: https://lore.kernel.org/linux-usb/20220325203959.GA19752@jackp-linux.qualcomm.com/
Fixes: 6df475f804e6 ("usb: typec: ucsi: Start using struct typec_operations")
Cc: stable@vger.kernel.org
Reported-and-suggested-by: Jack Pham <quic_jackp@quicinc.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20220405134824.68067-2-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit e25adcca917d7e4cdc1dc6444d0692ffda7594bf)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I2213ab8733a17495198c09fbf990ecc9de991ab2
2022-11-22 07:58:43 +00:00
Tung Nguyen
ef283814b2 BACKPORT: tipc: fix incorrect order of state message data sanity check
When receiving a state message, function tipc_link_validate_msg()
is called to validate its header portion. Then, its data portion
is validated before it can be accessed correctly. However, current
data sanity  check is done after the message header is accessed to
update some link variables.

This commit fixes this issue by moving the data sanity check to
the beginning of state message handling and right after the header
sanity check.

Bug: 254441685
Fixes: 9aa422ad3266 ("tipc: improve size validations for received domain records")
Acked-by: Jon Maloy <jmaloy@redhat.com>
Signed-off-by: Tung Nguyen <tung.q.nguyen@dektech.com.au>
Link: https://lore.kernel.org/r/20220308021200.9245-1-tung.q.nguyen@dektech.com.au
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit c79fcc27be90b308b3fa90811aefafdd4078668c)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: If6cff72e268879445b388c957810263c59488718
2022-11-22 07:58:43 +00:00
lena wang
c5f9da53b8 UPSTREAM: net: fix up skbs delta_truesize in UDP GRO frag_list
The truesize for a UDP GRO packet is added by main skb and skbs in main
skb's frag_list:
skb_gro_receive_list
        p->truesize += skb->truesize;

The commit 53475c5dd856 ("net: fix use-after-free when UDP GRO with
shared fraglist") introduced a truesize increase for frag_list skbs.
When uncloning skb, it will call pskb_expand_head and trusesize for
frag_list skbs may increase. This can occur when allocators uses
__netdev_alloc_skb and not jump into __alloc_skb. This flow does not
use ksize(len) to calculate truesize while pskb_expand_head uses.
skb_segment_list
err = skb_unclone(nskb, GFP_ATOMIC);
pskb_expand_head
        if (!skb->sk || skb->destructor == sock_edemux)
                skb->truesize += size - osize;

If we uses increased truesize adding as delta_truesize, it will be
larger than before and even larger than previous total truesize value
if skbs in frag_list are abundant. The main skb truesize will become
smaller and even a minus value or a huge value for an unsigned int
parameter. Then the following memory check will drop this abnormal skb.

To avoid this error we should use the original truesize to segment the
main skb.

Bug: 254441685
Fixes: 53475c5dd856 ("net: fix use-after-free when UDP GRO with shared fraglist")
Signed-off-by: lena wang <lena.wang@mediatek.com>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/1646133431-8948-1-git-send-email-lena.wang@mediatek.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 224102de2ff105a2c05695e66a08f4b5b6b2d19c)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Id29a1108ec7fa4d50992236c291bb143688d4332
2022-11-22 07:58:43 +00:00
Michal Koutný
f644f48276 UPSTREAM: cgroup-v1: Correct privileges check in release_agent writes
The idea is to check: a) the owning user_ns of cgroup_ns, b)
capabilities in init_user_ns.

The commit 24f600856418 ("cgroup-v1: Require capabilities to set
release_agent") got this wrong in the write handler of release_agent
since it checked user_ns of the opener (may be different from the owning
user_ns of cgroup_ns).
Secondly, to avoid possibly confused deputy, the capability of the
opener must be checked.

Bug: 254441685
Fixes: 24f600856418 ("cgroup-v1: Require capabilities to set release_agent")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/stable/20220216121142.GB30035@blackbody.suse.cz/
Signed-off-by: Michal Koutný <mkoutny@suse.com>
Reviewed-by: Masami Ichikawa(CIP) <masami.ichikawa@cybertrust.co.jp>
Signed-off-by: Tejun Heo <tj@kernel.org>
(cherry picked from commit 467a726b754f474936980da793b4ff2ec3e382a7)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I486cd82ec93faca71107dcdc21de6f8aa422daf5
2022-11-22 07:58:43 +00:00
Linus Torvalds
cb59d054a9 UPSTREAM: mm: don't try to NUMA-migrate COW pages that have other uses
Oded Gabbay reports that enabling NUMA balancing causes corruption with
his Gaudi accelerator test load:

 "All the details are in the bug, but the bottom line is that somehow,
  this patch causes corruption when the numa balancing feature is
  enabled AND we don't use process affinity AND we use GUP to pin pages
  so our accelerator can DMA to/from system memory.

  Either disabling numa balancing, using process affinity to bind to
  specific numa-node or reverting this patch causes the bug to
  disappear"

and Oded bisected the issue to commit 09854ba94c6a ("mm: do_wp_page()
simplification").

Now, the NUMA balancing shouldn't actually be changing the writability
of a page, and as such shouldn't matter for COW.  But it appears it
does.  Suspicious.

However, regardless of that, the condition for enabling NUMA faults in
change_pte_range() is nonsensical.  It uses "page_mapcount(page)" to
decide if a COW page should be NUMA-protected or not, and that makes
absolutely no sense.

The number of mappings a page has is irrelevant: not only does GUP get a
reference to a page as in Oded's case, but the other mappings migth be
paged out and the only reference to them would be in the page count.

Since we should never try to NUMA-balance a page that we can't move
anyway due to other references, just fix the code to use 'page_count()'.
Oded confirms that that fixes his issue.

Now, this does imply that something in NUMA balancing ends up changing
page protections (other than the obvious one of making the page
inaccessible to get the NUMA faulting information).  Otherwise the COW
simplification wouldn't matter - since doing the GUP on the page would
make sure it's writable.

The cause of that permission change would be good to figure out too,
since it clearly results in spurious COW events - but fixing the
nonsensical test that just happened to work before is obviously the
CorrectThing(tm) to do regardless.

Bug: 254441685
Fixes: 09854ba94c6a ("mm: do_wp_page() simplification")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=215616
Link: https://lore.kernel.org/all/CAFCwf10eNmwq2wD71xjUhqkvv5+_pJMR1nPug2RqNDcFT4H86Q@mail.gmail.com/
Reported-and-tested-by: Oded Gabbay <oded.gabbay@gmail.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 80d47f5de5e311cbc0d01ebb6ee684e8f4c196c6)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I490544efe86c2c8bc9d297135bad7d2ceab4686e
2022-11-22 07:58:43 +00:00
Jann Horn
e4d47f2da1 UPSTREAM: usb: raw-gadget: fix handling of dual-direction-capable endpoints
Under dummy_hcd, every available endpoint is *either* IN or OUT capable.
But with some real hardware, there are endpoints that support both IN and
OUT. In particular, the PLX 2380 has four available endpoints that each
support both IN and OUT.

raw-gadget currently gets confused and thinks that any endpoint that is
usable as an IN endpoint can never be used as an OUT endpoint.

Fix it by looking at the direction in the configured endpoint descriptor
instead of looking at the hardware capabilities.

With this change, I can use the PLX 2380 with raw-gadget.

Bug: 254441685
Fixes: f2c2e717642c ("usb: gadget: add raw-gadget interface")
Cc: stable <stable@vger.kernel.org>
Tested-by: Andrey Konovalov <andreyknvl@gmail.com>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Signed-off-by: Jann Horn <jannh@google.com>
Link: https://lore.kernel.org/r/20220126205214.2149936-1-jannh@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 292d2c82b105d92082c2120a44a58de9767e44f1)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I2c6dc54803a9c619dc0ba144df5e374d02f6cf3f
2022-11-22 07:58:43 +00:00
Christian Göttsche
2119237920 UPSTREAM: selinux: check return value of sel_make_avc_files
sel_make_avc_files() might fail and return a negative errno value on
memory allocation failures. Re-add the check of the return value,
dropped in 66f8e2f03c02 ("selinux: sidtab reverse lookup hash table").

Reported by clang-analyzer:

    security/selinux/selinuxfs.c:2129:2: warning: Value stored to
      'ret' is never read [deadcode.DeadStores]
            ret = sel_make_avc_files(dentry);
            ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~

Bug: 254441685
Fixes: 66f8e2f03c02 ("selinux: sidtab reverse lookup hash table")
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
[PM: description line wrapping, added proper commit ref]
Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry picked from commit bcb62828e3e8c813b6613db6eb7fd9657db248fc)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Id75241f6c1c3b501bda6160cee9be1a9c3b83fd3
2022-11-22 07:58:43 +00:00
Randy Dunlap
517330573a UPSTREAM: usb: musb: select GENERIC_PHY instead of depending on it
The kconfig symbol GENERIC_PHY says:
  All the users of this framework should select this config.
and around 136 out of 138 drivers do so, so change USB_MUSB_MEDIATEK
to do so also.

This (also) fixes a long circular dependency problem for an upcoming
patch.

Bug: 254441685
Fixes: 0990366bab3c ("usb: musb: Add support for MediaTek musb controller")
Cc: Bin Liu <b-liu@ti.com>
Cc: Min Guo <min.guo@mediatek.com>
Cc: Yonglong Wu <yonglong.wu@mediatek.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-mediatek@lists.infradead.org
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20211005235747.5588-1-rdunlap@infradead.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit fde1fbedbaed4e76cef4600d775b185f59b9b568)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I02720a673793a41ac939d3a909b131fc1d060df4
2022-11-22 07:58:42 +00:00
Zhen Lei
e233e13e47 BACKPORT: driver core: Fix error return code in really_probe()
In the case of error handling, the error code returned by the subfunction
should be propagated instead of 0.

Bug: 254441685
Fixes: 1901fb2604 ("Driver core: fix "driver" symlink timing")
Fixes: 23b6904442 ("driver core: add dev_groups to all drivers")
Fixes: 8fd456ec0cf0 ("driver core: Add state_synced sysfs file for devices that support it")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20210707074301.2722-1-thunder.leizhen@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit f04948dea236b000da09c466a7ec931ecd8d7867)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I0d6913e62c67aea9824dce4b4f2c65b99f1ab099
2022-11-22 07:58:42 +00:00
Eric Biggers
fb4622ee74 UPSTREAM: fscrypt: fix derivation of SipHash keys on big endian CPUs
Typically, the cryptographic APIs that fscrypt uses take keys as byte
arrays, which avoids endianness issues.  However, siphash_key_t is an
exception.  It is defined as 'u64 key[2];', i.e. the 128-bit key is
expected to be given directly as two 64-bit words in CPU endianness.

fscrypt_derive_dirhash_key() and fscrypt_setup_iv_ino_lblk_32_key()
forgot to take this into account.  Therefore, the SipHash keys used to
index encrypted+casefolded directories differ on big endian vs. little
endian platforms, as do the SipHash keys used to hash inode numbers for
IV_INO_LBLK_32-encrypted directories.  This makes such directories
non-portable between these platforms.

Fix this by always using the little endian order.  This is a breaking
change for big endian platforms, but this should be fine in practice
since these features (encrypt+casefold support, and the IV_INO_LBLK_32
flag) aren't known to actually be used on any big endian platforms yet.

Bug: 254441685
Fixes: aa408f835d02 ("fscrypt: derive dirhash key for casefolded directories")
Fixes: e3b1078bedd3 ("fscrypt: add support for IV_INO_LBLK_32 policies")
Cc: <stable@vger.kernel.org> # v5.6+
Link: https://lore.kernel.org/r/20210605075033.54424-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
(cherry picked from commit 2fc2b430f559fdf32d5d1dd5ceaa40e12fb77bdf)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I03555845a827b693fadaf1d61aa3977cd4ed9ecd
2022-11-22 07:58:42 +00:00
Eric Biggers
c8bc35f2f6 BACKPORT: fscrypt: rename FS_KEY_DERIVATION_NONCE_SIZE
The name "FS_KEY_DERIVATION_NONCE_SIZE" is a bit outdated since due to
the addition of FSCRYPT_POLICY_FLAG_DIRECT_KEY, the file nonce may now
be used as a tweak instead of for key derivation.  Also, we're now
prefixing the fscrypt constants with "FSCRYPT_" instead of "FS_".

Therefore, rename this constant to FSCRYPT_FILE_NONCE_SIZE.

Bug: 254441685
Link: https://lore.kernel.org/r/20200708215722.147154-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
[Lee: Back-ported to solve a dependency issue]
(cherry picked from commit 1d6217a4f9905917ee63315c8ea3d63833792f51)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I5eae506505d9432b95dabf620b79a6b8ca1e0d6a
2022-11-22 07:58:42 +00:00
Jason A. Donenfeld
0aad586104 UPSTREAM: socionext: account for napi_gro_receive never returning GRO_DROP
The napi_gro_receive function no longer returns GRO_DROP ever, making
handling GRO_DROP dead code. This commit removes that dead code.
Further, it's not even clear that device drivers have any business in
taking action after passing off received packets; that's arguably out of
their hands.

Bug: 254441685
Fixes: 6570bc79c0df ("net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 0c5378f9d5003334775ea0e5e9934976aa4a1b66)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ic0e73a7ecd9ee0265459aea3f99895c9bb3d92ce
2022-11-18 14:36:45 +00:00
Lorenzo Bianconi
38f38545f7 UPSTREAM: net: socionext: netsec: fix xdp stats accounting
Increment netdev rx counters even for XDP_DROP verdict. Report even
tx bytes for xdp buffers (TYPE_NETSEC_XDP_TX or TYPE_NETSEC_XDP_NDO).
Moreover account pending buffer length in netsec_xdp_queue_one as it is
done for skb counterpart

Bug: 254441685
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
[Lee: Back-ported to solve a dependency]
(cherry picked from commit 0c5378f9d5003334775ea0e5e9934976aa4a1b66)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia512f11529436aca74c23e70eb4edb8ee54e3fa3
2022-11-18 14:36:00 +00:00
Alessio Balsini
202bfe2b1f BACKPORT: fs: align IOCB_* flags with RWF_* flags
We have a set of flags that are shared between the two and inherired
in kiocb_set_rw_flags(), but we check and set these individually.
Reorder the IOCB flags so that the bottom part of the space is synced
with the RWF flag space, and then we can do them all in one mask and
set operation.

The only exception is RWF_SYNC, which needs to mark IOCB_SYNC and
IOCB_DSYNC. Do that one separately.

This shaves 15 bytes of text from kiocb_set_rw_flags() for me.

In Android this is required by the FUSE passthrough patches as
8bcc2d697908 ("FROMLIST: fs: Generic function to convert iocb to rw
flags") relies on the alignment of RWF and IOCB flags.

Bug: 254441685
(cherry picked from commit ce71bfea207b4d7c21d36f24ec37618ffcea1da8)
Suggested-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Change-Id: Ib6316ae5cb3f8a14fabef5492e79783c9e6d3c4d
Signed-off-by: Alessio Balsini <balsini@google.com>
Signed-off-by: Lee Jones <joneslee@google.com>
2022-11-18 14:31:11 +00:00
Hyunwoo Kim
141f8d76b3 UPSTREAM: efi: capsule-loader: Fix use-after-free in efi_capsule_write
commit 9cb636b5f6a8cc6d1b50809ec8f8d33ae0c84c95 upstream.

A race condition may occur if the user calls close() on another thread
during a write() operation on the device node of the efi capsule.

This is a race condition that occurs between the efi_capsule_write() and
efi_capsule_flush() functions of efi_capsule_fops, which ultimately
results in UAF.

So, the page freeing process is modified to be done in
efi_capsule_release() instead of efi_capsule_flush().

Bug: 246690517
Cc: <stable@vger.kernel.org> # v4.9+
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Link: https://lore.kernel.org/all/20220907102920.GA88602@ubuntu/
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I6b11df91a87c027ebed4a7b239610a9b9e28cec0
2022-11-14 13:49:52 +00:00
Ard Biesheuvel
d4d1f95c4b BACKPORT: ARM: 9039/1: assembler: generalize byte swapping macro into rev_l
Take the 4 instruction byte swapping sequence from the decompressor's
head.S, and turn it into a rev_l GAS macro for general use. While
at it, make it use the 'rev' instruction when compiling for v6 or
later.

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>

(cherry picked from commit 6468e898c67b905ec0f95d9678929135bcaf7f67)
(resolved conflict due to different patch context, caused by missing
 other macros in assembler.h)
Bug: 178411248
Change-Id: I8433e97d2880f75cace215f1a8daadec7f29929c
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-11-09 18:51:41 +00:00
Geert Uytterhoeven
28066cfbc9 BACKPORT: ARM: 9035/1: uncompress: Add be32tocpu macro
DTB stores all values as 32-bit big-endian integers.
Add a macro to convert such values to native CPU endianness, to reduce
duplication.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>

(cherry picked from commit 0557ac83fd1a0a7cd6909665bad50006507115a0)
(resolved conflict due to different patch context, caused by missing
 "ARM: 9010/1: uncompress: Print the location of appended DTB")
Bug: 178411248
Change-Id: I0807f36352dbfd5f5808959e358a7469dc9753bb
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-11-09 18:51:40 +00:00
Sai Prakash Ranjan
cc190ff2f8 UPSTREAM: drm/meson: Fix overflow implicit truncation warnings
[ Upstream commit 98692f52c588225034cbff458622c2c06dfcb544 ]

Fix -Woverflow warnings for drm/meson driver which is a result
of moving arm64 custom MMIO accessor macros to asm-generic function
implementations giving a bonus type-checking now and uncovering these
overflow warnings.

drivers/gpu/drm/meson/meson_viu.c: In function ‘meson_viu_init’:
drivers/gpu/drm/meson/meson_registers.h:1826:48: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
 #define  VIU_OSD_BLEND_REORDER(dest, src)      ((src) << (dest * 4))
                                                ^
drivers/gpu/drm/meson/meson_viu.c:472:18: note: in expansion of macro ‘VIU_OSD_BLEND_REORDER’
   writel_relaxed(VIU_OSD_BLEND_REORDER(0, 1) |
                  ^~~~~~~~~~~~~~~~~~~~~

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Fixes: 147ae1cbaa ("drm: meson: viu: use proper macros instead of magic constants")
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Id3502967ec9df74ea9420a34549bc0ac3c49dfa8
Signed-off-by: Lee Jones <joneslee@google.com>
2022-11-09 13:14:07 +00:00
Sai Prakash Ranjan
0d0c1b2686 UPSTREAM: irqchip/tegra: Fix overflow implicit truncation warnings
[ Upstream commit 443685992bda9bb4f8b17fc02c9f6c60e62b1461 ]

Fix -Woverflow warnings for tegra irqchip driver which is a result
of moving arm64 custom MMIO accessor macros to asm-generic function
implementations giving a bonus type-checking now and uncovering these
overflow warnings.

drivers/irqchip/irq-tegra.c: In function ‘tegra_ictlr_suspend’:
drivers/irqchip/irq-tegra.c:151:18: warning: large integer implicitly truncated to unsigned type [-Woverflow]
   writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
                  ^

Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Marc Zyngier <maz@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Fixes: de3ce08049 ("irqchip: tegra: Add DT-based support for legacy interrupt controller")
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Iaee226d0220c9774635cd51953d577ab7e2ebe77
2022-11-09 13:14:01 +00:00