Commit 99aea41a authored by Heiko Carstens's avatar Heiko Carstens
Browse files

s390/dasd_eckd: fix virtual vs physical address confusion



Fix virtual vs physical address confusion. This does not fix a bug
since virtual and physical address spaces are currently the same.

Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 9a349be3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -6239,14 +6239,14 @@ static int dasd_eckd_query_pprc_status(struct dasd_device *device,
	ccw->count = sizeof(struct dasd_psf_prssd_data);
	ccw->flags |= CCW_FLAG_CC;
	ccw->flags |= CCW_FLAG_SLI;
	ccw->cda = (__u32)(addr_t)prssdp;
	ccw->cda = (__u32)virt_to_phys(prssdp);

	/* Read Subsystem Data - query host access */
	ccw++;
	ccw->cmd_code = DASD_ECKD_CCW_RSSD;
	ccw->count = sizeof(*pprc_data);
	ccw->flags |= CCW_FLAG_SLI;
	ccw->cda = (__u32)(addr_t)pprc_data;
	ccw->cda = (__u32)virt_to_phys(pprc_data);

	cqr->buildclk = get_tod_clock();
	cqr->status = DASD_CQR_FILLED;
+6 −6
Original line number Diff line number Diff line
@@ -701,7 +701,7 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
		for (count = 0; count < 32 && count < act->count;
		     count += sizeof(int))
			len += sprintf(page + len, " %08X",
				       ((int *) (addr_t) act->cda)
				       ((int *)phys_to_virt(act->cda))
				       [(count>>2)]);
		len += sprintf(page + len, "\n");
		act++;
@@ -710,18 +710,18 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,

	/* print failing CCW area */
	len = 0;
	if (act <  ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2) {
		act = ((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa) - 2;
	if (act < ((struct ccw1 *)phys_to_virt(irb->scsw.cmd.cpa)) - 2) {
		act = ((struct ccw1 *)phys_to_virt(irb->scsw.cmd.cpa)) - 2;
		len += sprintf(page + len, "......\n");
	}
	end = min((struct ccw1 *)(addr_t) irb->scsw.cmd.cpa + 2, last);
	end = min((struct ccw1 *)phys_to_virt(irb->scsw.cmd.cpa) + 2, last);
	while (act <= end) {
		len += sprintf(page + len, "CCW %px: %08X %08X DAT:",
			       act, ((int *) act)[0], ((int *) act)[1]);
		for (count = 0; count < 32 && count < act->count;
		     count += sizeof(int))
			len += sprintf(page + len, " %08X",
				       ((int *) (addr_t) act->cda)
				       ((int *)phys_to_virt(act->cda))
				       [(count>>2)]);
		len += sprintf(page + len, "\n");
		act++;
@@ -738,7 +738,7 @@ dasd_fba_dump_sense(struct dasd_device *device, struct dasd_ccw_req * req,
		for (count = 0; count < 32 && count < act->count;
		     count += sizeof(int))
			len += sprintf(page + len, " %08X",
				       ((int *) (addr_t) act->cda)
				       ((int *)phys_to_virt(act->cda))
				       [(count>>2)]);
		len += sprintf(page + len, "\n");
		act++;