Ganesh <ganes...@linux.ibm.com> writes: > On 8/24/21 6:18 PM, Michael Ellerman wrote: > >> Ganesh Goudar <ganes...@linux.ibm.com> writes: >>> Add test for real address or control memory address access >>> error handling, using NX-GZIP engine. >>> >>> The error is injected by accessing the control memory address >>> using illegal instruction, on successful handling the process >>> attempting to access control memory address using illegal >>> instruction receives SIGBUS. >> ... >> >>> diff --git a/tools/testing/selftests/powerpc/mce/inject-ra-err.sh >>> b/tools/testing/selftests/powerpc/mce/inject-ra-err.sh >>> new file mode 100755 >>> index 000000000000..3633cdc651a1 >>> --- /dev/null >>> +++ b/tools/testing/selftests/powerpc/mce/inject-ra-err.sh >>> @@ -0,0 +1,18 @@ >>> +#!/bin/bash >>> +# SPDX-License-Identifier: GPL-2.0-or-later >>> + >>> +if [[ ! -w /dev/crypto/nx-gzip ]]; then >>> + echo "WARN: Can't access /dev/crypto/nx-gzip, skipping" >>> + exit 0 >>> +fi >>> + >>> +timeout 5 ./inject-ra-err >>> + >>> +# 128 + 7 (SIGBUS) = 135, 128 is a exit code with special meaning. >>> +if [ $? -ne 135 ]; then >>> + echo "FAILED: Real address or Control memory access error not handled" >>> + exit $? >>> +fi >>> + >>> +echo "OK: Real address or Control memory access error is handled" >>> +exit 0 >> I don't think we really need the shell script, we should be able to do >> all that in the C code. >> >> Can you try this? > > it works!, We need to set timeout, with 120 sec timeout we may flood the > dmesg.
Hmm. Does it keep faulting? The regs->nip += 4 is meant to avoid that. cheers