lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 24 Jan 2017 08:08:18 -0800
From:   Stephen Hemminger <stephen@...workplumber.org>
To:     Dexuan Cui <decui@...rosoft.com>
Cc:     "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
        "driverdev-devel@...uxdriverproject.org" 
        <driverdev-devel@...uxdriverproject.org>,
        KY Srinivasan <kys@...rosoft.com>,
        Haiyang Zhang <haiyangz@...rosoft.com>,
        Stephen Hemminger <sthemmin@...rosoft.com>,
        "olaf@...fle.de" <olaf@...fle.de>,
        Rolf Neugebauer <rolf.neugebauer@...ker.com>,
        "jasowang@...hat.com" <jasowang@...hat.com>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "apw@...onical.com" <apw@...onical.com>
Subject: Re: [PATCH] Drivers: hv: vmbus: finally fix
 hv_need_to_signal_on_read()

On Tue, 24 Jan 2017 06:54:46 +0000
Dexuan Cui <decui@...rosoft.com> wrote:

> +static inline void
> +init_cached_read_index(struct vmbus_channel *channel)
> +{
> +	struct hv_ring_buffer_info *rbi = &channel->inbound;
> +
> +	rbi->cached_read_index = rbi->ring_buffer->read_index;
> +}

Looks good thanks. This should go in right away. Which versions are impacted?
Should it also go to stable?

In a future patch, the API function names for interacting with the ring buffer
should be changed to all have common prefix (hv_) and maybe do a little rethinking
about what needs to be in ring buffer and what could be local variables.

For example, the cached_read_index is only useful over the span of the loop
reading from the ring buffer. For me, it would be cleaner with a ring_buffer
iterator object which could abstract the API better. 

	struct vmbus_ringbuffer_iter iter;

	vmbus_begin_read(&iter, channel);
	while ((desc = vmbus_next_read(&iter), channel) {
	    ...
	}
	vmbus_end_read(&iter, channel);

Powered by blists - more mailing lists