Skip to content

Commit 5307468

Browse files
committed
Merge tag 'v6.12.72' into 6.12-main
This is the 6.12.72 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmmS4PwACgkQONu9yGCS # aT6ndg//WIBe0OPyKPkCp8YvcXj2O6fvD8OiHImbQ/zeQ3bZVRMJtlGCnAhLtsFs # wWAVPlqe3+T0Z8ZD/4Vmz6b0eQeQhlDkjG3/hvEpTEfazlwGobgvulcMMmBVqcoz # dkhWiuX0eQYokuZ4oN2OBcbji7cYwLZn8pRSKBqIoBzcTjcTTJwjBSaqHuytwZOS # pn/wKZfr8jso+E1dEIVUUhKdMBS5WufHcJNrt8relr7Ckd3uOlUYagHuMlRi6KuH # MSN3e9BnlqsRQvBMZAGkHnLnZhmBnmFm21JQn70H018pn8HUsDgF5/F1U6B2dDWt # RsgQDCP2MttPHmEKnqSBvDPr+sZVw/DmjPpLSeCv3bqMKHxot7sk0LTUETlEogjb # iDWUuAYENtMQ6r/MzNpEVCu8H+pkt4gHzda66TkUD9qeWaxndepTBgqqeavxqQT8 # rIeNBC+6UCEaNpSr4eT21io9tzGR7lZ3p9FN3CWd1yoORbEq61Z+Hg0fGAnoDAil # jUNlaKNULdJnzcCdv5kKn0B+NMlT9Q5CGccDDYMcwHtigj6Al+s/m1NeRLOcvyVt # uqFNG3q74Yl2nhQ1xkGNZjrlvE8HcZdWBbZu5DxVjR79eD7pxH5/zEVcI4Nxz9qG # yOCwAXWSyjDCi6gGoCVa0FLYiZvFwqRpz9WAu4GJhmG5zo7wGOI= # =v20Q # -----END PGP SIGNATURE----- # gpg: Signature made Mon Feb 16 10:18:52 2026 CET # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents 0a2d4e3 + 19b3cac commit 5307468

26 files changed

Lines changed: 158 additions & 79 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 12
4-
SUBLEVEL = 71
4+
SUBLEVEL = 72
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
77

