Deleted Added
full compact
vmbus_chan.c (311364) vmbus_chan.c (311366)
1/*-
2 * Copyright (c) 2009-2012,2016 Microsoft Corp.
3 * Copyright (c) 2012 NetApp Inc.
4 * Copyright (c) 2012 Citrix Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 13 unchanged lines hidden (view full) ---

22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2009-2012,2016 Microsoft Corp.
3 * Copyright (c) 2012 NetApp Inc.
4 * Copyright (c) 2012 Citrix Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 13 unchanged lines hidden (view full) ---

22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_chan.c 311364 2017-01-05 05:24:30Z sephe $");
30__FBSDID("$FreeBSD: stable/11/sys/dev/hyperv/vmbus/vmbus_chan.c 311366 2017-01-05 05:41:33Z sephe $");
31
32#include <sys/param.h>
33#include <sys/bus.h>
34#include <sys/kernel.h>
35#include <sys/lock.h>
36#include <sys/malloc.h>
37#include <sys/mutex.h>
38#include <sys/smp.h>

--- 458 unchanged lines hidden (view full) ---

497 struct vmbus_msghc *mh;
498 struct vmbus_chanmsg_gpadl_conn *req;
499 const struct vmbus_message *msg;
500 size_t reqsz;
501 uint32_t gpadl, status;
502 int page_count, range_len, i, cnt, error;
503 uint64_t page_id;
504
31
32#include <sys/param.h>
33#include <sys/bus.h>
34#include <sys/kernel.h>
35#include <sys/lock.h>
36#include <sys/malloc.h>
37#include <sys/mutex.h>
38#include <sys/smp.h>

--- 458 unchanged lines hidden (view full) ---

497 struct vmbus_msghc *mh;
498 struct vmbus_chanmsg_gpadl_conn *req;
499 const struct vmbus_message *msg;
500 size_t reqsz;
501 uint32_t gpadl, status;
502 int page_count, range_len, i, cnt, error;
503 uint64_t page_id;
504
505 /*
506 * Reset GPADL, so that the result would consistent, if error
507 * happened later on.
508 */
509 *gpadl0 = 0;
505 KASSERT(*gpadl0 == 0, ("GPADL is not zero"));
510
511 /*
512 * Preliminary checks.
513 */
514
515 KASSERT((size & PAGE_MASK) == 0,
516 ("invalid GPA size %d, not multiple page size", size));
517 page_count = size >> PAGE_SHIFT;

--- 129 unchanged lines hidden (view full) ---

647int
648vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl)
649{
650 struct vmbus_softc *sc = chan->ch_vmbus;
651 struct vmbus_msghc *mh;
652 struct vmbus_chanmsg_gpadl_disconn *req;
653 int error;
654
506
507 /*
508 * Preliminary checks.
509 */
510
511 KASSERT((size & PAGE_MASK) == 0,
512 ("invalid GPA size %d, not multiple page size", size));
513 page_count = size >> PAGE_SHIFT;

--- 129 unchanged lines hidden (view full) ---

643int
644vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl)
645{
646 struct vmbus_softc *sc = chan->ch_vmbus;
647 struct vmbus_msghc *mh;
648 struct vmbus_chanmsg_gpadl_disconn *req;
649 int error;
650
651 KASSERT(gpadl != 0, ("GPADL is zero"));
652
655 mh = vmbus_msghc_get(sc, sizeof(*req));
656 if (mh == NULL) {
657 vmbus_chan_printf(chan,
658 "can not get msg hypercall for gpadl_disconn(chan%u)\n",
659 chan->ch_id);
660 return (EBUSY);
661 }
662

--- 1301 unchanged lines hidden ---
653 mh = vmbus_msghc_get(sc, sizeof(*req));
654 if (mh == NULL) {
655 vmbus_chan_printf(chan,
656 "can not get msg hypercall for gpadl_disconn(chan%u)\n",
657 chan->ch_id);
658 return (EBUSY);
659 }
660

--- 1301 unchanged lines hidden ---