forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/arch/powerpc/sysdev/xics/ics-rtas.c
....@@ -50,8 +50,8 @@
5050
5151 server = xics_get_irq_server(d->irq, irq_data_get_affinity_mask(d), 0);
5252
53
- call_status = rtas_call(ibm_set_xive, 3, 1, NULL, hw_irq, server,
54
- DEFAULT_PRIORITY);
53
+ call_status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL, hw_irq,
54
+ server, DEFAULT_PRIORITY);
5555 if (call_status != 0) {
5656 printk(KERN_ERR
5757 "%s: ibm_set_xive irq %u server %x returned %d\n",
....@@ -60,7 +60,7 @@
6060 }
6161
6262 /* Now unmask the interrupt (often a no-op) */
63
- call_status = rtas_call(ibm_int_on, 1, 1, NULL, hw_irq);
63
+ call_status = rtas_call_reentrant(ibm_int_on, 1, 1, NULL, hw_irq);
6464 if (call_status != 0) {
6565 printk(KERN_ERR "%s: ibm_int_on irq=%u returned %d\n",
6666 __func__, hw_irq, call_status);
....@@ -91,7 +91,7 @@
9191 if (hw_irq == XICS_IPI)
9292 return;
9393
94
- call_status = rtas_call(ibm_int_off, 1, 1, NULL, hw_irq);
94
+ call_status = rtas_call_reentrant(ibm_int_off, 1, 1, NULL, hw_irq);
9595 if (call_status != 0) {
9696 printk(KERN_ERR "%s: ibm_int_off irq=%u returned %d\n",
9797 __func__, hw_irq, call_status);
....@@ -99,8 +99,8 @@
9999 }
100100
101101 /* Have to set XIVE to 0xff to be able to remove a slot */
102
- call_status = rtas_call(ibm_set_xive, 3, 1, NULL, hw_irq,
103
- xics_default_server, 0xff);
102
+ call_status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL, hw_irq,
103
+ xics_default_server, 0xff);
104104 if (call_status != 0) {
105105 printk(KERN_ERR "%s: ibm_set_xive(0xff) irq=%u returned %d\n",
106106 __func__, hw_irq, call_status);
....@@ -131,7 +131,7 @@
131131 if (hw_irq == XICS_IPI || hw_irq == XICS_IRQ_SPURIOUS)
132132 return -1;
133133
134
- status = rtas_call(ibm_get_xive, 1, 3, xics_status, hw_irq);
134
+ status = rtas_call_reentrant(ibm_get_xive, 1, 3, xics_status, hw_irq);
135135
136136 if (status) {
137137 printk(KERN_ERR "%s: ibm,get-xive irq=%u returns %d\n",
....@@ -146,8 +146,8 @@
146146 return -1;
147147 }
148148
149
- status = rtas_call(ibm_set_xive, 3, 1, NULL,
150
- hw_irq, irq_server, xics_status[1]);
149
+ status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL,
150
+ hw_irq, irq_server, xics_status[1]);
151151
152152 if (status) {
153153 printk(KERN_ERR "%s: ibm,set-xive irq=%u returns %d\n",
....@@ -179,7 +179,7 @@
179179 return -EINVAL;
180180
181181 /* Check if RTAS knows about this interrupt */
182
- rc = rtas_call(ibm_get_xive, 1, 3, status, hw_irq);
182
+ rc = rtas_call_reentrant(ibm_get_xive, 1, 3, status, hw_irq);
183183 if (rc)
184184 return -ENXIO;
185185
....@@ -198,7 +198,7 @@
198198 {
199199 int rc, status[2];
200200
201
- rc = rtas_call(ibm_get_xive, 1, 3, status, vec);
201
+ rc = rtas_call_reentrant(ibm_get_xive, 1, 3, status, vec);
202202 if (rc)
203203 return -1;
204204 return status[0];