|
@@ -139,6 +139,10 @@ dasd_eckd_set_online(struct ccw_device *cdev)
|
|
|
static const int sizes_trk0[] = { 28, 148, 84 };
|
|
|
#define LABEL_SIZE 140
|
|
|
|
|
|
+/* head and record addresses of count_area read in analysis ccw */
|
|
|
+static const int count_area_head[] = { 0, 0, 0, 0, 2 };
|
|
|
+static const int count_area_rec[] = { 1, 2, 3, 4, 1 };
|
|
|
+
|
|
|
static inline unsigned int
|
|
|
round_up_multiple(unsigned int no, unsigned int mult)
|
|
|
{
|
|
@@ -1939,7 +1943,10 @@ static int dasd_eckd_end_analysis(struct dasd_block *block)
|
|
|
count_area = NULL;
|
|
|
for (i = 0; i < 3; i++) {
|
|
|
if (private->count_area[i].kl != 4 ||
|
|
|
- private->count_area[i].dl != dasd_eckd_cdl_reclen(i) - 4) {
|
|
|
+ private->count_area[i].dl != dasd_eckd_cdl_reclen(i) - 4 ||
|
|
|
+ private->count_area[i].cyl != 0 ||
|
|
|
+ private->count_area[i].head != count_area_head[i] ||
|
|
|
+ private->count_area[i].record != count_area_rec[i]) {
|
|
|
private->uses_cdl = 0;
|
|
|
break;
|
|
|
}
|
|
@@ -1951,7 +1958,10 @@ static int dasd_eckd_end_analysis(struct dasd_block *block)
|
|
|
for (i = 0; i < 5; i++) {
|
|
|
if ((private->count_area[i].kl != 0) ||
|
|
|
(private->count_area[i].dl !=
|
|
|
- private->count_area[0].dl))
|
|
|
+ private->count_area[0].dl) ||
|
|
|
+ private->count_area[i].cyl != 0 ||
|
|
|
+ private->count_area[i].head != count_area_head[i] ||
|
|
|
+ private->count_area[i].record != count_area_rec[i])
|
|
|
break;
|
|
|
}
|
|
|
if (i == 5)
|