On 8/10/21 6:22 PM, Pierre Morel wrote: > stsi_get_fc is now needed in multiple tests. > > As it does not need to store information but only returns > the machine level, suppress the address parameter. > > Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> Please push this one to devel for coverage: Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > --- > lib/s390x/asm/arch_def.h | 16 ++++++++++++++++ > s390x/stsi.c | 20 ++------------------ > 2 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h > index 15cf7d48..2f70d840 100644 > --- a/lib/s390x/asm/arch_def.h > +++ b/lib/s390x/asm/arch_def.h > @@ -328,6 +328,22 @@ static inline int stsi(void *addr, int fc, int sel1, int sel2) > return cc; > } > > +static inline unsigned long stsi_get_fc(void) > +{ > + register unsigned long r0 asm("0") = 0; > + register unsigned long r1 asm("1") = 0; > + int cc; > + > + asm volatile("stsi 0\n" > + "ipm %[cc]\n" > + "srl %[cc],28\n" > + : "+d" (r0), [cc] "=d" (cc) > + : "d" (r1) > + : "cc", "memory"); > + assert(!cc); > + return r0 >> 28; > +} > + > static inline int servc(uint32_t command, unsigned long sccb) > { > int cc; > diff --git a/s390x/stsi.c b/s390x/stsi.c > index 87d48047..391f8849 100644 > --- a/s390x/stsi.c > +++ b/s390x/stsi.c > @@ -71,28 +71,12 @@ static void test_priv(void) > report_prefix_pop(); > } > > -static inline unsigned long stsi_get_fc(void *addr) > -{ > - register unsigned long r0 asm("0") = 0; > - register unsigned long r1 asm("1") = 0; > - int cc; > - > - asm volatile("stsi 0(%[addr])\n" > - "ipm %[cc]\n" > - "srl %[cc],28\n" > - : "+d" (r0), [cc] "=d" (cc) > - : "d" (r1), [addr] "a" (addr) > - : "cc", "memory"); > - assert(!cc); > - return r0 >> 28; > -} > - > static void test_fc(void) > { > report(stsi(pagebuf, 7, 0, 0) == 3, "invalid fc"); > report(stsi(pagebuf, 1, 0, 1) == 3, "invalid selector 1"); > report(stsi(pagebuf, 1, 1, 0) == 3, "invalid selector 2"); > - report(stsi_get_fc(pagebuf) >= 2, "query fc >= 2"); > + report(stsi_get_fc() >= 2, "query fc >= 2"); > } > > static void test_3_2_2(void) > @@ -112,7 +96,7 @@ static void test_3_2_2(void) > report_prefix_push("3.2.2"); > > /* Is the function code available at all? */ > - if (stsi_get_fc(pagebuf) < 3) { > + if (stsi_get_fc() < 3) { > report_skip("Running under lpar, no level 3 to test."); > goto out; > } >