From: Greg Kroah-Hartman Date: Mon, 17 Oct 2022 10:13:14 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v5.4.219~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e42f264fd69a1d03af30c6225d359a1034e83669;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: alsa-usb-audio-fix-last-interface-check-for-registration.patch net-ieee802154-return-einval-for-unknown-addr-type.patch --- diff --git a/queue-5.15/alsa-usb-audio-fix-last-interface-check-for-registration.patch b/queue-5.15/alsa-usb-audio-fix-last-interface-check-for-registration.patch new file mode 100644 index 00000000000..7fe11a85ba7 --- /dev/null +++ b/queue-5.15/alsa-usb-audio-fix-last-interface-check-for-registration.patch @@ -0,0 +1,40 @@ +From 39efc9c8a973ddff5918191525d1679d0fb368ea Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Thu, 15 Sep 2022 10:59:47 +0200 +Subject: ALSA: usb-audio: Fix last interface check for registration + +From: Takashi Iwai + +commit 39efc9c8a973ddff5918191525d1679d0fb368ea upstream. + +The recent fix in commit 6392dcd1d0c7 ("ALSA: usb-audio: Register card +at the last interface") tried to delay the card registration until the +last found interface is probed. It assumed that the probe callback +gets called for those later interfaces, but it's not always true; as +the driver loops over the descriptor and probes the matching ones, +it's not separately called via multiple probe calls. This results in +the missing card registration, i.e. no sound device. + +For addressing this problem, replace the check whether the last +interface is processed with usb_interface_claimed() instead of the +comparison with the probe interface number. + +Fixes: 6392dcd1d0c7 ("ALSA: usb-audio: Register card at the last interface") +Link: https://lore.kernel.org/r/20220915085947.7922-1-tiwai@suse.de +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/card.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/usb/card.c ++++ b/sound/usb/card.c +@@ -883,7 +883,7 @@ static int usb_audio_probe(struct usb_in + * one given via option + */ + if (check_delayed_register_option(chip) == ifnum || +- chip->last_iface == ifnum) { ++ usb_interface_claimed(usb_ifnum_to_if(dev, chip->last_iface))) { + err = snd_card_register(chip->card); + if (err < 0) + goto __error; diff --git a/queue-5.15/net-ieee802154-return-einval-for-unknown-addr-type.patch b/queue-5.15/net-ieee802154-return-einval-for-unknown-addr-type.patch new file mode 100644 index 00000000000..47c874abf74 --- /dev/null +++ b/queue-5.15/net-ieee802154-return-einval-for-unknown-addr-type.patch @@ -0,0 +1,54 @@ +From 30393181fdbc1608cc683b4ee99dcce05ffcc8c7 Mon Sep 17 00:00:00 2001 +From: Alexander Aring +Date: Wed, 5 Oct 2022 22:02:37 -0400 +Subject: net: ieee802154: return -EINVAL for unknown addr type + +From: Alexander Aring + +commit 30393181fdbc1608cc683b4ee99dcce05ffcc8c7 upstream. + +This patch adds handling to return -EINVAL for an unknown addr type. The +current behaviour is to return 0 as successful but the size of an +unknown addr type is not defined and should return an error like -EINVAL. + +Fixes: 94160108a70c ("net/ieee802154: fix uninit value bug in dgram_sendmsg") +Signed-off-by: Alexander Aring +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + include/net/ieee802154_netdev.h | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- a/include/net/ieee802154_netdev.h ++++ b/include/net/ieee802154_netdev.h +@@ -185,21 +185,27 @@ static inline int + ieee802154_sockaddr_check_size(struct sockaddr_ieee802154 *daddr, int len) + { + struct ieee802154_addr_sa *sa; ++ int ret = 0; + + sa = &daddr->addr; + if (len < IEEE802154_MIN_NAMELEN) + return -EINVAL; + switch (sa->addr_type) { ++ case IEEE802154_ADDR_NONE: ++ break; + case IEEE802154_ADDR_SHORT: + if (len < IEEE802154_NAMELEN_SHORT) +- return -EINVAL; ++ ret = -EINVAL; + break; + case IEEE802154_ADDR_LONG: + if (len < IEEE802154_NAMELEN_LONG) +- return -EINVAL; ++ ret = -EINVAL; ++ break; ++ default: ++ ret = -EINVAL; + break; + } +- return 0; ++ return ret; + } + + static inline void ieee802154_addr_from_sa(struct ieee802154_addr *a, diff --git a/queue-5.15/series b/queue-5.15/series index 1fd44d2bc85..e10e967a6a6 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -617,3 +617,5 @@ io_uring-rw-fix-short-rw-error-handling.patch io_uring-rw-fix-error-ed-retry-return-values.patch io_uring-rw-fix-unexpected-link-breakage.patch mm-hugetlb-fix-uaf-in-hugetlb_handle_userfault.patch +net-ieee802154-return-einval-for-unknown-addr-type.patch +alsa-usb-audio-fix-last-interface-check-for-registration.patch