Commit 9ff91a33 authored by Heiko Carstens's avatar Heiko Carstens
Browse files

s390/cio: use new address translation helpers



Use virt_to_dma32() and friends to properly convert virtual to physical and
physical to virtual addresses so that "make C=1" does not generate any
warnings anymore.

Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent e1f51be6
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ EXPORT_SYMBOL_GPL(chsc_ssqd);
 * Returns 0 on success.
 */
int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc,
	      u64 summary_indicator_addr, u64 subchannel_indicator_addr, u8 isc)
	      dma64_t summary_indicator_addr, dma64_t subchannel_indicator_addr, u8 isc)
{
	memset(scssc, 0, sizeof(*scssc));
	scssc->request.length = 0x0fe0;
@@ -861,9 +861,9 @@ int __chsc_do_secm(struct channel_subsystem *css, int enable)
		u32 key : 4;
		u32 : 28;
		u32 zeroes1;
		u32 cub_addr1;
		dma32_t cub_addr1;
		u32 zeroes2;
		u32 cub_addr2;
		dma32_t cub_addr2;
		u32 reserved[13];
		struct chsc_header response;
		u32 status : 8;
@@ -881,8 +881,8 @@ int __chsc_do_secm(struct channel_subsystem *css, int enable)
	secm_area->request.code = 0x0016;

	secm_area->key = PAGE_DEFAULT_KEY >> 4;
	secm_area->cub_addr1 = virt_to_phys(css->cub_addr1);
	secm_area->cub_addr2 = virt_to_phys(css->cub_addr2);
	secm_area->cub_addr1 = virt_to_dma32(css->cub_addr1);
	secm_area->cub_addr2 = virt_to_dma32(css->cub_addr2);

	secm_area->operation_code = enable ? 0 : 1;

+1 −1
Original line number Diff line number Diff line
@@ -164,7 +164,7 @@ void chsc_chp_offline(struct chp_id chpid);
int chsc_get_channel_measurement_chars(struct channel_path *chp);
int chsc_ssqd(struct subchannel_id schid, struct chsc_ssqd_area *ssqd);
int chsc_sadc(struct subchannel_id schid, struct chsc_scssc_area *scssc,
	      u64 summary_indicator_addr, u64 subchannel_indicator_addr,
	      dma64_t summary_indicator_addr, dma64_t subchannel_indicator_addr,
	      u8 isc);
int chsc_sgib(u32 origin);
int chsc_error_from_response(int response);
+2 −2
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
	orb->cmd.i2k = 0;
	orb->cmd.key = key >> 4;
	/* issue "Start Subchannel" */
	orb->cmd.cpa = (u32)virt_to_phys(cpa);
	orb->cmd.cpa = virt_to_dma32(cpa);
	ccode = ssch(sch->schid, orb);

	/* process condition code */
@@ -717,7 +717,7 @@ int cio_tm_start_key(struct subchannel *sch, struct tcw *tcw, u8 lpm, u8 key)
	orb->tm.key = key >> 4;
	orb->tm.b = 1;
	orb->tm.lpm = lpm ? lpm : sch->lpm;
	orb->tm.tcw = (u32)virt_to_phys(tcw);
	orb->tm.tcw = virt_to_dma32(tcw);
	cc = ssch(sch->schid, orb);
	switch (cc) {
	case 0:
+4 −4
Original line number Diff line number Diff line
@@ -64,13 +64,13 @@ static void ccw_timeout_log(struct ccw_device *cdev)
		printk(KERN_WARNING "cio: orb indicates transport mode\n");
		printk(KERN_WARNING "cio: last tcw:\n");
		print_hex_dump(KERN_WARNING, "cio:  ", DUMP_PREFIX_NONE, 16, 1,
			       phys_to_virt(orb->tm.tcw),
			       dma32_to_virt(orb->tm.tcw),
			       sizeof(struct tcw), 0);
	} else {
		printk(KERN_WARNING "cio: orb indicates command mode\n");
		if (phys_to_virt(orb->cmd.cpa) ==
		if (dma32_to_virt(orb->cmd.cpa) ==
		    &private->dma_area->sense_ccw ||
		    phys_to_virt(orb->cmd.cpa) ==
		    dma32_to_virt(orb->cmd.cpa) ==
		    cdev->private->dma_area->iccws)
			printk(KERN_WARNING "cio: last channel program "
			       "(intern):\n");
@@ -78,7 +78,7 @@ static void ccw_timeout_log(struct ccw_device *cdev)
			printk(KERN_WARNING "cio: last channel program:\n");

		print_hex_dump(KERN_WARNING, "cio:  ", DUMP_PREFIX_NONE, 16, 1,
			       phys_to_virt(orb->cmd.cpa),
			       dma32_to_virt(orb->cmd.cpa),
			       sizeof(struct ccw1), 0);
	}
	printk(KERN_WARNING "cio: ccw device state: %d\n",
+1 −1
Original line number Diff line number Diff line
@@ -210,7 +210,7 @@ void ccw_device_sense_id_start(struct ccw_device *cdev)
	snsid_init(cdev);
	/* Channel program setup. */
	cp->cmd_code	= CCW_CMD_SENSE_ID;
	cp->cda		= (u32)virt_to_phys(&cdev->private->dma_area->senseid);
	cp->cda		= virt_to_dma32(&cdev->private->dma_area->senseid);
	cp->count	= sizeof(struct senseid);
	cp->flags	= CCW_FLAG_SLI;
	/* Request setup. */
Loading