svn commit: r302630 - head/sys/dev/hyperv/vmbus
Sepherosa Ziehau
sephe at FreeBSD.org
Tue Jul 12 08:07:28 UTC 2016
Author: sephe
Date: Tue Jul 12 07:49:38 2016
New Revision: 302630
URL: https://svnweb.freebsd.org/changeset/base/302630
Log:
hyperv/vmbus: Move GPADL index into vmbus_softc
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D6954
Modified:
head/sys/dev/hyperv/vmbus/hv_channel.c
head/sys/dev/hyperv/vmbus/hv_connection.c
head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
head/sys/dev/hyperv/vmbus/vmbus.c
head/sys/dev/hyperv/vmbus/vmbus_var.h
Modified: head/sys/dev/hyperv/vmbus/hv_channel.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 12 07:33:39 2016 (r302629)
+++ head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 12 07:49:38 2016 (r302630)
@@ -343,8 +343,7 @@ hv_vmbus_channel_establish_gpadl(struct
/*
* Allocate GPADL id.
*/
- gpadl = atomic_fetchadd_int(
- &hv_vmbus_g_connection.next_gpadl_handle, 1);
+ gpadl = vmbus_gpadl_alloc(sc);
*gpadl0 = gpadl;
/*
Modified: head/sys/dev/hyperv/vmbus/hv_connection.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_connection.c Tue Jul 12 07:33:39 2016 (r302629)
+++ head/sys/dev/hyperv/vmbus/hv_connection.c Tue Jul 12 07:49:38 2016 (r302630)
@@ -47,8 +47,7 @@
* Globals
*/
hv_vmbus_connection hv_vmbus_g_connection =
- { .connect_state = HV_DISCONNECTED,
- .next_gpadl_handle = 0xE1E10, };
+ { .connect_state = HV_DISCONNECTED };
/**
* Send a connect request on the partition service connection
Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Tue Jul 12 07:33:39 2016 (r302629)
+++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Tue Jul 12 07:49:38 2016 (r302630)
@@ -107,7 +107,6 @@ typedef enum {
typedef struct {
hv_vmbus_connect_state connect_state;
- uint32_t next_gpadl_handle;
/**
* List of primary channels. Sub channels will be linked
Modified: head/sys/dev/hyperv/vmbus/vmbus.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/vmbus.c Tue Jul 12 07:33:39 2016 (r302629)
+++ head/sys/dev/hyperv/vmbus/vmbus.c Tue Jul 12 07:49:38 2016 (r302630)
@@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$");
#include "acpi_if.h"
#include "vmbus_if.h"
+#define VMBUS_GPADL_START 0xe1e10
+
struct vmbus_msghc {
struct hypercall_postmsg_in *mh_inprm;
struct hypercall_postmsg_in mh_inprm_save;
@@ -372,6 +374,12 @@ vmbus_msghc_wakeup(struct vmbus_softc *s
wakeup(&mhc->mhc_active);
}
+uint32_t
+vmbus_gpadl_alloc(struct vmbus_softc *sc)
+{
+ return atomic_fetchadd_int(&sc->vmbus_gpadl, 1);
+}
+
static int
vmbus_connect(struct vmbus_softc *sc, uint32_t version)
{
@@ -1121,6 +1129,7 @@ vmbus_doattach(struct vmbus_softc *sc)
sc->vmbus_flags |= VMBUS_FLAG_ATTACHED;
mtx_init(&sc->vmbus_scan_lock, "vmbus scan", NULL, MTX_DEF);
+ sc->vmbus_gpadl = VMBUS_GPADL_START;
/*
* Create context for "post message" Hypercalls
Modified: head/sys/dev/hyperv/vmbus/vmbus_var.h
==============================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_var.h Tue Jul 12 07:33:39 2016 (r302629)
+++ head/sys/dev/hyperv/vmbus/vmbus_var.h Tue Jul 12 07:49:38 2016 (r302630)
@@ -86,6 +86,7 @@ struct vmbus_softc {
int vmbus_idtvec;
uint32_t vmbus_flags; /* see VMBUS_FLAG_ */
uint32_t vmbus_version;
+ uint32_t vmbus_gpadl;
/* Shared memory for vmbus_{rx,tx}_evtflags */
void *vmbus_evtflags;
@@ -148,4 +149,6 @@ void vmbus_msghc_reset(struct vmbus_msgh
void vmbus_scan_done(struct vmbus_softc *);
void vmbus_scan_newchan(struct vmbus_softc *);
+uint32_t vmbus_gpadl_alloc(struct vmbus_softc *);
+
#endif /* !_VMBUS_VAR_H_ */
More information about the svn-src-all
mailing list