[PATCH 08/12] Drivers: hv: vmbus: Implement Direct Mode for stimer0

Dan Carpenter dan.carpenter at oracle.com
Wed Feb 14 07:34:34 UTC 2018


On Wed, Feb 14, 2018 at 02:58:41AM +0000, Michael Kelley (EOSG) wrote:
> > -----Original Message-----
> > From: Dan Carpenter <dan.carpenter at oracle.com>
> > Sent: Monday, February 12, 2018 12:42 AM
> > To: KY Srinivasan <kys at microsoft.com>; Stephen Hemminger
> > <stephen at networkplumber.org>
> > Cc: gregkh at linuxfoundation.org; linux-kernel at vger.kernel.org; devel at linuxdriverproject.org;
> > olaf at aepfle.de; apw at canonical.com; vkuznets at redhat.com; jasowang at redhat.com;
> > leann.ogasawara at canonical.com; marcelo.cerri at canonical.com; Stephen Hemminger
> > <sthemmin at microsoft.com>; Michael Kelley (EOSG) <Michael.H.Kelley at microsoft.com>
> > Subject: Re: [PATCH 08/12] Drivers: hv: vmbus: Implement Direct Mode for stimer0
> > 
> > On Sun, Feb 11, 2018 at 05:33:16PM -0700, kys at exchange.microsoft.com wrote:
> > > @@ -116,9 +146,29 @@ static int hv_ce_set_oneshot(struct clock_event_device *evt)
> > >  {
> > >  	union hv_timer_config timer_cfg;
> > >
> > > +	timer_cfg.as_uint64 = 0;
> > >  	timer_cfg.enable = 1;
> > >  	timer_cfg.auto_enable = 1;
> > > -	timer_cfg.sintx = VMBUS_MESSAGE_SINT;
> > > +	if (direct_mode_enabled)
> > > +		/*
> > > +		 * When it expires, the timer will directly interrupt
> > > +		 * on the specified hardware vector/IRQ.
> > > +		 */
> > > +		{
> > > +		timer_cfg.direct_mode = 1;
> > > +		timer_cfg.apic_vector = stimer0_vector;
> > > +		hv_enable_stimer0_percpu_irq(stimer0_irq);
> > > +		}
> > > +	else
> > > +		/*
> > > +		 * When it expires, the timer will generate a VMbus message,
> > > +		 * to be handled by the normal VMbus interrupt handler.
> > > +		 */
> > > +		{
> > > +		timer_cfg.direct_mode = 0;
> > > +		timer_cfg.sintx = VMBUS_MESSAGE_SINT;
> > > +		}
> > > +
> > 
> > This indenting isn't right.  We should probably zero out .apic_vector
> > if .direct_mode is zero.  Or maybe it's fine.  I don't know if any
> > static analysis tools will complain...
> 
> I'll fix the indenting.  Old habits ....
> 
> The " timer_cfg.as_uint64 = 0" statement already zero's out .apic_vector
> along with all the other unused fields in the 64-bit value, as required by
> the Hyper-V spec.

Ah, you're right, of course.

regards,
dan carpenter



More information about the devel mailing list