s390/vmur: fix virtual vs physical address confusion
Add missing virt_to_phys() / phys_to_virt() translation to alloc_chan_prog() and free_chan_prog(). This doesn't fix a bug since virtual and physical addresses are currently the same. Signed-off-by: Thomas Richter <tmricht@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
fc17e992e1
commit
0ad92cbd5a
@ -195,7 +195,7 @@ static void free_chan_prog(struct ccw1 *cpa)
|
||||
struct ccw1 *ptr = cpa;
|
||||
|
||||
while (ptr->cda) {
|
||||
kfree((void *)(addr_t) ptr->cda);
|
||||
kfree(phys_to_virt(ptr->cda));
|
||||
ptr++;
|
||||
}
|
||||
kfree(cpa);
|
||||
@ -237,7 +237,7 @@ static struct ccw1 *alloc_chan_prog(const char __user *ubuf, int rec_count,
|
||||
free_chan_prog(cpa);
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
cpa[i].cda = (u32)(addr_t) kbuf;
|
||||
cpa[i].cda = (u32)virt_to_phys(kbuf);
|
||||
if (copy_from_user(kbuf, ubuf, reclen)) {
|
||||
free_chan_prog(cpa);
|
||||
return ERR_PTR(-EFAULT);
|
||||
|
Loading…
Reference in New Issue
Block a user