scsi: aic7xxx: Make BUILD_SCSIID() a function
authorHannes Reinecke <hare@suse.de>
Mon, 2 Oct 2023 15:43:16 +0000 (17:43 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 13 Oct 2023 18:23:14 +0000 (14:23 -0400)
Convert BUILD_SCSIID() into a function and add a scsi_device argument.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20231002154328.43718-7-hare@suse.de
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aic7xxx/aic7xxx_osm.c

index d3b1082654d575df9e1ad6f54b520b4ff9bef790..15e53b33b9553c7f1d18a528fa8e39cb439b5985 100644 (file)
@@ -798,11 +798,18 @@ struct scsi_host_template aic7xxx_driver_template = {
 
 /**************************** Tasklet Handler *********************************/
 
-/******************************** Macros **************************************/
-#define BUILD_SCSIID(ahc, cmd)                                             \
-       ((((cmd)->device->id << TID_SHIFT) & TID)                           \
-       | (((cmd)->device->channel == 0) ? (ahc)->our_id : (ahc)->our_id_b) \
-       | (((cmd)->device->channel == 0) ? 0 : TWIN_CHNLB))
+
+static inline unsigned int ahc_build_scsiid(struct ahc_softc *ahc,
+                                           struct scsi_device *sdev)
+{
+       unsigned int scsiid = (sdev->id << TID_SHIFT) & TID;
+
+       if (sdev->channel == 0)
+               scsiid |= ahc->our_id;
+       else
+               scsiid |= ahc->our_id_b | TWIN_CHNLB;
+       return scsiid;
+}
 
 /******************************** Bus DMA *************************************/
 int
@@ -1457,7 +1464,7 @@ ahc_linux_run_command(struct ahc_softc *ahc, struct ahc_linux_device *dev,
         * Fill out basics of the HSCB.
         */
        hscb->control = 0;
-       hscb->scsiid = BUILD_SCSIID(ahc, cmd);
+       hscb->scsiid = ahc_build_scsiid(ahc, cmd->device);
        hscb->lun = cmd->device->lun;
        mask = SCB_GET_TARGET_MASK(ahc, scb);
        tinfo = ahc_fetch_transinfo(ahc, SCB_GET_CHANNEL(ahc, scb),