On 04.04.2013 23:53, Adrian Chadd wrote:
Hi,

Isn't this a prime candidate to replace with KASSERT()?

It could be, but NULL dereference attempt will crash system no less reliably then KASSERT.

On 4 April 2013 12:04, Alexander Motin <m...@freebsd.org> wrote:
Author: mav
Date: Thu Apr  4 19:04:15 2013
New Revision: 249105
URL: http://svnweb.freebsd.org/changeset/base/249105

Log:
   MFprojects/camlock r248930:
   Remove extra NULL checks. d_drv1 can never be NULL during periph life cycle.

   MFC after:    2 weeks

Modified:
   head/sys/cam/ata/ata_da.c
   head/sys/cam/scsi/scsi_cd.c
   head/sys/cam/scsi/scsi_da.c

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c   Thu Apr  4 18:59:29 2013        (r249104)
+++ head/sys/cam/ata/ata_da.c   Thu Apr  4 19:04:15 2013        (r249105)
@@ -527,10 +527,6 @@ adaopen(struct disk *dp)
         int error;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL) {
-               return (ENXIO);
-       }
-
         if (cam_periph_acquire(periph) != CAM_REQ_CMP) {
                 return(ENXIO);
         }
@@ -566,9 +562,6 @@ adaclose(struct disk *dp)
         union ccb *ccb;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
-
         cam_periph_lock(periph);
         if (cam_periph_hold(periph, PRIBIO) != 0) {
                 cam_periph_unlock(periph);
@@ -646,10 +639,6 @@ adastrategy(struct bio *bp)
         struct ada_softc *softc;

         periph = (struct cam_periph *)bp->bio_disk->d_drv1;
-       if (periph == NULL) {
-               biofinish(bp, NULL, ENXIO);
-               return;
-       }
         softc = (struct ada_softc *)periph->softc;

         cam_periph_lock(periph);
@@ -704,8 +693,6 @@ adadump(void *arg, void *virtual, vm_off

         dp = arg;
         periph = dp->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
         softc = (struct ada_softc *)periph->softc;
         cam_periph_lock(periph);
         secsize = softc->params.secsize;
@@ -1038,9 +1025,6 @@ adagetattr(struct bio *bp)
         struct cam_periph *periph;

         periph = (struct cam_periph *)bp->bio_disk->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
-
         cam_periph_lock(periph);
         ret = xpt_getattr(bp->bio_data, bp->bio_length, bp->bio_attribute,
             periph->path);

Modified: head/sys/cam/scsi/scsi_cd.c
==============================================================================
--- head/sys/cam/scsi/scsi_cd.c Thu Apr  4 18:59:29 2013        (r249104)
+++ head/sys/cam/scsi/scsi_cd.c Thu Apr  4 19:04:15 2013        (r249105)
@@ -386,7 +386,6 @@ cddiskgonecb(struct disk *dp)
         struct cam_periph *periph;

         periph = (struct cam_periph *)dp->d_drv1;
-
         cam_periph_release(periph);
  }

@@ -1073,9 +1072,6 @@ cdopen(struct disk *dp)
         int error;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
-
         softc = (struct cd_softc *)periph->softc;

         if (cam_periph_acquire(periph) != CAM_REQ_CMP)
@@ -1120,9 +1116,6 @@ cdclose(struct disk *dp)
         struct  cd_softc *softc;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
-
         softc = (struct cd_softc *)periph->softc;

         cam_periph_lock(periph);
@@ -1473,11 +1466,6 @@ cdstrategy(struct bio *bp)
         struct cd_softc *softc;

         periph = (struct cam_periph *)bp->bio_disk->d_drv1;
-       if (periph == NULL) {
-               biofinish(bp, NULL, ENXIO);
-               return;
-       }
-
         cam_periph_lock(periph);
         CAM_DEBUG(periph->path, CAM_DEBUG_TRACE,
             ("cdstrategy(%p)\n", bp));
@@ -1972,9 +1960,6 @@ cdioctl(struct disk *dp, u_long cmd, voi
         int     nocopyout, error = 0;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL)
-               return(ENXIO);
-
         cam_periph_lock(periph);

         softc = (struct cd_softc *)periph->softc;

Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c Thu Apr  4 18:59:29 2013        (r249104)
+++ head/sys/cam/scsi/scsi_da.c Thu Apr  4 19:04:15 2013        (r249105)
@@ -962,10 +962,6 @@ daopen(struct disk *dp)
         int error;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL) {
-               return (ENXIO);
-       }
-
         if (cam_periph_acquire(periph) != CAM_REQ_CMP) {
                 return (ENXIO);
         }
@@ -1027,9 +1023,6 @@ daclose(struct disk *dp)
         struct  da_softc *softc;

         periph = (struct cam_periph *)dp->d_drv1;
-       if (periph == NULL)
-               return (0);
-
         cam_periph_lock(periph);
         if (cam_periph_hold(periph, PRIBIO) != 0) {
                 cam_periph_unlock(periph);
@@ -1118,10 +1111,6 @@ dastrategy(struct bio *bp)
         struct da_softc *softc;

         periph = (struct cam_periph *)bp->bio_disk->d_drv1;
-       if (periph == NULL) {
-               biofinish(bp, NULL, ENXIO);
-               return;
-       }
         softc = (struct da_softc *)periph->softc;

         cam_periph_lock(periph);
@@ -1174,8 +1163,6 @@ dadump(void *arg, void *virtual, vm_offs

         dp = arg;
         periph = dp->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
         softc = (struct da_softc *)periph->softc;
         cam_periph_lock(periph);
         secsize = softc->params.secsize;
@@ -1250,9 +1237,6 @@ dagetattr(struct bio *bp)
         struct cam_periph *periph;

         periph = (struct cam_periph *)bp->bio_disk->d_drv1;
-       if (periph == NULL)
-               return (ENXIO);
-
         cam_periph_lock(periph);
         ret = xpt_getattr(bp->bio_data, bp->bio_length, bp->bio_attribute,
             periph->path);
@@ -1295,7 +1279,6 @@ dadiskgonecb(struct disk *dp)
         struct cam_periph *periph;

         periph = (struct cam_periph *)dp->d_drv1;
-
         cam_periph_release(periph);
  }



--
Alexander Motin
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to