Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932141AbbLAWxB (ORCPT ); Tue, 1 Dec 2015 17:53:01 -0500 Received: from smtp-outbound-1.vmware.com ([208.91.2.12]:42953 "EHLO smtp-outbound-1.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757085AbbLAWw7 (ORCPT ); Tue, 1 Dec 2015 17:52:59 -0500 From: "Sinclair Yeh" Date: Tue, 1 Dec 2015 14:54:20 -0800 To: Dmitry Torokhov Cc: X86 ML , "pv-drivers@vmware.com" , "linux-graphics-maintainer@vmware.com" , Arnd Bergmann , Greg Kroah-Hartman , lkml , virtualization@lists.linux-foundation.org, "linux-input@vger.kernel.org" Subject: Re: [PATCH 3/6] Input: Update vmmouse.c to use the common VMW_PORT macros Message-ID: <20151201225420.GA11210@syeh-linux> References: <1449008047-8252-1-git-send-email-syeh@vmware.com> <1449008332-9394-1-git-send-email-syeh@vmware.com> <1449008332-9394-3-git-send-email-syeh@vmware.com> <20151201222414.GH3740@dtor-ws> <20151201223255.GA10753@syeh-linux> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2285 Lines: 55 Hi, On Tue, Dec 01, 2015 at 02:45:27PM -0800, Dmitry Torokhov wrote: > On Tue, Dec 1, 2015 at 2:32 PM, Sinclair Yeh wrote: > > Hi, > > > >> > */ > >> > -#define VMMOUSE_CMD(cmd, in1, out1, out2, out3, out4) \ > >> > -({ \ > >> > - unsigned long __dummy1, __dummy2; \ > >> > - __asm__ __volatile__ ("inl %%dx" : \ > >> > - "=a"(out1), \ > >> > - "=b"(out2), \ > >> > - "=c"(out3), \ > >> > - "=d"(out4), \ > >> > - "=S"(__dummy1), \ > >> > - "=D"(__dummy2) : \ > >> > - "a"(VMMOUSE_PROTO_MAGIC), \ > >> > - "b"(in1), \ > >> > - "c"(VMMOUSE_PROTO_CMD_##cmd), \ > >> > - "d"(VMMOUSE_PROTO_PORT) : \ > >> > - "memory"); \ > >> > +#define VMMOUSE_CMD(cmd, in1, out1, out2, out3, out4) \ > >> > +({ \ > >> > + unsigned long __dummy1 = 0, __dummy2 = 0; \ > >> > >> Why do we need to initialize dummies? > > > > Because for some commands those parameters to VMW_PORT() can be both > > input and outout. > > The vmmouse commands do not use them as input though, so it seems we > are simply wasting CPU cycles setting them to 0 just because we are > using the new VMW_PORT here. Why do we need to switch? What is the > benefit of doing this? There are two reasons. One is to make the code more readable and maintainable. Rather than having mostly similar inline assembly code sprinkled across multiple modules, we can just use the macros and document that. The second reason is this organization makes some on-going future development easier. Hope this helps. Sinclair -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/