Merge branch 'android12-5.4' into 'android12-5.4-lts'
Sync up with android12-5.4 for the following commits:
73e6d86c30ee ANDROID: ABI: update symbols to unisoc whitelist for the nineteen time
2ffb0acdabc5 UPSTREAM: usb: max-3421: Prevent corruption of freed memory
23c18f1ad0fc FROMLIST: dm-verity: skip verity_handle_error on I/O errors
091c7c49aa71 ANDROID: distribute Module.symvers instead of vmlinux.symvers
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: If060a0e72ae16aa24a6ef6e9bee46ccd76d38e5f
diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc
index 5e1affc..eebfa77 100644
--- a/android/abi_gki_aarch64_unisoc
+++ b/android/abi_gki_aarch64_unisoc
@@ -94,6 +94,7 @@
compat_alloc_user_space
complete
complete_all
+ complete_and_exit
config_ep_by_speed
config_group_init_type_name
contig_page_data
@@ -1072,6 +1073,7 @@
generic_write_end
__getblk_gfp
ilookup
+ in6_dev_finish_destroy
inc_nlink
in_group_p
__insert_inode_hash
@@ -1279,6 +1281,9 @@
usb_ep_disable
usb_speed_string
+# required by nu1619_wireless_charger.ko
+ regmap_bulk_read
+
# required by pcie-sprd.ko
device_get_next_child_node
devm_gpiod_get_index
@@ -1479,6 +1484,7 @@
devm_iio_channel_get
gpiod_get_value_cansleep
iio_read_channel_processed
+ rtc_read_time
power_supply_find_ocv2cap_table
power_supply_ocv2cap_simple
power_supply_put_battery_info
diff --git a/build.config.aarch64 b/build.config.aarch64
index 7aa66af..d015286 100644
--- a/build.config.aarch64
+++ b/build.config.aarch64
@@ -15,7 +15,7 @@
arch/arm64/boot/Image
vmlinux
System.map
-vmlinux.symvers
+Module.symvers
modules.builtin
modules.builtin.modinfo
"
diff --git a/build.config.x86_64 b/build.config.x86_64
index ae4d41a..2e9474c 100644
--- a/build.config.x86_64
+++ b/build.config.x86_64
@@ -14,7 +14,7 @@
arch/x86/boot/bzImage
vmlinux
System.map
-vmlinux.symvers
+Module.symvers
modules.builtin
modules.builtin.modinfo
"
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 711f101..08047cc 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -471,6 +471,7 @@ static int verity_verify_io(struct dm_verity_io *io)
struct bvec_iter start;
unsigned b;
struct crypto_wait wait;
+ struct bio *bio = dm_bio_from_per_bio_data(io, v->ti->per_io_data_size);
for (b = 0; b < io->n_blocks; b++) {
int r;
@@ -525,9 +526,17 @@ static int verity_verify_io(struct dm_verity_io *io)
else if (verity_fec_decode(v, io, DM_VERITY_BLOCK_TYPE_DATA,
cur_block, NULL, &start) == 0)
continue;
- else if (verity_handle_err(v, DM_VERITY_BLOCK_TYPE_DATA,
+ else {
+ if (bio->bi_status) {
+ /*
+ * Error correction failed; Just return error
+ */
+ return -EIO;
+ }
+ if (verity_handle_err(v, DM_VERITY_BLOCK_TYPE_DATA,
cur_block))
- return -EIO;
+ return -EIO;
+ }
}
return 0;