Index: subr_disk_mbr.c =================================================================== RCS file: /cvsroot/src/sys/kern/subr_disk_mbr.c,v retrieving revision 1.58 diff -p -u -r1.58 subr_disk_mbr.c --- subr_disk_mbr.c 3 Apr 2023 18:03:24 -0000 1.58 +++ subr_disk_mbr.c 8 Feb 2025 10:12:28 -0000 @@ -258,10 +258,9 @@ scan_iso_vrs_session(mbr_args_t *a, uint struct vrs_desc *vrsd; uint64_t vrs; int sector_size; - int blks, inc; + int inc; sector_size = a->lp->d_secsize; - blks = sector_size / DEV_BSIZE; inc = MAX(1, 2048 / sector_size); /* by definition */ @@ -269,7 +268,7 @@ scan_iso_vrs_session(mbr_args_t *a, uint + first_sector; /* read first vrs sector */ - if (read_sector(a, vrs * blks, 1)) + if (read_sector(a, vrs, 1)) return; /* skip all CD001 records */ @@ -280,7 +279,7 @@ scan_iso_vrs_session(mbr_args_t *a, uint *is_iso9660 = first_sector; vrs += inc; - if (read_sector(a, vrs * blks, 1)) + if (read_sector(a, vrs, 1)) return; } @@ -292,7 +291,7 @@ scan_iso_vrs_session(mbr_args_t *a, uint /* read successor */ vrs += inc; - if (read_sector(a, vrs * blks, 1)) + if (read_sector(a, vrs, 1)) return; /* check for NSR[23] */ @@ -328,7 +327,7 @@ scan_iso_vrs(mbr_args_t *a) dev = a->bp->b_dev; error = bdev_ioctl(dev, MMCGETDISCINFO, &di, FKIOCTL, curlwp); if (error) - return SCAN_CONTINUE; + goto notmmc; /* go through all (data) tracks */ sessionnr = -1; @@ -339,7 +338,7 @@ scan_iso_vrs(mbr_args_t *a) error = bdev_ioctl(dev, MMCGETTRACKINFO, &ti, FKIOCTL, curlwp); if (error) - return SCAN_CONTINUE; + goto notmmc; new_session = (ti.sessionnr != sessionnr); sessionnr = ti.sessionnr; if (new_session) { @@ -353,6 +352,7 @@ scan_iso_vrs(mbr_args_t *a) } } } else { +notmmc: /* try start of disc */ sector = 0; scan_iso_vrs_session(a, sector, &is_iso9660, &is_udf);