Re: [PATCH 00/25] Staging: hv: Cleanup vmbus driver code

From: Christoph Hellwig
Date: Sun May 01 2011 - 16:53:27 EST


On Sun, May 01, 2011 at 06:08:37PM +0000, KY Srinivasan wrote:
> Could you elaborate on the problems/issues when the block driver registers for the
> IDE majors. On the Qemu side, we have a mechanism to disable the emulation when
> PV drivers load. I don't think there is an equivalent mechanism on the Windows side.
> So, as far as I know, registering for the IDE majors is the only way to also prevent native
> drivers in Linux from taking control of the emulated device.

What qemu are you talking about for the qemu side? Upstream qemu
doesn't have any way to provide the same image as multiple devices,
nevermind dynamically unplugging bits in that case. Nor does it support
the hyperv devices.

When you steal majors you rely on:

a) loading earlier than the driver you steal them from
b) the driver not simple using other numbers
c) if it doesn't preventing it from working at all, also for
devices you don't "replace" with your PV devices.
d) that the guest actually uses the minors your claim, e.g. any
current linux distribution uses libata anyway, so you old IDE
major claim wouldn't do anything. Nor would claiming sd majors
as the low-level libata driver would still drive the hardware
even if SD doesn't bind to it.

You really must never present the same device as two emulated devices
instead of doing such hacks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/