From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Egger Subject: Re: [PATCH] apic: clean up msr handling Date: Fri, 11 Jun 2010 17:51:49 +0200 Message-ID: <201006111751.49588.Christoph.Egger@amd.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Keir Fraser , Jan Beulich List-Id: xen-devel@lists.xenproject.org On Friday 11 June 2010 15:49:39 Keir Fraser wrote: > On 11/06/2010 14:40, "Jan Beulich" wrote: > >>>> On 11.06.10 at 15:22, Christoph Egger wrote: > >> > >> -static inline void write_efer(u64 val) > >> -{ > >> - this_cpu(efer) = val; > >> - wrmsrl(MSR_EFER, val); > >> -} > >> +#define write_efer(val) do { \ > >> + this_cpu(efer) = val; \ > >> + wrmsrl(MSR_EFER, val); \ > >> +} while(0) > > > > This isn't a good change imo: You now require all current and future > > users of write_efer() to not pass expressions with side effects. > > > > Also, is doesn't really look like a cleanup to me, more like a > > complication. > > Hm, I didn't spot that one. It's odd since I thought Christoph was changign > macros into inlien functions where possible. Maybe he just changes in > whichever direction makes his patch bigger? ;-) No, this change has to do with 'smp_processor_id() undefined'. The root problem is a circular dependency with inclusion of headers. The right fix is to clean up the headers. Christoph -- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85609 Dornach b. Muenchen Geschaeftsfuehrer: Andrew Bowd, Thomas M. McCoy, Giuliano Meroni Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632