]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: st: Convert to SCSI bus methods
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Fri, 19 Dec 2025 09:25:36 +0000 (10:25 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 12 Jan 2026 02:31:58 +0000 (21:31 -0500)
The SCSI subsystem has implemented dedicated callbacks for probe, remove
and shutdown. Make use of them. This fixes a runtime warning about the
driver needing to be converted to the bus probe method.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/6da44731f77e8fdcd18e5f438643d58c98945db4.1766133330.git.u.kleine-koenig@baylibre.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/st.c

index 45622cfce9266870fb5ff10af450d2380e1c4e1c..40d88bbb43884de510e083902c88dc26869ab158 100644 (file)
@@ -202,14 +202,14 @@ static int sgl_map_user_pages(struct st_buffer *, const unsigned int,
                              unsigned long, size_t, int);
 static int sgl_unmap_user_pages(struct st_buffer *, const unsigned int, int);
 
-static int st_probe(struct device *);
-static int st_remove(struct device *);
+static int st_probe(struct scsi_device *);
+static void st_remove(struct scsi_device *);
 
 static struct scsi_driver st_template = {
+       .probe = st_probe,
+       .remove = st_remove,
        .gendrv = {
                .name           = "st",
-               .probe          = st_probe,
-               .remove         = st_remove,
                .groups         = st_drv_groups,
        },
 };
@@ -4342,9 +4342,9 @@ static void remove_cdevs(struct scsi_tape *tape)
        }
 }
 
-static int st_probe(struct device *dev)
+static int st_probe(struct scsi_device *SDp)
 {
-       struct scsi_device *SDp = to_scsi_device(dev);
+       struct device *dev = &SDp->sdev_gendev;
        struct scsi_tape *tpnt = NULL;
        struct st_modedef *STm;
        struct st_partstat *STps;
@@ -4499,12 +4499,13 @@ out:
 };
 
 
-static int st_remove(struct device *dev)
+static void st_remove(struct scsi_device *SDp)
 {
+       struct device *dev = &SDp->sdev_gendev;
        struct scsi_tape *tpnt = dev_get_drvdata(dev);
        int index = tpnt->index;
 
-       scsi_autopm_get_device(to_scsi_device(dev));
+       scsi_autopm_get_device(SDp);
        remove_cdevs(tpnt);
 
        mutex_lock(&st_ref_mutex);
@@ -4513,7 +4514,6 @@ static int st_remove(struct device *dev)
        spin_lock(&st_index_lock);
        idr_remove(&st_index_idr, index);
        spin_unlock(&st_index_lock);
-       return 0;
 }
 
 /**