⬢ DragonFlyBSD Kernel Audit
DF-2426 / fix.diff
← back to finding ↓ download raw
--- sys/dev/disk/amd/amd.c	2026-10-19 12:13:07.621619884 +0000
+++ sys/dev/disk/amd/amd.c	2026-10-19 12:13:13.713541958 +0000
@@ -674,25 +674,10 @@
 	}
 	case XPT_CALC_GEOMETRY:
 	{
-		struct ccb_calc_geometry *ccg;
-		u_int32_t size_mb;
-		u_int32_t secs_per_cylinder;
 		int     extended;
 
-		ccg = &pccb->ccg;
-		size_mb = ccg->volume_size/((1024L * 1024L)/ccg->block_size);
 		extended = (amd->eepromBuf[EE_MODE2] & GREATER_1G) != 0;
-
-		if (size_mb > 1024 && extended) {
-			ccg->heads = 255;
-			ccg->secs_per_track = 63;
-		} else {
-			ccg->heads = 64;
-			ccg->secs_per_track = 32;
-		}
-		secs_per_cylinder = ccg->heads * ccg->secs_per_track;
-		ccg->cylinders = ccg->volume_size / secs_per_cylinder;
-		pccb->ccb_h.status = CAM_REQ_CMP;
+		cam_calc_geometry(&pccb->ccg, extended);
 		xpt_done(pccb);
 		break;
 	}