Page MenuHomeFreeBSD

D7230.id18501.diff
No OneTemporary

D7230.id18501.diff

Index: sys/dev/hyperv/include/hyperv.h
===================================================================
--- sys/dev/hyperv/include/hyperv.h
+++ sys/dev/hyperv/include/hyperv.h
@@ -267,20 +267,6 @@
#define VMBUS_CHAN_ST_OPENED_SHIFT 0
#define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT)
-static inline void
-hv_set_channel_read_state(hv_vmbus_channel* channel, boolean_t on)
-{
- if (!on)
- channel->ch_flags &= ~VMBUS_CHAN_FLAG_BATCHREAD;
- else
- channel->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD;
-}
-
-int hv_vmbus_channel_open(struct hv_vmbus_channel *chan,
- int txbr_size, int rxbr_size, const void *udata, int udlen,
- vmbus_chan_callback_t cb, void *cbarg);
-void hv_vmbus_channel_close(hv_vmbus_channel *channel);
-
/**
* @brief Get physical address from virtual
*/
Index: sys/dev/hyperv/include/vmbus.h
===================================================================
--- sys/dev/hyperv/include/vmbus.h
+++ sys/dev/hyperv/include/vmbus.h
@@ -89,6 +89,11 @@
struct hv_vmbus_channel;
+int vmbus_chan_open(struct hv_vmbus_channel *chan,
+ int txbr_size, int rxbr_size, const void *udata, int udlen,
+ vmbus_chan_callback_t cb, void *cbarg);
+void vmbus_chan_close(struct hv_vmbus_channel *chan);
+
int vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan,
bus_addr_t paddr, int size, uint32_t *gpadl);
int vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan,
@@ -98,6 +103,7 @@
void vmbus_chan_cpu_rr(struct hv_vmbus_channel *chan);
struct hv_vmbus_channel *
vmbus_chan_cpu2chan(struct hv_vmbus_channel *chan, int cpu);
+void vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on);
struct hv_vmbus_channel **
vmbus_subchan_get(struct hv_vmbus_channel *pri_chan, int subchan_cnt);
Index: sys/dev/hyperv/netvsc/hv_net_vsc.c
===================================================================
--- sys/dev/hyperv/netvsc/hv_net_vsc.c
+++ sys/dev/hyperv/netvsc/hv_net_vsc.c
@@ -645,7 +645,7 @@
{
chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
- hv_vmbus_channel_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE,
+ vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE,
NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0,
hv_nv_on_channel_callback, chan);
}
@@ -675,7 +675,7 @@
/*
* Open the channel
*/
- ret = hv_vmbus_channel_open(chan,
+ ret = vmbus_chan_open(chan,
NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE,
NULL, 0, hv_nv_on_channel_callback, chan);
if (ret != 0) {
@@ -695,7 +695,7 @@
close:
/* Now, we can close the channel safely */
free(chan->hv_chan_rdbuf, M_NETVSC);
- hv_vmbus_channel_close(chan);
+ vmbus_chan_close(chan);
cleanup:
/*
@@ -726,7 +726,7 @@
/* Now, we can close the channel safely */
free(sc->hn_prichan->hv_chan_rdbuf, M_NETVSC);
- hv_vmbus_channel_close(sc->hn_prichan);
+ vmbus_chan_close(sc->hn_prichan);
sema_destroy(&net_dev->channel_init_sema);
free(net_dev, M_NETVSC);
Index: sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
===================================================================
--- sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
+++ sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
@@ -318,7 +318,7 @@
new_channel->hv_chan_priv1 = sc;
vmbus_chan_cpu_rr(new_channel);
- ret = hv_vmbus_channel_open(new_channel,
+ ret = vmbus_chan_open(new_channel,
sc->hs_drv_props->drv_ringbuffer_size,
sc->hs_drv_props->drv_ringbuffer_size,
(void *)&props,
@@ -577,7 +577,7 @@
*/
KASSERT(sc->hs_chan->hv_chan_priv1 == sc, ("invalid chan priv1"));
vmbus_chan_cpu_rr(sc->hs_chan);
- ret = hv_vmbus_channel_open(
+ ret = vmbus_chan_open(
sc->hs_chan,
sc->hs_drv_props->drv_ringbuffer_size,
sc->hs_drv_props->drv_ringbuffer_size,
@@ -1093,7 +1093,7 @@
* under the protection of the incoming channel lock.
*/
- hv_vmbus_channel_close(sc->hs_chan);
+ vmbus_chan_close(sc->hs_chan);
mtx_lock(&sc->hs_lock);
while (!LIST_EMPTY(&sc->hs_free_list)) {
Index: sys/dev/hyperv/utilities/hv_util.c
===================================================================
--- sys/dev/hyperv/utilities/hv_util.c
+++ sys/dev/hyperv/utilities/hv_util.c
@@ -40,6 +40,7 @@
#include <sys/syscallsubr.h>
#include <dev/hyperv/include/hyperv.h>
+#include <dev/hyperv/include/vmbus.h>
#include "hv_util.h"
void
@@ -89,9 +90,9 @@
* Turn off batched reading for all util drivers before we open the
* channel.
*/
- hv_set_channel_read_state(softc->channel, FALSE);
+ vmbus_chan_set_readbatch(softc->channel, false);
- ret = hv_vmbus_channel_open(softc->channel, 4 * PAGE_SIZE,
+ ret = vmbus_chan_open(softc->channel, 4 * PAGE_SIZE,
4 * PAGE_SIZE, NULL, 0,
softc->callback, softc);
@@ -110,7 +111,7 @@
{
struct hv_util_sc *sc = device_get_softc(dev);
- hv_vmbus_channel_close(sc->channel);
+ vmbus_chan_close(sc->channel);
free(sc->receive_buffer, M_DEVBUF);
return (0);
Index: sys/dev/hyperv/vmbus/hv_channel.c
===================================================================
--- sys/dev/hyperv/vmbus/hv_channel.c
+++ sys/dev/hyperv/vmbus/hv_channel.c
@@ -202,9 +202,8 @@
}
int
-hv_vmbus_channel_open(struct hv_vmbus_channel *chan,
- int txbr_size, int rxbr_size, const void *udata, int udlen,
- vmbus_chan_callback_t cb, void *cbarg)
+vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size,
+ const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg)
{
struct vmbus_softc *sc = chan->vmbus_sc;
const struct vmbus_chanmsg_chopen_resp *resp;
@@ -579,7 +578,7 @@
* are not being opened.
*/
void
-hv_vmbus_channel_close(struct hv_vmbus_channel *chan)
+vmbus_chan_close(struct hv_vmbus_channel *chan)
{
int subchan_cnt;
@@ -1370,3 +1369,12 @@
if (msg_proc != NULL)
msg_proc(sc, msg);
}
+
+void
+vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on)
+{
+ if (!on)
+ chan->ch_flags &= ~VMBUS_CHAN_FLAG_BATCHREAD;
+ else
+ chan->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD;
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 6:56 AM (18 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16899812
Default Alt Text
D7230.id18501.diff (5 KB)

Event Timeline