svn commit: r363870 - head/sys/cam/mmc

Ilya Bakulin kibab at FreeBSD.org
Tue Aug 4 21:58:43 UTC 2020


Author: kibab
Date: Tue Aug  4 21:58:43 2020
New Revision: 363870
URL: https://svnweb.freebsd.org/changeset/base/363870

Log:
  Minor cleanups in mmc_xpt.c
  
   * Downgrade some CAM debug messages from _INFO to _DEBUG level;
   * Add KASSERT for the case when we suspect incorrect CAM SIM initialization (using cam_sim_alloc() instead of cam_sim_alloc_dev());
   * Use waiting version of xpt_alloc_ccb(), we are not in hurry;
   * With the waiting version we cannot get NULL return, so remove the NULL check;
   * In some csses, the name of mmcprobe_done has been written as mmc_probedone();
   * Send AC_LOST_DEVICE if we, well, lost the device;
   * Misc style(9) fixes.
  
  Reviewed by:	manu
  Approved by:	imp (mentor)
  Differential Revision:	https://reviews.freebsd.org/D25843

Modified:
  head/sys/cam/mmc/mmc_xpt.c

Modified: head/sys/cam/mmc/mmc_xpt.c
==============================================================================
--- head/sys/cam/mmc/mmc_xpt.c	Tue Aug  4 21:49:13 2020	(r363869)
+++ head/sys/cam/mmc/mmc_xpt.c	Tue Aug  4 21:58:43 2020	(r363870)
@@ -374,8 +374,7 @@ mmc_announce_periph(struct cam_periph *periph)
 
 	cam_periph_assert(periph, MA_OWNED);
 
-	CAM_DEBUG(periph->path, CAM_DEBUG_INFO,
-		  ("mmc_announce_periph: called\n"));
+	CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("mmc_announce_periph"));
 
 	xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL);
 	cts.ccb_h.func_code = XPT_GET_TRAN_SETTINGS;
@@ -388,15 +387,15 @@ mmc_announce_periph(struct cam_periph *periph)
 }
 
 void
-mmccam_start_discovery(struct cam_sim *sim) {
+mmccam_start_discovery(struct cam_sim *sim)
+{
 	union ccb *ccb;
 	uint32_t pathid;
 
+	KASSERT(sim->sim_dev != NULL, ("mmccam_start_discovery(%s): sim_dev is not initialized,"
+	    " has cam_sim_alloc_dev() been used?", cam_sim_name(sim)));
 	pathid = cam_sim_path(sim);
-	ccb = xpt_alloc_ccb_nowait();
-	if (ccb == NULL) {
-		return;
-	}
+	ccb = xpt_alloc_ccb();
 
 	/*
 	 * We create a rescan request for BUS:0:0, since the card
@@ -806,7 +805,7 @@ mmcprobe_done(struct cam_periph *periph, union ccb *do
 	struct ccb_mmcio *mmcio;
 	u_int32_t  priority;
 
-	CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE, ("mmcprobe_done\n"));
+	CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("mmcprobe_done\n"));
 	softc = (mmcprobe_softc *)periph->softc;
 	path = done_ccb->ccb_h.path;
 	priority = done_ccb->ccb_h.pinfo.priority;
@@ -827,6 +826,9 @@ mmcprobe_done(struct cam_periph *periph, union ccb *do
 
 			/* There was a device there, but now it's gone... */
 			if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0) {
+				CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE,
+				  ("Device lost!\n"));
+
 				xpt_async(AC_LOST_DEVICE, path, NULL);
 			}
 			PROBE_SET_ACTION(softc, PROBE_INVALID);
@@ -896,7 +898,7 @@ mmcprobe_done(struct cam_periph *periph, union ccb *do
                           ("SDIO card: %d functions\n", mmcp->sdio_func_count));
                 if (io_ocr == 0) {
                     CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE,
-                              ("SDIO OCR invalid?!\n"));
+                              ("SDIO OCR invalid, retrying\n"));
                     break; /* Retry */
                 }
 
@@ -1120,22 +1122,21 @@ mmcprobe_done(struct cam_periph *periph, union ccb *do
         }
 	default:
 		CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE,
-			  ("mmc_probedone: invalid action state 0x%x\n", softc->action));
+			  ("mmcprobe_done: invalid action state 0x%x\n", softc->action));
 		panic("default: case in mmc_probe_done()");
 	}
 
-        if (softc->action == PROBE_INVALID &&
-            (path->device->flags & CAM_DEV_UNCONFIGURED) == 0) {
-                CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE,
-			  ("mmc_probedone: Should send AC_LOST_DEVICE but won't for now\n"));
-                //xpt_async(AC_LOST_DEVICE, path, NULL);
-        }
+	if (softc->action == PROBE_INVALID &&
+	  (path->device->flags & CAM_DEV_UNCONFIGURED) == 0) {
+		xpt_async(AC_LOST_DEVICE, path, NULL);
+	}
 
-        if (softc->action != PROBE_INVALID)
-                xpt_schedule(periph, priority);
+	if (softc->action != PROBE_INVALID)
+		xpt_schedule(periph, priority);
 	/* Drop freeze taken due to CAM_DEV_QFREEZE flag set. */
 	int frozen = cam_release_devq(path, 0, 0, 0, FALSE);
-        CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE, ("mmc_probedone: remaining freezecnt %d\n", frozen));
+	CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_PROBE,
+	  ("mmcprobe_done: remaining freeze count %d\n", frozen));
 
 	if (softc->action == PROBE_DONE) {
                 /* Notify the system that the device is found! */
@@ -1148,10 +1149,10 @@ mmcprobe_done(struct cam_periph *periph, union ccb *do
 		}
 	}
 	xpt_release_ccb(done_ccb);
-        if (softc->action == PROBE_DONE || softc->action == PROBE_INVALID) {
-                cam_periph_invalidate(periph);
-                cam_periph_release_locked(periph);
-        }
+	if (softc->action == PROBE_DONE || softc->action == PROBE_INVALID) {
+		cam_periph_invalidate(periph);
+		cam_periph_release_locked(periph);
+	}
 }
 
 void


More information about the svn-src-head mailing list