Commit d8132003 authored by Alexander Gordeev's avatar Alexander Gordeev Committed by Heiko Carstens

s390/diag: fix diag26c() physical vs virtual address confusion

Fix virtual vs physical address confusion (which currently are the same).
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 124468af
...@@ -331,7 +331,7 @@ struct hypfs_diag0c_entry; ...@@ -331,7 +331,7 @@ struct hypfs_diag0c_entry;
*/ */
struct diag_ops { struct diag_ops {
int (*diag210)(struct diag210 *addr); int (*diag210)(struct diag210 *addr);
int (*diag26c)(void *req, void *resp, enum diag26c_sc subcode); int (*diag26c)(unsigned long rx, unsigned long rx1, enum diag26c_sc subcode);
int (*diag14)(unsigned long rx, unsigned long ry1, unsigned long subcode); int (*diag14)(unsigned long rx, unsigned long ry1, unsigned long subcode);
int (*diag8c)(struct diag8c *addr, struct ccw_dev_id *devno, size_t len); int (*diag8c)(struct diag8c *addr, struct ccw_dev_id *devno, size_t len);
void (*diag0c)(struct hypfs_diag0c_entry *entry); void (*diag0c)(struct hypfs_diag0c_entry *entry);
...@@ -342,7 +342,7 @@ extern struct diag_ops diag_amode31_ops; ...@@ -342,7 +342,7 @@ extern struct diag_ops diag_amode31_ops;
extern struct diag210 *__diag210_tmp_amode31; extern struct diag210 *__diag210_tmp_amode31;
int _diag210_amode31(struct diag210 *addr); int _diag210_amode31(struct diag210 *addr);
int _diag26c_amode31(void *req, void *resp, enum diag26c_sc subcode); int _diag26c_amode31(unsigned long rx, unsigned long rx1, enum diag26c_sc subcode);
int _diag14_amode31(unsigned long rx, unsigned long ry1, unsigned long subcode); int _diag14_amode31(unsigned long rx, unsigned long ry1, unsigned long subcode);
void _diag0c_amode31(struct hypfs_diag0c_entry *entry); void _diag0c_amode31(struct hypfs_diag0c_entry *entry);
void _diag308_reset_amode31(void); void _diag308_reset_amode31(void);
......
...@@ -265,6 +265,6 @@ EXPORT_SYMBOL(diag224); ...@@ -265,6 +265,6 @@ EXPORT_SYMBOL(diag224);
int diag26c(void *req, void *resp, enum diag26c_sc subcode) int diag26c(void *req, void *resp, enum diag26c_sc subcode)
{ {
diag_stat_inc(DIAG_STAT_X26C); diag_stat_inc(DIAG_STAT_X26C);
return diag_amode31_ops.diag26c(req, resp, subcode); return diag_amode31_ops.diag26c(virt_to_phys(req), virt_to_phys(resp), subcode);
} }
EXPORT_SYMBOL(diag26c); EXPORT_SYMBOL(diag26c);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment