Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp953277ybl; Fri, 16 Aug 2019 06:43:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqwccGb3t7kDiLobnO/d28u+++J3+W3evcOpE+s8GMVVo+v/oGyf57X1cIWnJ5czWtNaCbK+ X-Received: by 2002:a65:62cd:: with SMTP id m13mr7785617pgv.437.1565963002233; Fri, 16 Aug 2019 06:43:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565963002; cv=none; d=google.com; s=arc-20160816; b=VaX0zfmNuUUDmJANiXBm1xI0VK9Utr3Oh0xdns1pd742Em2D3tGPXwSB2Bz9I/0yy9 skQ1cT2RTLlPaazDgb6bip8Gm3iMQxwGtyO02F20CY04Vm+9PoeyAAFbQtgT2Hz3zHRN v8AkOyi/1xaZp1wMIDGbG7w1/qLCPOMlnP3YZmA1axEgArUdJ24qmE/TQ52Wz9Eg9Hd1 OmL1ssP6DR68Wuh3X2985vmMlKJ7YS608QgzThkw8TiCzrg79lZkqQyTKQebq/SZnLHY F76LmTiywnwDUA6GntYVnHk59b3MD/6N/785fSuAQJaomIJQts3W3e5N5sg11IKsqQRW PnEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=YfWGic/dAg3fOFFkayje3xp6vGSyQHJYYgKCOSMt1R4=; b=SKPgCMbmquHiPPshAbUrAriAMJZNsDAPIIt00eE24EWDNyxsYpqpgv+Hykm3qgXKaY WGRtH1hVEkZxIDuxfdZZZH/H2IznL0rU8B44/GexB/aOnQu0qrgoksgasrMZ2/pdktjI KsE77Al+13DBymUE3c0e9Q8OM9+QTWnE4AaY9rfEBCgH9cAOCL50+eGvAvQOyydd93EF /57vpusZM43OqHNwchwZeQqnAPxRv3kfjpXLaG3cxFxqjwRfnlhapZ1tYp04gh2xfS/t m80xeNapcl3dBl4FWiuxNtKN6hPoZYDgS6PAOtN0ngCveu8O0cPr7P0RW90qqcxiERpH UdFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2019-08-05 header.b=oKhRz9KX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p190si198384pfp.2.2019.08.16.06.43.05; Fri, 16 Aug 2019 06:43:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2019-08-05 header.b=oKhRz9KX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727337AbfHPNmN (ORCPT + 99 others); Fri, 16 Aug 2019 09:42:13 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:45238 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726742AbfHPNmM (ORCPT ); Fri, 16 Aug 2019 09:42:12 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x7GDcrU3047809; Fri, 16 Aug 2019 13:42:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=corp-2019-08-05; bh=YfWGic/dAg3fOFFkayje3xp6vGSyQHJYYgKCOSMt1R4=; b=oKhRz9KXJQZeZWP9mAN3VtbPF7T3KnlqEnIKrl+aCmMOpyrCyb+zDRFQ3a0pACv1spsG dDTPTOWCte/DyLfDi6TiugGyErSA9NUhUeCdiF3JvxRMEIKzZZT3WywsdELCoUu2ya9c LWcUIN5m8pHmZAx7fYe3NCs8kdbLVedhMZ0s53M4KisgQoIu1O2pSnISSzLjXgepRfIi 5VHf80LZFNttco54XcJqi+zKmrUR5OAdgKIALjj/2H5hSripyi9SrBLUg30mDBi2DqTp lfUv11Kw/SRwpTtZp7BkonOq84I3Q54iomoOxHNCzuQpsHQehW2fnmxi66Fz/qooCQ2B nQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2120.oracle.com with ESMTP id 2u9nvprp7v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Aug 2019 13:42:07 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x7GDcshr092763; Fri, 16 Aug 2019 13:40:06 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userp3030.oracle.com with ESMTP id 2udgr2w4m9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 16 Aug 2019 13:40:06 +0000 Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x7GDe4fJ032639; Fri, 16 Aug 2019 13:40:05 GMT Received: from kadam (/41.57.98.10) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 16 Aug 2019 06:40:04 -0700 Date: Fri, 16 Aug 2019 16:39:46 +0300 From: Dan Carpenter To: Zhao Yakui Cc: x86@kernel.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, Yin FengWei , Jason Chen CJ , Liu Shuo Subject: Re: [RFC PATCH 11/15] drivers/acrn: add the support of handling emulated ioreq Message-ID: <20190816133511.GC3632@kadam> References: <1565922356-4488-1-git-send-email-yakui.zhao@intel.com> <1565922356-4488-12-git-send-email-yakui.zhao@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1565922356-4488-12-git-send-email-yakui.zhao@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9350 signatures=668684 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1906280000 definitions=main-1908160142 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9350 signatures=668684 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1906280000 definitions=main-1908160142 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Aug 16, 2019 at 10:25:52AM +0800, Zhao Yakui wrote: > +int acrn_ioreq_create_client(unsigned short vmid, > + ioreq_handler_t handler, > + void *client_priv, > + char *name) > +{ > + struct acrn_vm *vm; > + struct ioreq_client *client; > + int client_id; > + > + might_sleep(); > + > + vm = find_get_vm(vmid); > + if (unlikely(!vm || !vm->req_buf)) { > + pr_err("acrn-ioreq: failed to find vm from vmid %d\n", vmid); > + put_vm(vm); > + return -EINVAL; > + } > + > + client_id = alloc_client(); > + if (unlikely(client_id < 0)) { > + pr_err("acrn-ioreq: vm[%d] failed to alloc ioreq client\n", > + vmid); > + put_vm(vm); > + return -EINVAL; > + } > + > + client = acrn_ioreq_get_client(client_id); > + if (unlikely(!client)) { > + pr_err("failed to get the client.\n"); > + put_vm(vm); > + return -EINVAL; Do we need to clean up the alloc_client() allocation? regards, dan carpenter > + } > + > + if (handler) { > + client->handler = handler; > + client->acrn_create_kthread = true; > + } > + > + client->ref_vm = vm; > + client->vmid = vmid; > + client->client_priv = client_priv; > + if (name) > + strncpy(client->name, name, sizeof(client->name) - 1); > + rwlock_init(&client->range_lock); > + INIT_LIST_HEAD(&client->range_list); > + init_waitqueue_head(&client->wq); > + > + /* When it is added to ioreq_client_list, the refcnt is increased */ > + spin_lock_bh(&vm->ioreq_client_lock); > + list_add(&client->list, &vm->ioreq_client_list); > + spin_unlock_bh(&vm->ioreq_client_lock); > + > + pr_info("acrn-ioreq: created ioreq client %d\n", client_id); > + > + return client_id; > +}