Skip to content

Microsoft Hyper-V drivers for Linux

Greg Kroah-Hartman lkml virtualization 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest54 patches 29 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/54Staging: hv: add the Hyper-V api header filesdrivers/staging/hv/include/ChannelMessages.h drivers/staging/hv/include/HvHalApi.h drivers/staging/hv/include/HvHcApi.h +11 more+3953 -00 replies
2/54Staging: hv: add the Hyper-V driver header filesdrivers/staging/hv/include/NetVscApi.h drivers/staging/hv/include/StorVscApi.h drivers/staging/hv/include/VmbusApi.h +3 more+1052 -00 replies
3/54Staging: hv: add the Hyper-V virtual busdrivers/staging/hv/Channel.c drivers/staging/hv/Channel.h drivers/staging/hv/ChannelInterface.c +14 more+7108 -00 replies
4/54Staging: hv: add the Hyper-V virtual block driverdrivers/staging/hv/BlkVsc.c drivers/staging/hv/blkvsc_drv.c+1654 -00 replies
5/54Staging: hv: add the Hyper-V virtual network driverdrivers/staging/hv/NetVsc.c drivers/staging/hv/NetVsc.h drivers/staging/hv/RndisFilter.c +2 more+3533 -00 replies
6/54Staging: hv: add the Hyper-V virtual storage driverdrivers/staging/hv/StorVsc.c drivers/staging/hv/storvsc_drv.c+2380 -00 replies
7/54Staging: hv: add a TODO filedrivers/staging/hv/TODO+15 -00 replies
8/54Staging: hv: make the Hyper-V virtual bus code builddrivers/staging/hv/Channel.c drivers/staging/hv/Channel.h drivers/staging/hv/ChannelInterface.h +13 more+37 -340 replies
9/54Staging: hv: use the correct #ifdef for x86-64drivers/staging/hv/Hv.c+1 -10 replies
10/54Staging: hv: add the Hyper-V virtual bus to the builddrivers/staging/Kconfig drivers/staging/Makefile drivers/staging/hv/Kconfig +1 more+14 -00 replies
11/54Staging: hv: make the Hyper-V virtual storage driver builddrivers/staging/hv/StorVsc.c drivers/staging/hv/storvsc_drv.c+11 -90 replies
12/54Staging: hv: add the Hyper-V virtual scsi driver to the builddrivers/staging/hv/Kconfig drivers/staging/hv/Makefile+8 -00 replies
13/54Staging: hv: make the Hyper-V virtual block driver builddrivers/staging/hv/BlkVsc.c drivers/staging/hv/blkvsc_drv.c+13 -120 replies
14/54Staging: hv: add the Hyper-V virtual block driver to the builddrivers/staging/hv/Kconfig drivers/staging/hv/Makefile+9 -00 replies
15/54Staging: hv: make the Hyper-V virtual network driver builddrivers/staging/hv/NetVsc.c drivers/staging/hv/NetVsc.h drivers/staging/hv/RndisFilter.c +3 more+25 -180 replies
16/54Staging: hv: add the Hyper-V virtual network driver to the builddrivers/staging/hv/Kconfig drivers/staging/hv/Makefile+9 -00 replies
17/54Staging: hv: remove INTERNAL typedefdrivers/staging/hv/Channel.h drivers/staging/hv/ChannelInterface.c drivers/staging/hv/ChannelInterface.h +4 more+54 -580 replies
18/54Staging: hv: remove PVOID typedefdrivers/staging/hv/Channel.c drivers/staging/hv/Channel.h drivers/staging/hv/ChannelInterface.c +18 more+82 -830 replies
19/54Staging: hv: remove VOID typedefdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/ChannelMgmt.h +9 more+39 -400 replies
20/54Staging: hv: remove UINT8 and INT8 typedefsdrivers/staging/hv/BlkVsc.c drivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c +11 more+26 -250 replies
21/54Staging: hv: remove UINT16 and INT16 typedefsdrivers/staging/hv/Channel.c drivers/staging/hv/Channel.h drivers/staging/hv/include/ChannelMessages.h +7 more+34 -360 replies
22/54Staging: hv: remove UINT32 and INT32 typedefsdrivers/staging/hv/Channel.c drivers/staging/hv/Channel.h drivers/staging/hv/ChannelInterface.c +25 more+450 -4520 replies
23/54Staging: hv: remove UINT64 and INT64 and UCHAR typedefsdrivers/staging/hv/BlkVsc.c drivers/staging/hv/Channel.c drivers/staging/hv/Channel.h +23 more+173 -1870 replies
24/54Staging: hv: remove USHORT typedefdrivers/staging/hv/include/osd.h drivers/staging/hv/include/vstorage.h+4 -50 replies
25/54Staging: hv: remove ULONGLONG and LONGLONG typedefsdrivers/staging/hv/include/VmbusPacketFormat.h drivers/staging/hv/include/osd.h drivers/staging/hv/include/vstorage.h+2 -50 replies
26/54Staging: hv: remove ULONG_PTR typedefdrivers/staging/hv/Channel.c drivers/staging/hv/Connection.c drivers/staging/hv/Hv.c +6 more+52 -540 replies
27/54Staging: hv: remove ULONG and LONG typedefsdrivers/staging/hv/StorVsc.c drivers/staging/hv/include/StorVscApi.h drivers/staging/hv/include/osd.h +1 more+8 -185 replies
28/54Staging: hv: remove SIZE_T typedefdrivers/staging/hv/Connection.c drivers/staging/hv/Hv.c drivers/staging/hv/Hv.h +3 more+6 -70 replies
29/54Staging: hv: remove DWORD and BYTE typedefsdrivers/staging/hv/include/osd.h+0 -20 replies
30/54Staging: hv: remove BOOL and BOOLEAN typedefsdrivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Hv.h drivers/staging/hv/NetVsc.c +6 more+11 -130 replies
31/54Staging: hv: remove #defines from osd.cdrivers/staging/hv/osd.c+0 -420 replies
32/54Staging: hv: remove MIN and MAX usagesdrivers/staging/hv/include/osd.h drivers/staging/hv/storvsc_drv.c+2 -50 replies
33/54Staging: hv: remove PAGE_SIZE and PAGE_SHIFT and __builtin functionsdrivers/staging/hv/BlkVsc.c drivers/staging/hv/NetVsc.c drivers/staging/hv/RndisFilter.c +3 more+6 -280 replies
34/54Staging: hv: remove STRUCT_PACKED and STRUCT_ALIGNED definesdrivers/staging/hv/RingBuffer.h drivers/staging/hv/include/osd.h+1 -44 replies
35/54Staging: hv: remove UNUSED_VAR usagedrivers/staging/hv/include/osd.h drivers/staging/hv/netvsc_drv.c+1 -30 replies
36/54Staging: hv: remove FIELD_OFFSET usagedrivers/staging/hv/include/VmbusChannelInterface.h drivers/staging/hv/include/osd.h+0 -110 replies
37/54Staging: hv: remove TRUE, FALSE, and NULL usagedrivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Hv.c drivers/staging/hv/NetVsc.c +2 more+13 -270 replies
38/54Staging: hv: osd: remove MemAlloc wrapperdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Hv.c +4 more+6 -170 replies
39/54Staging: hv: osd: remove MemAllocZeroed wrapperdrivers/staging/hv/Channel.c drivers/staging/hv/Connection.c drivers/staging/hv/NetVsc.c +4 more+11 -190 replies
40/54Staging: hv: osd: remove MemAllocAtomic wrapperdrivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Hv.c drivers/staging/hv/NetVsc.c +3 more+4 -110 replies
41/54Staging: hv: osd: remove MemFree wrapperdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Connection.c +6 more+27 -330 replies
42/54Staging: hv: make Channel->InboundLock a real spinlockdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/ChannelMgmt.h+12 -180 replies
43/54Staging: hv: make RingInfo->RingLock a real spinlockdrivers/staging/hv/RingBuffer.c drivers/staging/hv/RingBuffer.h+14 -120 replies
44/54Staging: hv: make Device->RequestLock a real spinlockdrivers/staging/hv/RndisFilter.c+12 -140 replies
45/54Staging: hv: make netDevice->ReceivePacketListLock a real spinlockdrivers/staging/hv/NetVsc.c drivers/staging/hv/NetVsc.h+10 -110 replies
46/54Staging: hv: make gVmbusConnection.ChannelMsgLock a real spinlockdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Connection.c +1 more+32 -270 replies
47/54Staging: hv: make gVmbusConnection.ChannelLock a real spinlockdrivers/staging/hv/Channel.c drivers/staging/hv/ChannelMgmt.c drivers/staging/hv/Connection.c +1 more+16 -132 replies
48/54Staging: hv: osd: remove spinlock wrapper functionsdrivers/staging/hv/include/osd.h drivers/staging/hv/osd.c+0 -420 replies
49/54Staging: hv: osd: remove Sleep wrapperdrivers/staging/hv/NetVsc.c drivers/staging/hv/StorVsc.c drivers/staging/hv/include/osd.h +1 more+9 -140 replies
50/54Staging: hv: osd: remove MemoryFence wrapperdrivers/staging/hv/RingBuffer.c drivers/staging/hv/Vmbus.c drivers/staging/hv/include/osd.h +1 more+3 -100 replies
51/54Staging: hv: osd: remove LogMsg wrapperdrivers/staging/hv/include/logging.h drivers/staging/hv/include/osd.h drivers/staging/hv/osd.c+31 -380 replies
52/54Staging: hv: osd: remove PrintBytes wrapperdrivers/staging/hv/ChannelMgmt.c drivers/staging/hv/StorVsc.c drivers/staging/hv/blkvsc_drv.c +1 more+6 -260 replies
53/54Staging: hv: fix up printk warningsdrivers/staging/hv/Hv.c drivers/staging/hv/StorVsc.c drivers/staging/hv/blkvsc_drv.c +1 more+18 -180 replies
54/54Staging: hv: osd: remove GetTickCount and GetTimestamp wrappersdrivers/staging/hv/include/osd.h drivers/staging/hv/osd.c+0 -150 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [patch 00/54] [Announce] Microsoft Hyper-V drivers for Linux

Hi all,

I'm happy to announce, that after many months of discussions, Microsoft has released their Hyper-V Linux drivers under the GPLv2. Following this message, will be the patches that add the drivers to the drivers/staging/ tree, and a whole bunch of cleanups.

It's taken a long road to get here, and I'd like to thank the following people who made this possible:
- Steve Hemminger for the initial prodding and extreme patience
- Hank Janssen for providing the code and working with me to get it into a workable and semi-mergable state. His involvement within Microsoft was also invaluable.
- Sam Ramji for his push within Microsoft to make this happen in a manner that works with the Linux community.
- Novell for sponsoring my work on the Linux Driver project, without which, this would not have even been possible.
And there are many others both within Novell and Microsoft, who I do not want to slight by not naming, but the list would be too long to go into.

These drivers are to enable Linux to work better when running as a guest on top of the Hyper-V system. There is still a lot of work to do in getting this into "proper" mergable state, and moving it out of the staging directory, but Hank and I will be undertaking this task. See the TODO file in the drivers/staging/hv/ directory if anyone wishes to help out with this task.

The code should be showing up in the linux-next tree soon, as the patches are now in my public tree.

If anyone has any questions about this code, please let me and Hank know about it.

thanks,

greg k-h