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 --- |