From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Huth Subject: Re: [kvm-unit-tests PATCH v2] s390x: Interception tests Date: Sun, 4 Jun 2017 10:59:59 +0200 Message-ID: <98a7bffa-3cf2-cc7c-dacd-e2c39fa28f19@redhat.com> References: <1496407461-31163-1-git-send-email-thuth@redhat.com> <34dffa40-8b82-1b92-94c3-eeb5578659cc@redhat.com> <76c94373-51f7-96cf-acf2-4a6a2912543d@redhat.com> <0c0fd14e-cdb9-dd7a-70d3-b8421adf2a60@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Christian Borntraeger , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= To: David Hildenbrand , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:34840 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751005AbdFDJAJ (ORCPT ); Sun, 4 Jun 2017 05:00:09 -0400 In-Reply-To: <0c0fd14e-cdb9-dd7a-70d3-b8421adf2a60@redhat.com> Content-Language: en-US Sender: kvm-owner@vger.kernel.org List-ID: On 02.06.2017 18:22, David Hildenbrand wrote: > >>>> +static uint8_t pagebuf[PAGE_SIZE * 2] __attribute__((aligned(PAGE_SIZE))); >>>> + >>>> +/* Enable or disable low-address protection */ >>>> +static void set_low_prot(bool enable) >>>> +{ >>>> + uint64_t cr0; >>>> + >>>> + asm volatile (" stctg 0,0,%0 " : : "Q"(cr0)); >>> >>> Use %c0 instead? >> >> It's got to be %%c0 ... not sure whether this looks really nicer here? > > %c0 should work, e.g. do a "git grep "%c0" in linux.git > > arch/s390/kernel/base.S: lctlg %c0,%c0,0(%r4) Well, that's a .S file ... for inline assembly in .c files, you need two percentage characters. >>>> +/* Test the TEST BLOCK instruction */ >>>> +static void test_testblock(void) >>>> +{ >>>> + int cc; >>>> + >>>> + memset(pagebuf, 0xaa, PAGE_SIZE); >>>> + >>>> + asm volatile ( >>>> + " lghi 0,0\n" >>> >>> %0,0 ? >> >> That's certainly wrong, since %0 is the reference to the first output >> parameter (cc). You likely mean %%0 or %%r0 ... and that looks rather >> cumbersome, too. I think I prefer the plain "0" here, what do you think? > > Sorry, of course I meant %r0. My keyboard ate one character ;) > > (again, only one % is required, see e.g. arch/s390/kernel/entry.S) Dito, also %% required here, since we're not in a .S file. Thomas