s390/ap: add missing virt_to_phys address conversion

The address of the notification-indicator byte is an absolute
address. Therefore convert its virtual to a physical address before
being used with PQAP(AQIC).

Note: this currently doesn't fix a real bug, since virtual addresses
are indentical to physical ones.

Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
Heiko Carstens 2021-12-02 20:58:07 +01:00
parent da001fce26
commit 7a334a28a1
1 changed files with 3 additions and 1 deletions

View File

@ -12,6 +12,8 @@
#ifndef _ASM_S390_AP_H_ #ifndef _ASM_S390_AP_H_
#define _ASM_S390_AP_H_ #define _ASM_S390_AP_H_
#include <linux/io.h>
/** /**
* The ap_qid_t identifier of an ap queue. * The ap_qid_t identifier of an ap queue.
* If the AP facilities test (APFT) facility is available, * If the AP facilities test (APFT) facility is available,
@ -238,7 +240,7 @@ static inline struct ap_queue_status ap_aqic(ap_qid_t qid,
struct ap_qirq_ctrl qirqctrl; struct ap_qirq_ctrl qirqctrl;
struct ap_queue_status status; struct ap_queue_status status;
} reg1; } reg1;
void *reg2 = ind; unsigned long reg2 = virt_to_phys(ind);
reg1.qirqctrl = qirqctrl; reg1.qirqctrl = qirqctrl;