Bug 907160 - virtio win network driver broken with extended config space
Summary: virtio win network driver broken with extended config space
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: virtio-win
Version: 6.4
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Yan Vugenfirer
QA Contact: Virtualization Bugs
URL:
Whiteboard:
: 921841 (view as bug list)
Depends On:
Blocks: 907348 983321 1107942 1150869
TreeView+ depends on / blocked
 
Reported: 2013-02-03 13:58 UTC by Michael S. Tsirkin
Modified: 2014-10-09 05:42 UTC (History)
15 users (show)

Fixed In Version: virtio-win-prewhql-0.1-54
Doc Type: Bug Fix
Doc Text:
Cause: When multi-queuue feature is enabled the BAR size of virtio-net is increased. The driver is testing for BAR size during initialisation. Consequence: Driver fails to start. Fix: Do not test for size and use virtio features to check if additional registers can be accessed. Result: Forward compatibility restored in the driver.
Clone Of:
: 907348 983321 1107942 (view as bug list)
Environment:
Last Closed: 2013-11-22 00:02:09 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:1729 normal SHIPPED_LIVE virtio-win bug fix and enhancement update 2013-11-21 00:39:25 UTC

Description Michael S. Tsirkin 2013-02-03 13:58:18 UTC
Description of problem:
virtio win network driver assumes config space size is 32 bytes.
This breaks with future extensions such as multiqueue.
It should assume >= 32 instead.


Version-Release number of selected component (if applicable):
22 Jan 2013

How reproducible:
always

Steps to Reproduce:
1. check out qemu  v1.4.0-rc0
3. start guest and load virtio win drivers
  
Actual results:
Windows displays a yellow exclamation mark near the virtio-net device and
says it can't start the device (Code 10).


Expected results:
Windows driver starts and works as expected.

Additional info:
qemu-1.4 will include work around where using -M pc-1.3 will
let driver load.
Besides -M pc-1.3, another work around would be:

  -global virtio-net-pci.mq=off

Comment 1 Mike Cao 2013-02-04 02:44:21 UTC
(In reply to comment #0)
> Description of problem:
> virtio win network driver assumes config space size is 32 bytes.
> This breaks with future extensions such as multiqueue.
> It should assume >= 32 instead.
> 
> 
> Version-Release number of selected component (if applicable):
> 22 Jan 2013
> 
> How reproducible:
> always
> 
> Steps to Reproduce:
> 1. check out qemu  v1.4.0-rc0
> 3. start guest and load virtio win drivers
>   
> Actual results:
> Windows displays a yellow exclamation mark near the virtio-net device and
> says it can't start the device (Code 10).
> 
> 
> Expected results:
> Windows driver starts and works as expected.
> 
> Additional info:
> qemu-1.4 will include work around where using -M pc-1.3 will
> let driver load.
> Besides -M pc-1.3, another work around would be:
> 
>   -global virtio-net-pci.mq=off

MST,Yan ,Can this be a RHEL7 virtio-win bug ?

Comment 4 Michael S. Tsirkin 2013-02-04 07:27:03 UTC
Note that checking config >= 32 is also wrong.
The smalest legal size is 20 without MSIX
and 24 with MSIX. 

The rest of the fields are optional, each has a feature bit.
So driver should check feature before checking size. For example:
if (feature & F_MAC && size < offsetof(config.mac) + sizeof(config.mac))
     return FAIL.

Comment 8 Yan Vugenfirer 2013-04-10 15:30:23 UTC
*** Bug 921841 has been marked as a duplicate of this bug. ***

Comment 9 Yan Vugenfirer 2013-04-18 08:31:02 UTC
How to test:

1. Run QEMU with virtio-net-pci with enabled multi-queue feature.

2. Install the driver

3. The driver should be installed correctly according to device manager.

Comment 10 Mike Cao 2013-05-30 05:29:35 UTC
lijin ,pls verify it on RHEL7 host

Comment 11 lijin 2013-06-03 07:22:30 UTC
Reproduced this issue on virtio-win-prewhql-0.1-53 version
Verified this issue on virtio-win-prewhql-0.1-63 verion

steps same as comment #9

Actual Results:
on virtio-win-prewhql-0.1-53, Device Manager displays a yellow exclamation mark on the virtio-net-pci device;
on virtio-win-prewhql-0.1-63,netkvm driver can be install successfully and works normally. 

Based on above ,this issue has been fixed already.

Comment 12 Mike Cao 2013-06-04 01:59:58 UTC
Move status to VERIFIED Based on comment #11

BTW,Yan
Actually this issue is fixed in build 54 instead of build 59

Comment 22 errata-xmlrpc 2013-11-22 00:02:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-1729.html


Note You need to log in before you can comment on or make changes to this bug.