drivers/base/base.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,18 @@ void device_set_deferred_probe_reason(const struct device *dev, struct va_format
165165
static inline int driver_match_device(const struct device_driver *drv,
166166
struct device *dev)
167167
{
168+
device_lock_assert(dev);
169+
168170
return drv->bus->match ? drv->bus->match(dev, drv) : 1;
169171
}
170172

173+
static inline int driver_match_device_locked(const struct device_driver *drv,
174+
struct device *dev)
175+
{
176+
guard(device)(dev);
177+
return driver_match_device(drv, dev);
178+
}
179+
171180
static inline void dev_sync_state(struct device *dev)
172181
{
173182
if (dev->bus->sync_state)

drivers/base/bus.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ static ssize_t bind_store(struct device_driver *drv, const char *buf,
263263
int err = -ENODEV;
264264

265265
dev = bus_find_device_by_name(bus, NULL, buf);
266-
if (dev && driver_match_device(drv, dev)) {
266+
if (dev && driver_match_device_locked(drv, dev)) {
267267
err = device_driver_attach(drv, dev);
268268
if (!err) {
269269
/* success */

drivers/base/dd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,7 @@ static int __driver_attach(struct device *dev, void *data)
11681168
* is an error.
11691169
*/
11701170

1171-
ret = driver_match_device(drv, dev);
1171+
ret = driver_match_device_locked(drv, dev);
11721172
if (ret == 0) {
11731173
/* no match */
11741174
return 0;

drivers/bluetooth/btusb.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,8 @@ static const struct usb_device_id quirks_table[] = {
519519
BTUSB_WIDEBAND_SPEECH },
520520
{ USB_DEVICE(0x2001, 0x332a), .driver_info = BTUSB_REALTEK |
521521
BTUSB_WIDEBAND_SPEECH },
522+
{ USB_DEVICE(0x7392, 0xe611), .driver_info = BTUSB_REALTEK |
523+
BTUSB_WIDEBAND_SPEECH },
522524

523525
/* Realtek 8852AE Bluetooth devices */
524526
{ USB_DEVICE(0x0bda, 0x2852), .driver_info = BTUSB_REALTEK |

drivers/bus/mhi/host/pci_generic.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -744,6 +744,16 @@ static const struct mhi_pci_dev_info mhi_telit_fn990b40_info = {
744744
.edl_trigger = true,
745745
};
746746

747+
static const struct mhi_pci_dev_info mhi_telit_fe990b40_info = {
748+
.name = "telit-fe990b40",
749+
.config = &modem_telit_fn920c04_config,
750+
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
751+
.dma_data_width = 32,
752+
.sideband_wake = false,
753+
.mru_default = 32768,
754+
.edl_trigger = true,
755+
};
756+
747757
static const struct mhi_pci_dev_info mhi_netprisma_lcur57_info = {
748758
.name = "netprisma-lcur57",
749759
.edl = "qcom/prog_firehose_sdx24.mbn",
@@ -792,6 +802,9 @@ static const struct pci_device_id mhi_pci_id_table[] = {
792802
/* Telit FN990B40 (sdx72) */
793803
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0309, 0x1c5d, 0x201a),
794804
.driver_data = (kernel_ulong_t) &mhi_telit_fn990b40_info },
805+
/* Telit FE990B40 (sdx72) */
806+
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0309, 0x1c5d, 0x2025),
807+
.driver_data = (kernel_ulong_t) &mhi_telit_fe990b40_info },
795808
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
796809
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx75_info },
797810
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1001), /* EM120R-GL (sdx24) */

drivers/crypto/intel/iaa/iaa_crypto_main.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -223,15 +223,13 @@ static struct iaa_compression_mode *iaa_compression_modes[IAA_COMP_MODES_MAX];
223223

224224
static int find_empty_iaa_compression_mode(void)
225225
{
226-
int i = -EINVAL;
226+
int i;
227227

228-
for (i = 0; i < IAA_COMP_MODES_MAX; i++) {
229-
if (iaa_compression_modes[i])
230-
continue;
231-
break;
232-
}
228+
for (i = 0; i < IAA_COMP_MODES_MAX; i++)
229+
if (!iaa_compression_modes[i])
230+
return i;
233231

234-
return i;
232+
return -EINVAL;
235233
}
236234

237235
static struct iaa_compression_mode *find_iaa_compression_mode(const char *name, int *idx)

drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1336,7 +1336,7 @@ static ssize_t ucode_load_store(struct device *dev,
13361336
int del_grp_idx = -1;
13371337
int ucode_idx = 0;
13381338

1339-
if (strlen(buf) > OTX_CPT_UCODE_NAME_LENGTH)
1339+
if (count >= OTX_CPT_UCODE_NAME_LENGTH)
13401340
return -EINVAL;
13411341

13421342
eng_grps = container_of(attr, struct otx_cpt_eng_grps, ucode_load_attr);

drivers/crypto/omap-crypto.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static int omap_crypto_copy_sg_lists(int total, int bs,
2121
struct scatterlist *tmp;
2222

2323
if (!(flags & OMAP_CRYPTO_FORCE_SINGLE_ENTRY)) {
24-
new_sg = kmalloc_array(n, sizeof(*sg), GFP_KERNEL);
24+
new_sg = kmalloc_array(n, sizeof(*new_sg), GFP_KERNEL);
2525
if (!new_sg)
2626
return -ENOMEM;
2727

drivers/crypto/virtio/virtio_crypto_core.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,20 @@ static void virtcrypto_done_task(unsigned long data)
7575
struct data_queue *data_vq = (struct data_queue *)data;
7676
struct virtqueue *vq = data_vq->vq;
7777
struct virtio_crypto_request *vc_req;
78+
unsigned long flags;
7879
unsigned int len;
7980

81+
spin_lock_irqsave(&data_vq->lock, flags);
8082
do {
8183
virtqueue_disable_cb(vq);
8284
while ((vc_req = virtqueue_get_buf(vq, &len)) != NULL) {
85+
spin_unlock_irqrestore(&data_vq->lock, flags);
8386
if (vc_req->alg_cb)
8487
vc_req->alg_cb(vc_req, len);
88+
spin_lock_irqsave(&data_vq->lock, flags);
8589
}
8690
} while (!virtqueue_enable_cb(vq));
91+
spin_unlock_irqrestore(&data_vq->lock, flags);
8792
}
8893

8994
static void virtcrypto_dataq_callback(struct virtqueue *vq)

0 commit comments

Comments
 (0)