Date: Thu, 04 Apr 2013 23:57:45 +0300 From: Alexander Motin <mav@FreeBSD.org> To: Adrian Chadd <adrian@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r249105 - in head/sys/cam: ata scsi Message-ID: <515DE949.6050309@FreeBSD.org> In-Reply-To: <CAJ-Vmo=p04MaqjYZhA3aKz%2BnQ9=diyMfaVJ4kNAjRVPFyHLRkg@mail.gmail.com> References: <201304041904.r34J4F2I065527@svn.freebsd.org> <CAJ-Vmo=p04MaqjYZhA3aKz%2BnQ9=diyMfaVJ4kNAjRVPFyHLRkg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <mav@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?515DE949.6050309>