lkml.org 
[lkml]   [2016]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] lguest: read length of device_cap later
    Date
    Read the length of the capability with type VIRTIO_PCI_CAP_DEVICE_CFG
    only when we're sure we're going to need it. Which is just before the
    check whether the virtio console actually has an emerg_wr field.

    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    ---
    arch/x86/lguest/boot.c | 7 +++----
    1 file changed, 3 insertions(+), 4 deletions(-)

    diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
    index 4ba229ac3f4f..535e3197d0c7 100644
    --- a/arch/x86/lguest/boot.c
    +++ b/arch/x86/lguest/boot.c
    @@ -1258,7 +1258,7 @@ static void probe_pci_console(void)
    u8 vndr = read_pci_config_byte(0, 1, 0, cap);
    if (vndr == PCI_CAP_ID_VNDR) {
    u8 type, bar;
    - u32 offset, length;
    + u32 offset;

    type = read_pci_config_byte(0, 1, 0,
    cap + offsetof(struct virtio_pci_cap, cfg_type));
    @@ -1266,15 +1266,12 @@ static void probe_pci_console(void)
    cap + offsetof(struct virtio_pci_cap, bar));
    offset = read_pci_config(0, 1, 0,
    cap + offsetof(struct virtio_pci_cap, offset));
    - length = read_pci_config(0, 1, 0,
    - cap + offsetof(struct virtio_pci_cap, length));

    switch (type) {
    case VIRTIO_PCI_CAP_DEVICE_CFG:
    if (bar == 0) {
    device_cap = cap;
    device_offset = offset;
    - device_len = length;
    }
    break;
    case VIRTIO_PCI_CAP_PCI_CFG:
    @@ -1297,6 +1294,8 @@ static void probe_pci_console(void)
    * emerg_wr. If it doesn't support VIRTIO_CONSOLE_F_EMERG_WRITE
    * it should ignore the access.
    */
    + device_len = read_pci_config(0, 1, 0,
    + device_cap + offsetof(struct virtio_pci_cap, length));
    if (device_len < (offsetof(struct virtio_console_config, emerg_wr)
    + sizeof(u32))) {
    printk(KERN_ERR "lguest: console missing emerg_wr field\n");
    --
    2.4.3
    \
     
     \ /
      Last update: 2016-03-03 13:41    [W:9.650 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site