Skip to content

Commit b8c249c

Browse files
committed
Merge tag 'v6.18.11' into 6.18-main
This is the 6.18.11 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmmS4TsACgkQONu9yGCS # aT6ZxA//VHmmGDrSKFNadB72hvZVluDxq3L8j9UPEiV96d9s/IOe2PDZcl+X51vh # xoPgV/z9TwW888AhzIlGlZSl8uteZNquRhCtq9wFqBKi2TkJsatU4Quo44aAXCa8 # WwW2xZZDJ0MCxkNeUVA4elEi4iMH2cE+Xpk9SB67RyEud6tWkGXEjJOp5pbbye16 # XuKYQHJ/H/FCrh2DMGcA/25YmGNYfPFPgPpaDMQLCOc619BVFbh3Z+pGzcDe6Kqi # /RYVhcpu1ubw2ZDd4seJGXI+uHe7zZ5KnQMNyldq0yrEJKlYDQM8qNmoWaeht9bP # 3rW+UYu48yCsOtnOl0It/EFzLwkmBDeNz6SkC1fFb/dCLLPIdygbKehFUMLAsP4I # Uyx3aknusThC560sGX9q5c/hjn0IAmt357Yyp6hl+Tl8IpKsn90ZqCLfLdPzyY4U # X6ZbHDVYpsUREmNTYJNB3K0i37VEGbv5E8wH6XatxwR8UlrfLIQa6rIKm7hmEbUd # j6KMIiICtJ3Ux11Dy2njl7LgszMny6UxlQJzuT4l5lZtqpYN76XkgLBSR5Rq+nPC # FbsaNP9Z+J92fGbagz+KXRQOchLWqhmBreeAoqSGX+2fT3rQJHyqxLHsCfoG8ouF # xFCuNhQc4fGbyfM6TcZIaYgPNVAmGnX2v5YWTpcVmHHvljmUqkM= # =JecJ # -----END PGP SIGNATURE----- # gpg: Signature made Mon Feb 16 10:19:55 2026 CET # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents 4b24d25 + ee4fb13 commit b8c249c

38 files changed

Lines changed: 798 additions & 245 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 = 18
4-
SUBLEVEL = 10
4+
SUBLEVEL = 11
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
@@ -166,9 +166,18 @@ void device_set_deferred_probe_reason(const struct device *dev, struct va_format
166166
static inline int driver_match_device(const struct device_driver *drv,
167167
struct device *dev)
168168
{
169+
device_lock_assert(dev);
170+
169171
return drv->bus->match ? drv->bus->match(dev, drv) : 1;
170172
}
171173

174+
static inline int driver_match_device_locked(const struct device_driver *drv,
175+
struct device *dev)
176+
{
177+
guard(device)(dev);
178+
return driver_match_device(drv, dev);
179+
}
180+
172181
static inline void dev_sync_state(struct device *dev)
173182
{
174183
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
@@ -1170,7 +1170,7 @@ static int __driver_attach(struct device *dev, void *data)
11701170
* is an error.
11711171
*/
11721172

1173-
ret = driver_match_device(drv, dev);
1173+
ret = driver_match_device_locked(drv, dev);
11741174
if (ret == 0) {
11751175
/* no match */
11761176
return 0;

drivers/bluetooth/btusb.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,8 @@ static const struct usb_device_id quirks_table[] = {
527527
BTUSB_WIDEBAND_SPEECH },
528528
{ USB_DEVICE(0x2001, 0x332a), .driver_info = BTUSB_REALTEK |
529529
BTUSB_WIDEBAND_SPEECH },
530+
{ USB_DEVICE(0x7392, 0xe611), .driver_info = BTUSB_REALTEK |
531+
BTUSB_WIDEBAND_SPEECH },
530532

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

drivers/bus/fsl-mc/fsl-mc-bus.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,12 @@ static ssize_t driver_override_show(struct device *dev,
202202
struct device_attribute *attr, char *buf)
203203
{
204204
struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
205+
ssize_t len;
205206

206-
return sysfs_emit(buf, "%s\n", mc_dev->driver_override);
207+
device_lock(dev);
208+
len = sysfs_emit(buf, "%s\n", mc_dev->driver_override);
209+
device_unlock(dev);
210+
return len;
207211
}
208212
static DEVICE_ATTR_RW(driver_override);
209213

drivers/crypto/intel/iaa/iaa_crypto_main.c

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

222222
static int find_empty_iaa_compression_mode(void)
223223
{
224-
int i = -EINVAL;
224+
int i;
225225

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

232-
return i;
230+
return -EINVAL;
233231
}
234232

235233
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
@@ -1326,7 +1326,7 @@ static ssize_t ucode_load_store(struct device *dev,
13261326
int del_grp_idx = -1;
13271327
int ucode_idx = 0;
13281328

1329-
if (strlen(buf) > OTX_CPT_UCODE_NAME_LENGTH)
1329+
if (count >= OTX_CPT_UCODE_NAME_LENGTH)
13301330
return -EINVAL;
13311331

13321332
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)