From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BC659C4332F for ; Mon, 28 Feb 2022 08:07:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231684AbiB1IIX (ORCPT ); Mon, 28 Feb 2022 03:08:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233542AbiB1IIV (ORCPT ); Mon, 28 Feb 2022 03:08:21 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E16C133A1F for ; Mon, 28 Feb 2022 00:07:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646035660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZEg+1lw95oVgyFcFAqtClQVp7snHOaZZ37kJvcE2J+E=; b=XqrFaj4F135it6vhaJJm2w4y3n4jB07m+U7WUm8P7bDtMMXaOaeaHV5v+ynnz/slaCPPG/ l49fyOmtVwgF+6HzROcpYSLbVRTdPOo8rhNWmWHkr/lAhBx7TOTLLybWP+QXwt0nDvoqua /RbhupE5GlMvNztQGCZ03qtLKyXPQnU= Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-199-v3ZAtIs2OlSEXbHooWqYhg-1; Mon, 28 Feb 2022 03:07:36 -0500 X-MC-Unique: v3ZAtIs2OlSEXbHooWqYhg-1 Received: by mail-pg1-f197.google.com with SMTP id u17-20020a63a911000000b0037491401c44so6168674pge.17 for ; Mon, 28 Feb 2022 00:07:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=ZEg+1lw95oVgyFcFAqtClQVp7snHOaZZ37kJvcE2J+E=; b=W24PmUZVTn2WS6DJTQIz8d1DdKOKf+SeExTWBpNwgXWztd1ZdfztyNPko82k460myK Y8xAUembRiZ6kM1hVEL/9jPZxOhBTBdZPmlm6ys7WjtOpXehCcMDAMVR/cKVjSv6Yzec pvSUhWnr2xNhavs5qhGo+pj4ax1+7p4/EOs0RqEO/NudBhXpdl6fOR21UoGAButysvQw xpRFc83Ta+9UHkMtLGwvjyv5ZJHT1lWLiAquHa59x6N/9g/l7LIBD31EgrfevL1slQ8O Z6tS1oMW0ckbD2kOYrz1fnwgWe3rEj26K6Xi4MPdo6jOlQ7hZylWXB75mrFDx8PKrupM Lp3A== X-Gm-Message-State: AOAM530diBgi3omK0NGLr2ZBF/eiKHjTtsYlbo9N++ORlFDapb45X+oa Ee8EMdDv1Rhcb0CTV8VC5fZ0C2x+/VOGxAHmrs713EVml0I2XiO9/yMdnC4atLGt0kK1V79/vUu wsnijZ8c0cg7qDNixEUCMzOF/ X-Received: by 2002:a17:902:b692:b0:151:5474:d3ee with SMTP id c18-20020a170902b69200b001515474d3eemr8260947pls.139.1646035655194; Mon, 28 Feb 2022 00:07:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJznHT+nxWUnKGWZ5hcEVi75Ogi5dSqPiYgaue8FxDbPTCecmBni8Dqz6AEQvbkaw/HCAc7kRA== X-Received: by 2002:a17:902:b692:b0:151:5474:d3ee with SMTP id c18-20020a170902b69200b001515474d3eemr8260925pls.139.1646035654918; Mon, 28 Feb 2022 00:07:34 -0800 (PST) Received: from [10.72.13.215] ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id lr2-20020a17090b4b8200b001bd6b5cce1dsm206968pjb.36.2022.02.28.00.07.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Feb 2022 00:07:34 -0800 (PST) Message-ID: Date: Mon, 28 Feb 2022 16:07:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [RFC PATCH v2 05/19] vdpa: introduce virtqueue groups Content-Language: en-US To: Gautam Dawar Cc: gdawar@xilinx.com, martinh@xilinx.com, hanand@xilinx.com, tanujk@xilinx.com, eperezma@redhat.com, "Michael S. Tsirkin" , Zhu Lingshan , Stefano Garzarella , Xie Yongji , Eli Cohen , Si-Wei Liu , Parav Pandit , Longpeng , virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, netdev@vger.kernel.org References: <20201216064818.48239-1-jasowang@redhat.com> <20220224212314.1326-1-gdawar@xilinx.com> <20220224212314.1326-6-gdawar@xilinx.com> From: Jason Wang In-Reply-To: <20220224212314.1326-6-gdawar@xilinx.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 在 2022/2/25 上午5:22, Gautam Dawar 写道: > This patch introduces virtqueue groups to vDPA device. The virtqueue > group is the minimal set of virtqueues that must share an address > space. And the address space identifier could only be attached to > a specific virtqueue group. > > Signed-off-by: Jason Wang > Signed-off-by: Gautam Dawar > --- > drivers/vdpa/ifcvf/ifcvf_main.c | 8 +++++++- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 8 +++++++- > drivers/vdpa/vdpa.c | 3 +++ > drivers/vdpa/vdpa_sim/vdpa_sim.c | 9 ++++++++- > drivers/vdpa/vdpa_sim/vdpa_sim.h | 1 + > include/linux/vdpa.h | 16 ++++++++++++---- > 6 files changed, 38 insertions(+), 7 deletions(-) We had three more parents now, so we should convert them as well: vp_vdpa, VDUSE and eni_vdpa. Thanks > > diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c > index d1a6b5ab543c..c815a2e62440 100644 > --- a/drivers/vdpa/ifcvf/ifcvf_main.c > +++ b/drivers/vdpa/ifcvf/ifcvf_main.c > @@ -378,6 +378,11 @@ static size_t ifcvf_vdpa_get_config_size(struct vdpa_device *vdpa_dev) > return vf->config_size; > } > > +static u32 ifcvf_vdpa_get_vq_group(struct vdpa_device *vdpa, u16 idx) > +{ > + return 0; > +} > + > static void ifcvf_vdpa_get_config(struct vdpa_device *vdpa_dev, > unsigned int offset, > void *buf, unsigned int len) > @@ -453,6 +458,7 @@ static const struct vdpa_config_ops ifc_vdpa_ops = { > .get_device_id = ifcvf_vdpa_get_device_id, > .get_vendor_id = ifcvf_vdpa_get_vendor_id, > .get_vq_align = ifcvf_vdpa_get_vq_align, > + .get_vq_group = ifcvf_vdpa_get_vq_group, > .get_config_size = ifcvf_vdpa_get_config_size, > .get_config = ifcvf_vdpa_get_config, > .set_config = ifcvf_vdpa_set_config, > @@ -507,7 +513,7 @@ static int ifcvf_vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name, > pdev = ifcvf_mgmt_dev->pdev; > dev = &pdev->dev; > adapter = vdpa_alloc_device(struct ifcvf_adapter, vdpa, > - dev, &ifc_vdpa_ops, name, false); > + dev, &ifc_vdpa_ops, 1, name, false); > if (IS_ERR(adapter)) { > IFCVF_ERR(pdev, "Failed to allocate vDPA structure"); > return PTR_ERR(adapter); > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > index b53603d94082..fcfc28460b72 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -1847,6 +1847,11 @@ static u32 mlx5_vdpa_get_vq_align(struct vdpa_device *vdev) > return PAGE_SIZE; > } > > +static u32 mlx5_vdpa_get_vq_group(struct vdpa_device *vdpa, u16 idx) > +{ > + return 0; > +} > + > enum { MLX5_VIRTIO_NET_F_GUEST_CSUM = 1 << 9, > MLX5_VIRTIO_NET_F_CSUM = 1 << 10, > MLX5_VIRTIO_NET_F_HOST_TSO6 = 1 << 11, > @@ -2363,6 +2368,7 @@ static const struct vdpa_config_ops mlx5_vdpa_ops = { > .get_vq_notification = mlx5_get_vq_notification, > .get_vq_irq = mlx5_get_vq_irq, > .get_vq_align = mlx5_vdpa_get_vq_align, > + .get_vq_group = mlx5_vdpa_get_vq_group, > .get_device_features = mlx5_vdpa_get_device_features, > .set_driver_features = mlx5_vdpa_set_driver_features, > .get_driver_features = mlx5_vdpa_get_driver_features, > @@ -2575,7 +2581,7 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name, > } > > ndev = vdpa_alloc_device(struct mlx5_vdpa_net, mvdev.vdev, mdev->device, &mlx5_vdpa_ops, > - name, false); > + 1, name, false); > if (IS_ERR(ndev)) > return PTR_ERR(ndev); > > diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > index 9846c9de4bfa..a07bf0130559 100644 > --- a/drivers/vdpa/vdpa.c > +++ b/drivers/vdpa/vdpa.c > @@ -159,6 +159,7 @@ static void vdpa_release_dev(struct device *d) > * initialized but before registered. > * @parent: the parent device > * @config: the bus operations that is supported by this device > + * @ngroups: number of groups supported by this device > * @size: size of the parent structure that contains private data > * @name: name of the vdpa device; optional. > * @use_va: indicate whether virtual address must be used by this device > @@ -171,6 +172,7 @@ static void vdpa_release_dev(struct device *d) > */ > struct vdpa_device *__vdpa_alloc_device(struct device *parent, > const struct vdpa_config_ops *config, > + unsigned int ngroups, > size_t size, const char *name, > bool use_va) > { > @@ -203,6 +205,7 @@ struct vdpa_device *__vdpa_alloc_device(struct device *parent, > vdev->config = config; > vdev->features_valid = false; > vdev->use_va = use_va; > + vdev->ngroups = ngroups; > > if (name) > err = dev_set_name(&vdev->dev, "%s", name); > diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c > index ddbe142af09a..c98cb1f869fa 100644 > --- a/drivers/vdpa/vdpa_sim/vdpa_sim.c > +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c > @@ -250,7 +250,7 @@ struct vdpasim *vdpasim_create(struct vdpasim_dev_attr *dev_attr) > else > ops = &vdpasim_config_ops; > > - vdpasim = vdpa_alloc_device(struct vdpasim, vdpa, NULL, ops, > + vdpasim = vdpa_alloc_device(struct vdpasim, vdpa, NULL, ops, 1, > dev_attr->name, false); > if (IS_ERR(vdpasim)) { > ret = PTR_ERR(vdpasim); > @@ -399,6 +399,11 @@ static u32 vdpasim_get_vq_align(struct vdpa_device *vdpa) > return VDPASIM_QUEUE_ALIGN; > } > > +static u32 vdpasim_get_vq_group(struct vdpa_device *vdpa, u16 idx) > +{ > + return 0; > +} > + > static u64 vdpasim_get_device_features(struct vdpa_device *vdpa) > { > struct vdpasim *vdpasim = vdpa_to_sim(vdpa); > @@ -620,6 +625,7 @@ static const struct vdpa_config_ops vdpasim_config_ops = { > .set_vq_state = vdpasim_set_vq_state, > .get_vq_state = vdpasim_get_vq_state, > .get_vq_align = vdpasim_get_vq_align, > + .get_vq_group = vdpasim_get_vq_group, > .get_device_features = vdpasim_get_device_features, > .set_driver_features = vdpasim_set_driver_features, > .get_driver_features = vdpasim_get_driver_features, > @@ -650,6 +656,7 @@ static const struct vdpa_config_ops vdpasim_batch_config_ops = { > .set_vq_state = vdpasim_set_vq_state, > .get_vq_state = vdpasim_get_vq_state, > .get_vq_align = vdpasim_get_vq_align, > + .get_vq_group = vdpasim_get_vq_group, > .get_device_features = vdpasim_get_device_features, > .set_driver_features = vdpasim_set_driver_features, > .get_driver_features = vdpasim_get_driver_features, > diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.h b/drivers/vdpa/vdpa_sim/vdpa_sim.h > index cd58e888bcf3..0be7c1e7ef80 100644 > --- a/drivers/vdpa/vdpa_sim/vdpa_sim.h > +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.h > @@ -63,6 +63,7 @@ struct vdpasim { > u32 status; > u32 generation; > u64 features; > + u32 groups; > /* spinlock to synchronize iommu table */ > spinlock_t iommu_lock; > }; > diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h > index 2de442ececae..026b7ad72ed7 100644 > --- a/include/linux/vdpa.h > +++ b/include/linux/vdpa.h > @@ -85,6 +85,7 @@ struct vdpa_device { > bool use_va; > int nvqs; > struct vdpa_mgmt_dev *mdev; > + unsigned int ngroups; > }; > > /** > @@ -172,6 +173,10 @@ struct vdpa_map_file { > * for the device > * @vdev: vdpa device > * Returns virtqueue algin requirement > + * @get_vq_group: Get the group id for a specific virtqueue > + * @vdev: vdpa device > + * @idx: virtqueue index > + * Returns u32: group id for this virtqueue > * @get_device_features: Get virtio features supported by the device > * @vdev: vdpa device > * Returns the virtio features support by the > @@ -282,6 +287,7 @@ struct vdpa_config_ops { > > /* Device ops */ > u32 (*get_vq_align)(struct vdpa_device *vdev); > + u32 (*get_vq_group)(struct vdpa_device *vdev, u16 idx); > u64 (*get_device_features)(struct vdpa_device *vdev); > int (*set_driver_features)(struct vdpa_device *vdev, u64 features); > u64 (*get_driver_features)(struct vdpa_device *vdev); > @@ -314,6 +320,7 @@ struct vdpa_config_ops { > > struct vdpa_device *__vdpa_alloc_device(struct device *parent, > const struct vdpa_config_ops *config, > + unsigned int ngroups, > size_t size, const char *name, > bool use_va); > > @@ -324,17 +331,18 @@ struct vdpa_device *__vdpa_alloc_device(struct device *parent, > * @member: the name of struct vdpa_device within the @dev_struct > * @parent: the parent device > * @config: the bus operations that is supported by this device > + * @ngroups: the number of virtqueue groups supported by this device > * @name: name of the vdpa device > * @use_va: indicate whether virtual address must be used by this device > * > * Return allocated data structure or ERR_PTR upon error > */ > -#define vdpa_alloc_device(dev_struct, member, parent, config, name, use_va) \ > - container_of(__vdpa_alloc_device( \ > - parent, config, \ > +#define vdpa_alloc_device(dev_struct, member, parent, config, ngroups, name, use_va) \ > + container_of((__vdpa_alloc_device( \ > + parent, config, ngroups, \ > sizeof(dev_struct) + \ > BUILD_BUG_ON_ZERO(offsetof( \ > - dev_struct, member)), name, use_va), \ > + dev_struct, member)), name, use_va)), \ > dev_struct, member) > > int vdpa_register_device(struct vdpa_device *vdev, int nvqs); From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6F6ADC43217 for ; Mon, 28 Feb 2022 08:07:47 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id EE4F84090B; Mon, 28 Feb 2022 08:07:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UX8u6edczQiv; Mon, 28 Feb 2022 08:07:45 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp4.osuosl.org (Postfix) with ESMTPS id 499A6408FD; Mon, 28 Feb 2022 08:07:45 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1848DC0033; Mon, 28 Feb 2022 08:07:45 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 66205C001A for ; Mon, 28 Feb 2022 08:07:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 4B04F408FC for ; Mon, 28 Feb 2022 08:07:44 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kJxbGZhWs0KL for ; Mon, 28 Feb 2022 08:07:42 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp4.osuosl.org (Postfix) with ESMTPS id F18F8408FA for ; Mon, 28 Feb 2022 08:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1646035660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZEg+1lw95oVgyFcFAqtClQVp7snHOaZZ37kJvcE2J+E=; b=XqrFaj4F135it6vhaJJm2w4y3n4jB07m+U7WUm8P7bDtMMXaOaeaHV5v+ynnz/slaCPPG/ l49fyOmtVwgF+6HzROcpYSLbVRTdPOo8rhNWmWHkr/lAhBx7TOTLLybWP+QXwt0nDvoqua /RbhupE5GlMvNztQGCZ03qtLKyXPQnU= Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-663-3QYAlJQSN9ClJyGcQo3dsA-1; Mon, 28 Feb 2022 03:07:36 -0500 X-MC-Unique: 3QYAlJQSN9ClJyGcQo3dsA-1 Received: by mail-pj1-f72.google.com with SMTP id z4-20020a17090ad78400b001bc8d98be2aso8361249pju.6 for ; Mon, 28 Feb 2022 00:07:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=ZEg+1lw95oVgyFcFAqtClQVp7snHOaZZ37kJvcE2J+E=; b=ohzauFkV2mvR9iI+wCDK7K60S1a3oQy4hWntzR/iWWRZb0vvnRy5Qemhasrwh75tsq NubrSZZcUcDu7BYMXCgVwmY6zOH5ywXTa3Y2n5pjKefjpTcc1dxWqfJunxcjk5XDHYb5 7k2w56U3tG9P5gReXH54kZfSGdBgTvD+afpylFkZnUGVHsg1cpUOArX6yXJyUt34Qpcd i+0S0g7t6KqHVToRTzVEhznXyus/K0jZN8QG+2KXjpvAk905dHtxJ/PW+Mv/RlDMfU07 XrFTSuylQKQU7aEwDOcnTHWHOyDBLKzo6USZBsrEntn1cRoSytT5aN20K0U2/KspzL6y lsYQ== X-Gm-Message-State: AOAM533OFo3YuNN/Gn+P1+xgZyJz1CTR3HZ6/oNnJ+X9xwnR1bKd2F70 YLbDskCsYirTS2o1aFukZTYzc6tPaGlzQeMzfejvUPo7FN94GpvvO3Ioa4foyVCGKOitIpyBGCT eNNbJOxUDZVYgXSt0T+amxYqGazrtIinhaM0Ss16p0w== X-Received: by 2002:a17:902:b692:b0:151:5474:d3ee with SMTP id c18-20020a170902b69200b001515474d3eemr8260953pls.139.1646035655194; Mon, 28 Feb 2022 00:07:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJznHT+nxWUnKGWZ5hcEVi75Ogi5dSqPiYgaue8FxDbPTCecmBni8Dqz6AEQvbkaw/HCAc7kRA== X-Received: by 2002:a17:902:b692:b0:151:5474:d3ee with SMTP id c18-20020a170902b69200b001515474d3eemr8260925pls.139.1646035654918; Mon, 28 Feb 2022 00:07:34 -0800 (PST) Received: from [10.72.13.215] ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id lr2-20020a17090b4b8200b001bd6b5cce1dsm206968pjb.36.2022.02.28.00.07.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Feb 2022 00:07:34 -0800 (PST) Message-ID: Date: Mon, 28 Feb 2022 16:07:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Subject: Re: [RFC PATCH v2 05/19] vdpa: introduce virtqueue groups To: Gautam Dawar References: <20201216064818.48239-1-jasowang@redhat.com> <20220224212314.1326-1-gdawar@xilinx.com> <20220224212314.1326-6-gdawar@xilinx.com> From: Jason Wang In-Reply-To: <20220224212314.1326-6-gdawar@xilinx.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" , netdev@vger.kernel.org, Xie Yongji , linux-kernel@vger.kernel.org, gdawar@xilinx.com, virtualization@lists.linux-foundation.org, martinh@xilinx.com, eperezma@redhat.com, hanand@xilinx.com, tanujk@xilinx.com, Si-Wei Liu , Zhu Lingshan , Longpeng , Eli Cohen X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" CuWcqCAyMDIyLzIvMjUg5LiK5Y2INToyMiwgR2F1dGFtIERhd2FyIOWGmemBkzoKPiBUaGlzIHBh dGNoIGludHJvZHVjZXMgdmlydHF1ZXVlIGdyb3VwcyB0byB2RFBBIGRldmljZS4gVGhlIHZpcnRx dWV1ZQo+IGdyb3VwIGlzIHRoZSBtaW5pbWFsIHNldCBvZiB2aXJ0cXVldWVzIHRoYXQgbXVzdCBz aGFyZSBhbiBhZGRyZXNzCj4gc3BhY2UuIEFuZCB0aGUgYWRkcmVzcyBzcGFjZSBpZGVudGlmaWVy IGNvdWxkIG9ubHkgYmUgYXR0YWNoZWQgdG8KPiBhIHNwZWNpZmljIHZpcnRxdWV1ZSBncm91cC4K Pgo+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogR2F1dGFtIERhd2FyIDxnZGF3YXJAeGlsaW54LmNvbT4KPiAtLS0KPiAgIGRy aXZlcnMvdmRwYS9pZmN2Zi9pZmN2Zl9tYWluLmMgICB8ICA4ICsrKysrKystCj4gICBkcml2ZXJz L3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMgfCAgOCArKysrKysrLQo+ICAgZHJpdmVycy92ZHBh L3ZkcGEuYyAgICAgICAgICAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJzL3ZkcGEvdmRwYV9zaW0v dmRwYV9zaW0uYyAgfCAgOSArKysrKysrKy0KPiAgIGRyaXZlcnMvdmRwYS92ZHBhX3NpbS92ZHBh X3NpbS5oICB8ICAxICsKPiAgIGluY2x1ZGUvbGludXgvdmRwYS5oICAgICAgICAgICAgICB8IDE2 ICsrKysrKysrKysrKy0tLS0KPiAgIDYgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCgpXZSBoYWQgdGhyZWUgbW9yZSBwYXJlbnRzIG5vdywgc28gd2Ugc2hv dWxkIGNvbnZlcnQgdGhlbSBhcyB3ZWxsOgoKdnBfdmRwYSwgVkRVU0UgYW5kIGVuaV92ZHBhLgoK VGhhbmtzCgoKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvaWZjdmYvaWZjdmZfbWFpbi5j IGIvZHJpdmVycy92ZHBhL2lmY3ZmL2lmY3ZmX21haW4uYwo+IGluZGV4IGQxYTZiNWFiNTQzYy4u YzgxNWEyZTYyNDQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmRwYS9pZmN2Zi9pZmN2Zl9tYWlu LmMKPiArKysgYi9kcml2ZXJzL3ZkcGEvaWZjdmYvaWZjdmZfbWFpbi5jCj4gQEAgLTM3OCw2ICsz NzgsMTEgQEAgc3RhdGljIHNpemVfdCBpZmN2Zl92ZHBhX2dldF9jb25maWdfc2l6ZShzdHJ1Y3Qg dmRwYV9kZXZpY2UgKnZkcGFfZGV2KQo+ICAgCXJldHVybiAgdmYtPmNvbmZpZ19zaXplOwo+ICAg fQo+ICAgCj4gK3N0YXRpYyB1MzIgaWZjdmZfdmRwYV9nZXRfdnFfZ3JvdXAoc3RydWN0IHZkcGFf ZGV2aWNlICp2ZHBhLCB1MTYgaWR4KQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0 YXRpYyB2b2lkIGlmY3ZmX3ZkcGFfZ2V0X2NvbmZpZyhzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkcGFf ZGV2LAo+ICAgCQkJCSAgdW5zaWduZWQgaW50IG9mZnNldCwKPiAgIAkJCQkgIHZvaWQgKmJ1Ziwg dW5zaWduZWQgaW50IGxlbikKPiBAQCAtNDUzLDYgKzQ1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdmRwYV9jb25maWdfb3BzIGlmY192ZHBhX29wcyA9IHsKPiAgIAkuZ2V0X2RldmljZV9pZAk9 IGlmY3ZmX3ZkcGFfZ2V0X2RldmljZV9pZCwKPiAgIAkuZ2V0X3ZlbmRvcl9pZAk9IGlmY3ZmX3Zk cGFfZ2V0X3ZlbmRvcl9pZCwKPiAgIAkuZ2V0X3ZxX2FsaWduCT0gaWZjdmZfdmRwYV9nZXRfdnFf YWxpZ24sCj4gKwkuZ2V0X3ZxX2dyb3VwCT0gaWZjdmZfdmRwYV9nZXRfdnFfZ3JvdXAsCj4gICAJ LmdldF9jb25maWdfc2l6ZQk9IGlmY3ZmX3ZkcGFfZ2V0X2NvbmZpZ19zaXplLAo+ICAgCS5nZXRf Y29uZmlnCT0gaWZjdmZfdmRwYV9nZXRfY29uZmlnLAo+ICAgCS5zZXRfY29uZmlnCT0gaWZjdmZf dmRwYV9zZXRfY29uZmlnLAo+IEBAIC01MDcsNyArNTEzLDcgQEAgc3RhdGljIGludCBpZmN2Zl92 ZHBhX2Rldl9hZGQoc3RydWN0IHZkcGFfbWdtdF9kZXYgKm1kZXYsIGNvbnN0IGNoYXIgKm5hbWUs Cj4gICAJcGRldiA9IGlmY3ZmX21nbXRfZGV2LT5wZGV2Owo+ICAgCWRldiA9ICZwZGV2LT5kZXY7 Cj4gICAJYWRhcHRlciA9IHZkcGFfYWxsb2NfZGV2aWNlKHN0cnVjdCBpZmN2Zl9hZGFwdGVyLCB2 ZHBhLAo+IC0JCQkJICAgIGRldiwgJmlmY192ZHBhX29wcywgbmFtZSwgZmFsc2UpOwo+ICsJCQkJ ICAgIGRldiwgJmlmY192ZHBhX29wcywgMSwgbmFtZSwgZmFsc2UpOwo+ICAgCWlmIChJU19FUlIo YWRhcHRlcikpIHsKPiAgIAkJSUZDVkZfRVJSKHBkZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgdkRQ QSBzdHJ1Y3R1cmUiKTsKPiAgIAkJcmV0dXJuIFBUUl9FUlIoYWRhcHRlcik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmRwYS9tbHg1L25ldC9tbHg1X3ZuZXQuYyBiL2RyaXZlcnMvdmRwYS9tbHg1 L25ldC9tbHg1X3ZuZXQuYwo+IGluZGV4IGI1MzYwM2Q5NDA4Mi4uZmNmYzI4NDYwYjcyIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvdmRwYS9tbHg1L25ldC9tbHg1X3ZuZXQuYwo+ICsrKyBiL2RyaXZl cnMvdmRwYS9tbHg1L25ldC9tbHg1X3ZuZXQuYwo+IEBAIC0xODQ3LDYgKzE4NDcsMTEgQEAgc3Rh dGljIHUzMiBtbHg1X3ZkcGFfZ2V0X3ZxX2FsaWduKHN0cnVjdCB2ZHBhX2RldmljZSAqdmRldikK PiAgIAlyZXR1cm4gUEFHRV9TSVpFOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyB1MzIgbWx4NV92ZHBh X2dldF92cV9ncm91cChzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkcGEsIHUxNiBpZHgpCj4gK3sKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgZW51bSB7IE1MWDVfVklSVElPX05FVF9GX0dVRVNUX0NT VU0gPSAxIDw8IDksCj4gICAJTUxYNV9WSVJUSU9fTkVUX0ZfQ1NVTSA9IDEgPDwgMTAsCj4gICAJ TUxYNV9WSVJUSU9fTkVUX0ZfSE9TVF9UU082ID0gMSA8PCAxMSwKPiBAQCAtMjM2Myw2ICsyMzY4 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgbWx4NV92ZHBhX29wcyA9 IHsKPiAgIAkuZ2V0X3ZxX25vdGlmaWNhdGlvbiA9IG1seDVfZ2V0X3ZxX25vdGlmaWNhdGlvbiwK PiAgIAkuZ2V0X3ZxX2lycSA9IG1seDVfZ2V0X3ZxX2lycSwKPiAgIAkuZ2V0X3ZxX2FsaWduID0g bWx4NV92ZHBhX2dldF92cV9hbGlnbiwKPiArCS5nZXRfdnFfZ3JvdXAgPSBtbHg1X3ZkcGFfZ2V0 X3ZxX2dyb3VwLAo+ICAgCS5nZXRfZGV2aWNlX2ZlYXR1cmVzID0gbWx4NV92ZHBhX2dldF9kZXZp Y2VfZmVhdHVyZXMsCj4gICAJLnNldF9kcml2ZXJfZmVhdHVyZXMgPSBtbHg1X3ZkcGFfc2V0X2Ry aXZlcl9mZWF0dXJlcywKPiAgIAkuZ2V0X2RyaXZlcl9mZWF0dXJlcyA9IG1seDVfdmRwYV9nZXRf ZHJpdmVyX2ZlYXR1cmVzLAo+IEBAIC0yNTc1LDcgKzI1ODEsNyBAQCBzdGF0aWMgaW50IG1seDVf dmRwYV9kZXZfYWRkKHN0cnVjdCB2ZHBhX21nbXRfZGV2ICp2X21kZXYsIGNvbnN0IGNoYXIgKm5h bWUsCj4gICAJfQo+ICAgCj4gICAJbmRldiA9IHZkcGFfYWxsb2NfZGV2aWNlKHN0cnVjdCBtbHg1 X3ZkcGFfbmV0LCBtdmRldi52ZGV2LCBtZGV2LT5kZXZpY2UsICZtbHg1X3ZkcGFfb3BzLAo+IC0J CQkJIG5hbWUsIGZhbHNlKTsKPiArCQkJCSAxLCBuYW1lLCBmYWxzZSk7Cj4gICAJaWYgKElTX0VS UihuZGV2KSkKPiAgIAkJcmV0dXJuIFBUUl9FUlIobmRldik7Cj4gICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy92ZHBhL3ZkcGEuYyBiL2RyaXZlcnMvdmRwYS92ZHBhLmMKPiBpbmRleCA5ODQ2Yzlk ZTRiZmEuLmEwN2JmMDEzMDU1OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3ZkcGEvdmRwYS5jCj4g KysrIGIvZHJpdmVycy92ZHBhL3ZkcGEuYwo+IEBAIC0xNTksNiArMTU5LDcgQEAgc3RhdGljIHZv aWQgdmRwYV9yZWxlYXNlX2RldihzdHJ1Y3QgZGV2aWNlICpkKQo+ICAgICogaW5pdGlhbGl6ZWQg YnV0IGJlZm9yZSByZWdpc3RlcmVkLgo+ICAgICogQHBhcmVudDogdGhlIHBhcmVudCBkZXZpY2UK PiAgICAqIEBjb25maWc6IHRoZSBidXMgb3BlcmF0aW9ucyB0aGF0IGlzIHN1cHBvcnRlZCBieSB0 aGlzIGRldmljZQo+ICsgKiBAbmdyb3VwczogbnVtYmVyIG9mIGdyb3VwcyBzdXBwb3J0ZWQgYnkg dGhpcyBkZXZpY2UKPiAgICAqIEBzaXplOiBzaXplIG9mIHRoZSBwYXJlbnQgc3RydWN0dXJlIHRo YXQgY29udGFpbnMgcHJpdmF0ZSBkYXRhCj4gICAgKiBAbmFtZTogbmFtZSBvZiB0aGUgdmRwYSBk ZXZpY2U7IG9wdGlvbmFsLgo+ICAgICogQHVzZV92YTogaW5kaWNhdGUgd2hldGhlciB2aXJ0dWFs IGFkZHJlc3MgbXVzdCBiZSB1c2VkIGJ5IHRoaXMgZGV2aWNlCj4gQEAgLTE3MSw2ICsxNzIsNyBA QCBzdGF0aWMgdm9pZCB2ZHBhX3JlbGVhc2VfZGV2KHN0cnVjdCBkZXZpY2UgKmQpCj4gICAgKi8K PiAgIHN0cnVjdCB2ZHBhX2RldmljZSAqX192ZHBhX2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNl ICpwYXJlbnQsCj4gICAJCQkJCWNvbnN0IHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgKmNvbmZpZywK PiArCQkJCQl1bnNpZ25lZCBpbnQgbmdyb3VwcywKPiAgIAkJCQkJc2l6ZV90IHNpemUsIGNvbnN0 IGNoYXIgKm5hbWUsCj4gICAJCQkJCWJvb2wgdXNlX3ZhKQo+ICAgewo+IEBAIC0yMDMsNiArMjA1 LDcgQEAgc3RydWN0IHZkcGFfZGV2aWNlICpfX3ZkcGFfYWxsb2NfZGV2aWNlKHN0cnVjdCBkZXZp Y2UgKnBhcmVudCwKPiAgIAl2ZGV2LT5jb25maWcgPSBjb25maWc7Cj4gICAJdmRldi0+ZmVhdHVy ZXNfdmFsaWQgPSBmYWxzZTsKPiAgIAl2ZGV2LT51c2VfdmEgPSB1c2VfdmE7Cj4gKwl2ZGV2LT5u Z3JvdXBzID0gbmdyb3VwczsKPiAgIAo+ICAgCWlmIChuYW1lKQo+ICAgCQllcnIgPSBkZXZfc2V0 X25hbWUoJnZkZXYtPmRldiwgIiVzIiwgbmFtZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRw YS92ZHBhX3NpbS92ZHBhX3NpbS5jIGIvZHJpdmVycy92ZHBhL3ZkcGFfc2ltL3ZkcGFfc2ltLmMK PiBpbmRleCBkZGJlMTQyYWYwOWEuLmM5OGNiMWY4NjlmYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L3ZkcGEvdmRwYV9zaW0vdmRwYV9zaW0uYwo+ICsrKyBiL2RyaXZlcnMvdmRwYS92ZHBhX3NpbS92 ZHBhX3NpbS5jCj4gQEAgLTI1MCw3ICsyNTAsNyBAQCBzdHJ1Y3QgdmRwYXNpbSAqdmRwYXNpbV9j cmVhdGUoc3RydWN0IHZkcGFzaW1fZGV2X2F0dHIgKmRldl9hdHRyKQo+ICAgCWVsc2UKPiAgIAkJ b3BzID0gJnZkcGFzaW1fY29uZmlnX29wczsKPiAgIAo+IC0JdmRwYXNpbSA9IHZkcGFfYWxsb2Nf ZGV2aWNlKHN0cnVjdCB2ZHBhc2ltLCB2ZHBhLCBOVUxMLCBvcHMsCj4gKwl2ZHBhc2ltID0gdmRw YV9hbGxvY19kZXZpY2Uoc3RydWN0IHZkcGFzaW0sIHZkcGEsIE5VTEwsIG9wcywgMSwKPiAgIAkJ CQkgICAgZGV2X2F0dHItPm5hbWUsIGZhbHNlKTsKPiAgIAlpZiAoSVNfRVJSKHZkcGFzaW0pKSB7 Cj4gICAJCXJldCA9IFBUUl9FUlIodmRwYXNpbSk7Cj4gQEAgLTM5OSw2ICszOTksMTEgQEAgc3Rh dGljIHUzMiB2ZHBhc2ltX2dldF92cV9hbGlnbihzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkcGEpCj4g ICAJcmV0dXJuIFZEUEFTSU1fUVVFVUVfQUxJR047Cj4gICB9Cj4gICAKPiArc3RhdGljIHUzMiB2 ZHBhc2ltX2dldF92cV9ncm91cChzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkcGEsIHUxNiBpZHgpCj4g K3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHU2NCB2ZHBhc2ltX2dldF9kZXZp Y2VfZmVhdHVyZXMoc3RydWN0IHZkcGFfZGV2aWNlICp2ZHBhKQo+ICAgewo+ICAgCXN0cnVjdCB2 ZHBhc2ltICp2ZHBhc2ltID0gdmRwYV90b19zaW0odmRwYSk7Cj4gQEAgLTYyMCw2ICs2MjUsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHZkcGFfY29uZmlnX29wcyB2ZHBhc2ltX2NvbmZpZ19vcHMg PSB7Cj4gICAJLnNldF92cV9zdGF0ZSAgICAgICAgICAgPSB2ZHBhc2ltX3NldF92cV9zdGF0ZSwK PiAgIAkuZ2V0X3ZxX3N0YXRlICAgICAgICAgICA9IHZkcGFzaW1fZ2V0X3ZxX3N0YXRlLAo+ICAg CS5nZXRfdnFfYWxpZ24gICAgICAgICAgID0gdmRwYXNpbV9nZXRfdnFfYWxpZ24sCj4gKwkuZ2V0 X3ZxX2dyb3VwICAgICAgICAgICA9IHZkcGFzaW1fZ2V0X3ZxX2dyb3VwLAo+ICAgCS5nZXRfZGV2 aWNlX2ZlYXR1cmVzICAgID0gdmRwYXNpbV9nZXRfZGV2aWNlX2ZlYXR1cmVzLAo+ICAgCS5zZXRf ZHJpdmVyX2ZlYXR1cmVzICAgID0gdmRwYXNpbV9zZXRfZHJpdmVyX2ZlYXR1cmVzLAo+ICAgCS5n ZXRfZHJpdmVyX2ZlYXR1cmVzICAgID0gdmRwYXNpbV9nZXRfZHJpdmVyX2ZlYXR1cmVzLAo+IEBA IC02NTAsNiArNjU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgdmRw YXNpbV9iYXRjaF9jb25maWdfb3BzID0gewo+ICAgCS5zZXRfdnFfc3RhdGUgICAgICAgICAgID0g dmRwYXNpbV9zZXRfdnFfc3RhdGUsCj4gICAJLmdldF92cV9zdGF0ZSAgICAgICAgICAgPSB2ZHBh c2ltX2dldF92cV9zdGF0ZSwKPiAgIAkuZ2V0X3ZxX2FsaWduICAgICAgICAgICA9IHZkcGFzaW1f Z2V0X3ZxX2FsaWduLAo+ICsJLmdldF92cV9ncm91cCAgICAgICAgICAgPSB2ZHBhc2ltX2dldF92 cV9ncm91cCwKPiAgIAkuZ2V0X2RldmljZV9mZWF0dXJlcyAgICA9IHZkcGFzaW1fZ2V0X2Rldmlj ZV9mZWF0dXJlcywKPiAgIAkuc2V0X2RyaXZlcl9mZWF0dXJlcyAgICA9IHZkcGFzaW1fc2V0X2Ry aXZlcl9mZWF0dXJlcywKPiAgIAkuZ2V0X2RyaXZlcl9mZWF0dXJlcyAgICA9IHZkcGFzaW1fZ2V0 X2RyaXZlcl9mZWF0dXJlcywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZHBhL3ZkcGFfc2ltL3Zk cGFfc2ltLmggYi9kcml2ZXJzL3ZkcGEvdmRwYV9zaW0vdmRwYV9zaW0uaAo+IGluZGV4IGNkNThl ODg4YmNmMy4uMGJlN2MxZTdlZjgwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmRwYS92ZHBhX3Np bS92ZHBhX3NpbS5oCj4gKysrIGIvZHJpdmVycy92ZHBhL3ZkcGFfc2ltL3ZkcGFfc2ltLmgKPiBA QCAtNjMsNiArNjMsNyBAQCBzdHJ1Y3QgdmRwYXNpbSB7Cj4gICAJdTMyIHN0YXR1czsKPiAgIAl1 MzIgZ2VuZXJhdGlvbjsKPiAgIAl1NjQgZmVhdHVyZXM7Cj4gKwl1MzIgZ3JvdXBzOwo+ICAgCS8q IHNwaW5sb2NrIHRvIHN5bmNocm9uaXplIGlvbW11IHRhYmxlICovCj4gICAJc3BpbmxvY2tfdCBp b21tdV9sb2NrOwo+ICAgfTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92ZHBhLmggYi9p bmNsdWRlL2xpbnV4L3ZkcGEuaAo+IGluZGV4IDJkZTQ0MmVjZWNhZS4uMDI2YjdhZDcyZWQ3IDEw MDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvdmRwYS5oCj4gKysrIGIvaW5jbHVkZS9saW51eC92 ZHBhLmgKPiBAQCAtODUsNiArODUsNyBAQCBzdHJ1Y3QgdmRwYV9kZXZpY2Ugewo+ICAgCWJvb2wg dXNlX3ZhOwo+ICAgCWludCBudnFzOwo+ICAgCXN0cnVjdCB2ZHBhX21nbXRfZGV2ICptZGV2Owo+ ICsJdW5zaWduZWQgaW50IG5ncm91cHM7Cj4gICB9Owo+ICAgCj4gICAvKioKPiBAQCAtMTcyLDYg KzE3MywxMCBAQCBzdHJ1Y3QgdmRwYV9tYXBfZmlsZSB7Cj4gICAgKgkJCQlmb3IgdGhlIGRldmlj ZQo+ICAgICoJCQkJQHZkZXY6IHZkcGEgZGV2aWNlCj4gICAgKgkJCQlSZXR1cm5zIHZpcnRxdWV1 ZSBhbGdpbiByZXF1aXJlbWVudAo+ICsgKiBAZ2V0X3ZxX2dyb3VwOgkJR2V0IHRoZSBncm91cCBp ZCBmb3IgYSBzcGVjaWZpYyB2aXJ0cXVldWUKPiArICoJCQkJQHZkZXY6IHZkcGEgZGV2aWNlCj4g KyAqCQkJCUBpZHg6IHZpcnRxdWV1ZSBpbmRleAo+ICsgKgkJCQlSZXR1cm5zIHUzMjogZ3JvdXAg aWQgZm9yIHRoaXMgdmlydHF1ZXVlCj4gICAgKiBAZ2V0X2RldmljZV9mZWF0dXJlczoJR2V0IHZp cnRpbyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZQo+ICAgICoJCQkJQHZkZXY6IHZk cGEgZGV2aWNlCj4gICAgKgkJCQlSZXR1cm5zIHRoZSB2aXJ0aW8gZmVhdHVyZXMgc3VwcG9ydCBi eSB0aGUKPiBAQCAtMjgyLDYgKzI4Nyw3IEBAIHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgewo+ICAg Cj4gICAJLyogRGV2aWNlIG9wcyAqLwo+ICAgCXUzMiAoKmdldF92cV9hbGlnbikoc3RydWN0IHZk cGFfZGV2aWNlICp2ZGV2KTsKPiArCXUzMiAoKmdldF92cV9ncm91cCkoc3RydWN0IHZkcGFfZGV2 aWNlICp2ZGV2LCB1MTYgaWR4KTsKPiAgIAl1NjQgKCpnZXRfZGV2aWNlX2ZlYXR1cmVzKShzdHJ1 Y3QgdmRwYV9kZXZpY2UgKnZkZXYpOwo+ICAgCWludCAoKnNldF9kcml2ZXJfZmVhdHVyZXMpKHN0 cnVjdCB2ZHBhX2RldmljZSAqdmRldiwgdTY0IGZlYXR1cmVzKTsKPiAgIAl1NjQgKCpnZXRfZHJp dmVyX2ZlYXR1cmVzKShzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkZXYpOwo+IEBAIC0zMTQsNiArMzIw LDcgQEAgc3RydWN0IHZkcGFfY29uZmlnX29wcyB7Cj4gICAKPiAgIHN0cnVjdCB2ZHBhX2Rldmlj ZSAqX192ZHBhX2FsbG9jX2RldmljZShzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCj4gICAJCQkJCWNv bnN0IHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgKmNvbmZpZywKPiArCQkJCQl1bnNpZ25lZCBpbnQg bmdyb3VwcywKPiAgIAkJCQkJc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKm5hbWUsCj4gICAJCQkJ CWJvb2wgdXNlX3ZhKTsKPiAgIAo+IEBAIC0zMjQsMTcgKzMzMSwxOCBAQCBzdHJ1Y3QgdmRwYV9k ZXZpY2UgKl9fdmRwYV9hbGxvY19kZXZpY2Uoc3RydWN0IGRldmljZSAqcGFyZW50LAo+ICAgICog QG1lbWJlcjogdGhlIG5hbWUgb2Ygc3RydWN0IHZkcGFfZGV2aWNlIHdpdGhpbiB0aGUgQGRldl9z dHJ1Y3QKPiAgICAqIEBwYXJlbnQ6IHRoZSBwYXJlbnQgZGV2aWNlCj4gICAgKiBAY29uZmlnOiB0 aGUgYnVzIG9wZXJhdGlvbnMgdGhhdCBpcyBzdXBwb3J0ZWQgYnkgdGhpcyBkZXZpY2UKPiArICog QG5ncm91cHM6IHRoZSBudW1iZXIgb2YgdmlydHF1ZXVlIGdyb3VwcyBzdXBwb3J0ZWQgYnkgdGhp cyBkZXZpY2UKPiAgICAqIEBuYW1lOiBuYW1lIG9mIHRoZSB2ZHBhIGRldmljZQo+ICAgICogQHVz ZV92YTogaW5kaWNhdGUgd2hldGhlciB2aXJ0dWFsIGFkZHJlc3MgbXVzdCBiZSB1c2VkIGJ5IHRo aXMgZGV2aWNlCj4gICAgKgo+ICAgICogUmV0dXJuIGFsbG9jYXRlZCBkYXRhIHN0cnVjdHVyZSBv ciBFUlJfUFRSIHVwb24gZXJyb3IKPiAgICAqLwo+IC0jZGVmaW5lIHZkcGFfYWxsb2NfZGV2aWNl KGRldl9zdHJ1Y3QsIG1lbWJlciwgcGFyZW50LCBjb25maWcsIG5hbWUsIHVzZV92YSkgICBcCj4g LQkJCSAgY29udGFpbmVyX29mKF9fdmRwYV9hbGxvY19kZXZpY2UoIFwKPiAtCQkJCSAgICAgICBw YXJlbnQsIGNvbmZpZywgXAo+ICsjZGVmaW5lIHZkcGFfYWxsb2NfZGV2aWNlKGRldl9zdHJ1Y3Qs IG1lbWJlciwgcGFyZW50LCBjb25maWcsIG5ncm91cHMsIG5hbWUsIHVzZV92YSkgICBcCj4gKwkJ CSAgY29udGFpbmVyX29mKChfX3ZkcGFfYWxsb2NfZGV2aWNlKCBcCj4gKwkJCQkgICAgICAgcGFy ZW50LCBjb25maWcsIG5ncm91cHMsIFwKPiAgIAkJCQkgICAgICAgc2l6ZW9mKGRldl9zdHJ1Y3Qp ICsgXAo+ICAgCQkJCSAgICAgICBCVUlMRF9CVUdfT05fWkVSTyhvZmZzZXRvZiggXAo+IC0JCQkJ ICAgICAgIGRldl9zdHJ1Y3QsIG1lbWJlcikpLCBuYW1lLCB1c2VfdmEpLCBcCj4gKwkJCQkgICAg ICAgZGV2X3N0cnVjdCwgbWVtYmVyKSksIG5hbWUsIHVzZV92YSkpLCBcCj4gICAJCQkJICAgICAg IGRldl9zdHJ1Y3QsIG1lbWJlcikKPiAgIAo+ICAgaW50IHZkcGFfcmVnaXN0ZXJfZGV2aWNlKHN0 cnVjdCB2ZHBhX2RldmljZSAqdmRldiwgaW50IG52cXMpOwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZp cnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGlu dXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u