|
@@ -19,18 +19,19 @@
|
|
|
* Call Logical Processor
|
|
|
* Retry logic is handled by the caller.
|
|
|
*/
|
|
|
-static inline u8 clp_instr(void *req)
|
|
|
+static inline u8 clp_instr(void *data)
|
|
|
{
|
|
|
- u64 ilpm;
|
|
|
+ struct { u8 _[CLP_BLK_SIZE]; } *req = data;
|
|
|
+ u64 ignored;
|
|
|
u8 cc;
|
|
|
|
|
|
asm volatile (
|
|
|
- " .insn rrf,0xb9a00000,%[ilpm],%[req],0x0,0x2\n"
|
|
|
+ " .insn rrf,0xb9a00000,%[ign],%[req],0x0,0x2\n"
|
|
|
" ipm %[cc]\n"
|
|
|
" srl %[cc],28\n"
|
|
|
- : [cc] "=d" (cc), [ilpm] "=d" (ilpm)
|
|
|
+ : [cc] "=d" (cc), [ign] "=d" (ignored), "+m" (*req)
|
|
|
: [req] "a" (req)
|
|
|
- : "cc", "memory");
|
|
|
+ : "cc");
|
|
|
return cc;
|
|
|
}
|
|
|
|