HomeFreeBSD

MFC 309030,309039,309080,309081,309083

Description

MFC 309030,309039,309080,309081,309083

309030

hyperv/vmbus: Set a mark on the revoked channel.

This will be used to fix device detach DEVMETHOD for revoked primary
channel.

Sponsored by:   Microsoft
Differential Revision:  https://reviews.freebsd.org/D8522

309039

hyperv/vmbus: Merge free/active locks.

These functions are only used by management stuffs, so there are
no needs to introduce extra complexity.

Sponsored by:   Microsoft
Differential Revision:  https://reviews.freebsd.org/D8524

309080

hyperv/vmbus: Implement orphan support for transaction API

It will be used to fix the primary channel revocation support.

Sponsored by:   Microsoft
Differential Revision:  https://reviews.freebsd.org/D8525

309081

hyperv/vmbus: Fix the primary channel revoking on vmbus side.

Drivers can now use vmbus_chan_{is_revoked,set_orphan,unset_orphan}() and
vmbus_xact_ctx_orphan() to fix their attach/detach DEVMETHODs for revoked
primary channels.

Sponsored by:   Microsoft
Differential Revision:  https://reviews.freebsd.org/D8545

309083

hyperv/vmbus: Fix the multi-channel revoking on vmbus side.

- Reference count the sub-channel when channel offer message is
  processed, so that immediate rescind message on the same channel
  will not race sub-channel open on driver side.
- Drop the above reference when sub-channel is closed, this closely
  mimics the hypervisor's reaction when primary channel is closed
  on the VM side.  No drivers use sub-channel after primary channel
  is closed.

Sponsored by:   Microsoft
Differential Revision:  https://reviews.freebsd.org/D8546

Details

Provenance
sepheAuthored on
Parents
rS310739: MFC 308908,308909
Branches
Unknown
Tags
Unknown