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:
parent
da001fce26
commit
7a334a28a1
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue