Merge 5.10.251 into android13-5.10-lts

Changes in 5.10.251
	crypto: octeontx - Fix length check to avoid truncation in ucode_load_store
	crypto: omap - Allocate OMAP_CRYPTO_FORCE_COPY scatterlists correctly
	crypto: virtio - Add spinlock protection with virtqueue notification
	nilfs2: Fix potential block overflow that cause system hang
	scsi: qla2xxx: Delay module unload while fabric scan in progress
	scsi: qla2xxx: Query FW again before proceeding with login
	gpio: omap: do not register driver in probe()
	ALSA: hda/realtek: Fix headset mic for TongFang X6AR55xU
	gpio: sprd: Change sprd_gpio lock to raw_spin_lock
	romfs: check sb_set_blocksize() return value
	drm/tegra: hdmi: sor: Fix error: variable ā€˜j’ set but not used
	platform/x86: classmate-laptop: Add missing NULL pointer checks
	gpiolib: acpi: Fix gpio count with string references
	fs: dlm: fix invalid derefence of sb_lvbptr
	selftests: mptcp: pm: ensure unknown flags are ignored
	crypto: virtio - Remove duplicated virtqueue_kick in virtio_crypto_skcipher_crypt_req
	scsi: qla2xxx: Validate sp before freeing associated memory
	scsi: qla2xxx: Free sp in error path to fix system crash
	scsi: qla2xxx: Fix bsg_done() causing double free
	fbdev: rivafb: fix divide error in nv3_arb()
	fbdev: smscufx: properly copy ioctl memory to kernelspace
	f2fs: fix out-of-bounds access in sysfs attribute read/write
	f2fs: fix to avoid UAF in f2fs_write_end_io()
	USB: serial: option: add Telit FN920C04 RNDIS compositions
	Linux 5.10.251

Change-Id: Ifcfbd76af897b55e781e8d4e35b9dcf698393fc6
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/Makefile b/Makefile
index 16a1980..7ecc786 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 250
+SUBLEVEL = 251
 EXTRAVERSION =
 NAME = Dare mighty things
 
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index a89cba3..f7179fe 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1401,12 +1401,16 @@ static const struct usb_device_id option_ids[] = {
 	  .driver_info = NCTRL(0) | RSVD(1) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a0, 0xff),	/* Telit FN20C04 (rmnet) */
 	  .driver_info = RSVD(0) | NCTRL(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a1, 0xff),	/* Telit FN20C04 (RNDIS) */
+	  .driver_info = NCTRL(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a2, 0xff),	/* Telit FN920C04 (MBIM) */
 	  .driver_info = NCTRL(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a3, 0xff),	/* Telit FN920C04 (ECM) */
 	  .driver_info = NCTRL(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a4, 0xff),	/* Telit FN20C04 (rmnet) */
 	  .driver_info = RSVD(0) | NCTRL(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a6, 0xff),	/* Telit FN920C04 (RNDIS) */
+	  .driver_info = NCTRL(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a7, 0xff),	/* Telit FN920C04 (MBIM) */
 	  .driver_info = NCTRL(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10a8, 0xff),	/* Telit FN920C04 (ECM) */
@@ -1415,6 +1419,8 @@ static const struct usb_device_id option_ids[] = {
 	  .driver_info = RSVD(0) | NCTRL(2) | RSVD(3) | RSVD(4) },
 	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10aa, 0xff),	/* Telit FN920C04 (MBIM) */
 	  .driver_info = NCTRL(3) | RSVD(4) | RSVD(5) },
+	{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x10ab, 0xff),	/* Telit FN920C04 (RNDIS) */
+	  .driver_info = NCTRL(3) | RSVD(4) | RSVD(5) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b0, 0xff, 0xff, 0x30),	/* Telit FE990B (rmnet) */
 	  .driver_info = NCTRL(5) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(TELIT_VENDOR_ID, 0x10b0, 0xff, 0xff, 0x40) },
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 9de89b4..a9f0689 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -361,14 +361,20 @@ static void f2fs_write_end_io(struct bio *bio)
 					page->index != nid_of_node(page));
 
 		dec_page_count(sbi, type);
+
+		/*
+		 * we should access sbi before end_page_writeback() to
+		 * avoid racing w/ kill_f2fs_super()
+		 */
+		if (type == F2FS_WB_CP_DATA && !get_pages(sbi, type) &&
+				wq_has_sleeper(&sbi->cp_wait))
+			wake_up(&sbi->cp_wait);
+
 		if (f2fs_in_warm_node_list(sbi, page))
 			f2fs_del_fsync_node_entry(sbi, page);
 		clear_page_private_gcing(page);
 		end_page_writeback(page);
 	}
-	if (!get_pages(sbi, F2FS_WB_CP_DATA) &&
-				wq_has_sleeper(&sbi->cp_wait))
-		wake_up(&sbi->cp_wait);
 
 	bio_put(bio);
 }