Message ID | 20190509195023.11933-1-nadav.amit@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86: Halt on exit | expand |
Err… kvm-unit-tests patch if there is any doubt. > On May 9, 2019, at 12:50 PM, Nadav Amit <nadav.amit@gmail.com> wrote: > > In some cases, shutdown through the test device and Bochs might fail. > Just hang in a loop that executes halt in such cases. > > Signed-off-by: Nadav Amit <nadav.amit@gmail.com> > --- > lib/x86/io.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/lib/x86/io.c b/lib/x86/io.c > index f3e01f7..e6372c6 100644 > --- a/lib/x86/io.c > +++ b/lib/x86/io.c > @@ -99,6 +99,10 @@ void exit(int code) > #else > asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); > #endif > + /* Fallback */ > + while (1) { > + asm volatile ("hlt" ::: "memory"); > + } > __builtin_unreachable(); > } > > -- > 2.17.1
On 5/10/2019 11:34 AM, Nadav Amit wrote: > Err… kvm-unit-tests patch if there is any doubt. > you should contain kvm-unit-tests in the subject as [kvm-unit-tests PATCH] otherwise, we don't know it's a kvm-unit-tests patch. >> On May 9, 2019, at 12:50 PM, Nadav Amit <nadav.amit@gmail.com> wrote: >> >> In some cases, shutdown through the test device and Bochs might fail. >> Just hang in a loop that executes halt in such cases. >> >> Signed-off-by: Nadav Amit <nadav.amit@gmail.com> >> --- >> lib/x86/io.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/lib/x86/io.c b/lib/x86/io.c >> index f3e01f7..e6372c6 100644 >> --- a/lib/x86/io.c >> +++ b/lib/x86/io.c >> @@ -99,6 +99,10 @@ void exit(int code) >> #else >> asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); >> #endif >> + /* Fallback */ >> + while (1) { >> + asm volatile ("hlt" ::: "memory"); >> + } >> __builtin_unreachable(); >> } >> >> -- >> 2.17.1 > >
> On May 12, 2019, at 11:05 PM, Xiaoyao Li <xiaoyao.li@intel.com> wrote: > > On 5/10/2019 11:34 AM, Nadav Amit wrote: >> Err… kvm-unit-tests patch if there is any doubt. > you should contain kvm-unit-tests in the subject as > [kvm-unit-tests PATCH] > > otherwise, we don't know it's a kvm-unit-tests patch. Thanks, I know. The “Err…” meant to say “Oops, I forgot the --subject-prefix, please excuse me." > >>> On May 9, 2019, at 12:50 PM, Nadav Amit <nadav.amit@gmail.com> wrote: >>> >>> In some cases, shutdown through the test device and Bochs might fail. >>> Just hang in a loop that executes halt in such cases. >>> >>> Signed-off-by: Nadav Amit <nadav.amit@gmail.com> >>> --- >>> lib/x86/io.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/lib/x86/io.c b/lib/x86/io.c >>> index f3e01f7..e6372c6 100644 >>> --- a/lib/x86/io.c >>> +++ b/lib/x86/io.c >>> @@ -99,6 +99,10 @@ void exit(int code) >>> #else >>> asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); >>> #endif >>> + /* Fallback */ >>> + while (1) { >>> + asm volatile ("hlt" ::: "memory"); >>> + } >>> __builtin_unreachable(); >>> } >>> >>> -- >>> 2.17.1
2019-05-09 12:50-0700, Nadav Amit: > In some cases, shutdown through the test device and Bochs might fail. > Just hang in a loop that executes halt in such cases. > > Signed-off-by: Nadav Amit <nadav.amit@gmail.com> > --- > lib/x86/io.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/lib/x86/io.c b/lib/x86/io.c > @@ -99,6 +99,10 @@ void exit(int code) > #else > asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); > #endif > + /* Fallback */ > + while (1) { > + asm volatile ("hlt" ::: "memory"); > + } > __builtin_unreachable(); Looks good, we can also drop the __builtin_unreachable() now.
diff --git a/lib/x86/io.c b/lib/x86/io.c index f3e01f7..e6372c6 100644 --- a/lib/x86/io.c +++ b/lib/x86/io.c @@ -99,6 +99,10 @@ void exit(int code) #else asm volatile("out %0, %1" : : "a"(code), "d"((short)0xf4)); #endif + /* Fallback */ + while (1) { + asm volatile ("hlt" ::: "memory"); + } __builtin_unreachable(); }
In some cases, shutdown through the test device and Bochs might fail. Just hang in a loop that executes halt in such cases. Signed-off-by: Nadav Amit <nadav.amit@gmail.com> --- lib/x86/io.c | 4 ++++ 1 file changed, 4 insertions(+)