Bug 907160

Summary: virtio win network driver broken with extended config space
Product: Red Hat Enterprise Linux 6 Reporter: Michael S. Tsirkin <mst>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: acathrow, areis, bcao, bsarathy, dayleparker, juzhang, lijin, lnovich, michen, qiguo, rhod, trichard, virt-docs, xfu, yvugenfi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
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.
Story Points: ---
Clone Of:
: 907348 983321 1107942 (view as bug list) Environment:
Last Closed: 2013-11-22 00:02:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 907348, 983321, 1107942, 1150869    

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 Yvugenfi@redhat.com 2013-04-10 15:30:23 UTC
*** Bug 921841 has been marked as a duplicate of this bug. ***

Comment 9 Yvugenfi@redhat.com 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