From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suraj Jitindar Singh Subject: Re: [kvm-unit-tests PATCH 2/4] lib/powerpc: Add generic decrementer exception handler Date: Mon, 08 Aug 2016 13:51:48 +1000 Message-ID: <1470628308.7116.10.camel@gmail.com> References: <1470382393-24209-1-git-send-email-sjitindarsingh@gmail.com> <1470382393-24209-2-git-send-email-sjitindarsingh@gmail.com> <20160805082338.4dixhaypuhardnze@hawk.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Cc: kvm@vger.kernel.org, pbonzini@redhat.com To: Andrew Jones Return-path: Received: from mail-pa0-f68.google.com ([209.85.220.68]:36100 "EHLO mail-pa0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752009AbcHHDvy (ORCPT ); Sun, 7 Aug 2016 23:51:54 -0400 Received: by mail-pa0-f68.google.com with SMTP id ez1so23189625pab.3 for ; Sun, 07 Aug 2016 20:51:54 -0700 (PDT) In-Reply-To: <20160805082338.4dixhaypuhardnze@hawk.localdomain> Sender: kvm-owner@vger.kernel.org List-ID: On Fri, 2016-08-05 at 10:23 +0200, Andrew Jones wrote: > Please CC the powerpc maintainers on powerpc patches, see > the MAINTAINERS file. Woops, didn't see the maintainers file, will be sure to do that on subsequent patches > > On Fri, Aug 05, 2016 at 05:33:11PM +1000, Suraj Jitindar Singh wrote: > > > > Add the lib/powerpc/handlers.c file and associated header files as > > a place > > to implement generic exception handler functions for inclusion in > > tests. > > > > Add a generic exception handler for a decrementer (0x900) interrupt > > which > > will reset the decrementer to its maximum value. > > > > Signed-off-by: Suraj Jitindar Singh > > --- > >  lib/powerpc/asm/handlers.h |  8 ++++++++ > >  lib/powerpc/handlers.c     | 26 ++++++++++++++++++++++++++ > >  lib/ppc64/asm/handlers.h   |  1 + > >  powerpc/Makefile.common    |  1 + > >  4 files changed, 36 insertions(+) > >  create mode 100644 lib/powerpc/asm/handlers.h > >  create mode 100644 lib/powerpc/handlers.c > >  create mode 100644 lib/ppc64/asm/handlers.h > > > > diff --git a/lib/powerpc/asm/handlers.h > > b/lib/powerpc/asm/handlers.h > > new file mode 100644 > > index 0000000..1475052 > > --- /dev/null > > +++ b/lib/powerpc/asm/handlers.h > > @@ -0,0 +1,8 @@ > > +#ifndef _ASMPOWERPC_HANDLERS_H_ > > +#define _ASMPOWERPC_HANDLERS_H_ > > + > > +#include > > + > > +extern void dec_except_handler(struct pt_regs *regs, void *data); > > + > > +#endif /* _ASMPOWERPC_HANDLERS_H_ */ > > diff --git a/lib/powerpc/handlers.c b/lib/powerpc/handlers.c > > new file mode 100644 > > index 0000000..1fb35d7 > > --- /dev/null > > +++ b/lib/powerpc/handlers.c > > @@ -0,0 +1,26 @@ > > +/* > > + * Generic exception handlers for registration and use in tests > > + * > > + * Copyright 2016 Suraj Jitindar Singh, IBM. > > + * > > + * This work is licensed under the terms of the GNU LGPL, version > > 2. > > + */ > > + > > +#include > > +#include > > +#include > > + > > +/* > > + * Generic handler for decrementer exceptions (0x900) > > + * Just reset the decrementer back to its maximum value > > (0x7FFFFFFF) > > + */ > > +void dec_except_handler(__attribute__ ((unused)) struct pt_regs > > *regs, > > + __attribute__ ((unused)) void *data) > We have __unused defined in libcflat.h, and my preference is to > follow > the variable with it, e.g. 'int foo __unused' Ok, I'll change this > > > > > +{ > > + uint32_t dec = 0x7FFFFFFF; > > + > > + asm volatile ( "mtdec %0" : > > + : "r" (dec) > > + : > > +      ); > > +} > > diff --git a/lib/ppc64/asm/handlers.h b/lib/ppc64/asm/handlers.h > > new file mode 100644 > > index 0000000..92e6fb2 > > --- /dev/null > > +++ b/lib/ppc64/asm/handlers.h > > @@ -0,0 +1 @@ > > +#include "../../powerpc/asm/handlers.h" > > diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common > > index 3f8887d..404194b 100644 > > --- a/powerpc/Makefile.common > > +++ b/powerpc/Makefile.common > > @@ -36,6 +36,7 @@ cflatobjs += lib/powerpc/hcall.o > >  cflatobjs += lib/powerpc/setup.o > >  cflatobjs += lib/powerpc/rtas.o > >  cflatobjs += lib/powerpc/processor.o > > +cflatobjs += lib/powerpc/handlers.o > >   > >  FLATLIBS = $(libcflat) $(LIBFDT_archive) > >  %.elf: CFLAGS += $(arch_CFLAGS)