Re: virtqueue_kick() falls back to returning true

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reading this again today, I realized I was mistaken.

prepare() does not *fail*; a false return means "not needed" (e.g. the
device has set no-notify). The notify() is therefore skipped, but the
kick() as a whole is considered successful.

Sorry about the noise. Carry on.

//Snild

On 2024-11-22 14:55, Snild Dolkow wrote:
> If virtqueue_prepare() fails, virtqueue_kick() falls back to returning true:
> 
> 	/**
> 	 * virtqueue_kick - update after add_buf
> 	 * @vq: the struct virtqueue
> 	 *
> 	 * After one or more virtqueue_add_* calls, invoke this to kick
> 	 * the other side.
> 	 *
> 	 * Caller must ensure we don't call this with other virtqueue
> 	 * operations at the same time (except where noted).
> 	 *
> 	 * Returns false if kick failed, otherwise true.
> 	 */
> 	bool virtqueue_kick(struct virtqueue *vq)
> 	{
> 		if (virtqueue_kick_prepare(vq))
> 			return virtqueue_notify(vq);
> 		return true;
> 	}
> 
>>From the comment (and the return values of virtqueue_notify()), I
> would've expected that last line to return false.
> 
> It probably doesn't matter much; I could only find a few files that care
> about the return value, and I assume failures from prepare are *very* rare.
> 
> //Snild
> 




[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux