From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: [PATCH] virtio_pci: fix capability format, comments Date: Tue, 28 May 2013 11:08:16 +0300 Message-ID: <20130528080816.GA23399@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: virtualization@lists.linux-foundation.org, kvm@vger.kernel.org Cc: David Howells , "Paul E. McKenney" , linux-kernel@vger.kernel.org, Dave Jones List-Id: virtualization@lists.linuxfoundation.org LSBxdWV1ZSBzaXplIGNhbiBhY3R1YWxseSBiZSAwIHdoaWNoIGlzIG5vdCBhIHBvd2VyIG9mIDIK LSBmaXggY2FwYWJpbGl0eSBmb3JtYXQuIFBDSSBzcGVjIHNheXM6CglUaGUgbGF5b3V0IG9mIHRo ZSBpbmZvcm1hdGlvbiBpcyB2ZW5kb3Igc3BlY2lmaWMsIGV4Y2VwdCB0aGF0IHRoZSBieXRlCglp bW1lZGlhdGVseSBmb2xsb3dpbmcgdGhlIOKAnE5leHTigJ0gcG9pbnRlciBpbiB0aGUgY2FwYWJp bGl0eSBzdHJ1Y3R1cmUgaXMKCWRlZmluZWQgdG8gYmUgYSBsZW5ndGggZmllbGQuCglUaGlzIGxl bmd0aCBmaWVsZCBwcm92aWRlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBjYXBhYmlsaXR5 CglzdHJ1Y3R1cmUgKGluY2x1ZGluZyB0aGUgSUQgYW5kIE5leHQgcG9pbnRlciBieXRlcykuCgpT aWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgotLS0KClRo aXMgcGF0Y2ggaXMgb24gdG9wIG9mIHRoZSBuZXcgbGF5b3V0IGJyYW5jaCwgdG9vCgogaW5jbHVk ZS91YXBpL2xpbnV4L3ZpcnRpb19wY2kuaCB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L3ZpcnRpb19wY2kuaCBiL2luY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fcGNpLmgKaW5kZXggY2Rh Njg4Zi4uYTVlZjhjZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19wY2ku aAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmlydGlvX3BjaS5oCkBAIC0xMjksNiArMTI5LDcg QEAKIHN0cnVjdCB2aXJ0aW9fcGNpX2NhcCB7CiAJX191OCBjYXBfdm5kcjsJLyogR2VuZXJpYyBQ Q0kgZmllbGQ6IFBDSV9DQVBfSURfVk5EUiAqLwogCV9fdTggY2FwX25leHQ7CS8qIEdlbmVyaWMg UENJIGZpZWxkOiBuZXh0IHB0ci4gKi8KKwlfX3U4IGNhcF9sZW47CS8qIEdlbmVyaWMgUENJIGZp ZWxkOiBjYXBhYmlsaXR5IGxlbmd0aCAqLwogCV9fdTggY2ZnX3R5cGU7CS8qIE9uZSBvZiB0aGUg VklSVElPX1BDSV9DQVBfKl9DRkcuICovCiAJX191OCBiYXI7CQkvKiBXaGVyZSB0byBmaW5kIGl0 LiAqLwogCV9fbGUzMiBvZmZzZXQ7CS8qIE9mZnNldCB3aXRoaW4gYmFyLiAqLwpAQCAtMTU0LDcg KzE1NSw3IEBAIHN0cnVjdCB2aXJ0aW9fcGNpX2NvbW1vbl9jZmcgewogCiAJLyogQWJvdXQgYSBz cGVjaWZpYyB2aXJ0cXVldWUuICovCiAJX19sZTE2IHF1ZXVlX3NlbGVjdDsJCS8qIHJlYWQtd3Jp dGUgKi8KLQlfX2xlMTYgcXVldWVfc2l6ZTsJCS8qIHJlYWQtd3JpdGUsIHBvd2VyIG9mIDIuICov CisJX19sZTE2IHF1ZXVlX3NpemU7CQkvKiByZWFkLXdyaXRlLCBwb3dlciBvZiAyLCBvciAwLiAq LwogCV9fbGUxNiBxdWV1ZV9tc2l4X3ZlY3RvcjsJLyogcmVhZC13cml0ZSAqLwogCV9fbGUxNiBx dWV1ZV9lbmFibGU7CQkvKiByZWFkLXdyaXRlICovCiAJX19sZTE2IHF1ZXVlX25vdGlmeV9vZmY7 CS8qIHJlYWQtb25seSAqLwotLSAKTVNUCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlv bkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlv bi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933387Ab3E1IIP (ORCPT ); Tue, 28 May 2013 04:08:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:8205 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933327Ab3E1IIM (ORCPT ); Tue, 28 May 2013 04:08:12 -0400 Date: Tue, 28 May 2013 11:08:16 +0300 From: "Michael S. Tsirkin" To: virtualization@lists.linux-foundation.org, kvm@vger.kernel.org Cc: Rusty Russell , "Paul E. McKenney" , David Howells , Dave Jones , linux-kernel@vger.kernel.org Subject: [PATCH] virtio_pci: fix capability format, comments Message-ID: <20130528080816.GA23399@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org - queue size can actually be 0 which is not a power of 2 - fix capability format. PCI spec says: The layout of the information is vendor specific, except that the byte immediately following the “Next” pointer in the capability structure is defined to be a length field. This length field provides the number of bytes in the capability structure (including the ID and Next pointer bytes). Signed-off-by: Michael S. Tsirkin --- This patch is on top of the new layout branch, too include/uapi/linux/virtio_pci.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/virtio_pci.h b/include/uapi/linux/virtio_pci.h index cda688f..a5ef8cd 100644 --- a/include/uapi/linux/virtio_pci.h +++ b/include/uapi/linux/virtio_pci.h @@ -129,6 +129,7 @@ struct virtio_pci_cap { __u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */ __u8 cap_next; /* Generic PCI field: next ptr. */ + __u8 cap_len; /* Generic PCI field: capability length */ __u8 cfg_type; /* One of the VIRTIO_PCI_CAP_*_CFG. */ __u8 bar; /* Where to find it. */ __le32 offset; /* Offset within bar. */ @@ -154,7 +155,7 @@ struct virtio_pci_common_cfg { /* About a specific virtqueue. */ __le16 queue_select; /* read-write */ - __le16 queue_size; /* read-write, power of 2. */ + __le16 queue_size; /* read-write, power of 2, or 0. */ __le16 queue_msix_vector; /* read-write */ __le16 queue_enable; /* read-write */ __le16 queue_notify_off; /* read-only */ -- MST