hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/mmc/core/host.c
....@@ -516,6 +516,32 @@
516516
517517 EXPORT_SYMBOL(mmc_alloc_host);
518518
519
+static void devm_mmc_host_release(struct device *dev, void *res)
520
+{
521
+ mmc_free_host(*(struct mmc_host **)res);
522
+}
523
+
524
+struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra)
525
+{
526
+ struct mmc_host **dr, *host;
527
+
528
+ dr = devres_alloc(devm_mmc_host_release, sizeof(*dr), GFP_KERNEL);
529
+ if (!dr)
530
+ return ERR_PTR(-ENOMEM);
531
+
532
+ host = mmc_alloc_host(extra, dev);
533
+ if (IS_ERR(host)) {
534
+ devres_free(dr);
535
+ return host;
536
+ }
537
+
538
+ *dr = host;
539
+ devres_add(dev, dr);
540
+
541
+ return host;
542
+}
543
+EXPORT_SYMBOL(devm_mmc_alloc_host);
544
+
519545 static int mmc_validate_host_caps(struct mmc_host *host)
520546 {
521547 if (host->caps & MMC_CAP_SDIO_IRQ && !host->ops->enable_sdio_irq) {