From: Dan Carpenter <dan.carpenter@oracle.com> To: kbuild@01.org, Kenneth Lee <nek.in.cn@gmail.com> Cc: kvm@vger.kernel.org, linux-doc@vger.kernel.org, Zaibo Xu <xuzaibo@huawei.com>, Sanjay Kumar <sanjay.k.kumar@intel.com>, linuxarm@huawei.com, Hao Fang <fanghao11@huawei.com>, Herbert Xu <herbert@gondor.apana.org.au>, Jonathan Corbet <corbet@lwn.net>, Joerg Roedel <joro@8bytes.org>, iommu@lists.linux-foundation.org, linux-crypto@vger.kernel.org, Alex Williamson <alex.williamson@redhat.com>, Thomas Gleixner <tglx@linutronix.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-kernel@vger.kernel.org, Zhou Wang <wangzhou1@hisilicon.com>, kbuild-all@01.org, Philippe Ombredanne <pombredanne@nexb.com>, Kenneth Lee <liguozhu@hisilicon.com>, "David S . Miller" <davem@davemloft.net>, linux-accelerators@lists.ozlabs.org, Lu Baolu <baolu.lu@linux.intel.com> Subject: Re: [PATCH 3/7] vfio: add sdmdev support Date: Wed, 5 Sep 2018 10:27:37 +0300 [thread overview] Message-ID: <20180905072737.figussnuhdtlbnee@mwanda> (raw) In-Reply-To: <20180903005204.26041-4-nek.in.cn@gmail.com> Hi Kenneth, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on cryptodev/master] [also build test WARNING on v4.19-rc2 next-20180905] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Kenneth-Lee/A-General-Accelerator-Framework-WarpDrive/20180903-162733 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master smatch warnings: drivers/vfio/sdmdev/vfio_sdmdev.c:78 iommu_type_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:91 dma_flag_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:127 flags_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:128 name_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:130 device_api_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:138 available_instances_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:178 vfio_sdmdev_mdev_remove() warn: if(); # https://github.com/0day-ci/linux/commit/1e47d5e608652b4a2c813dbeaf5aa6811f6ceaf7 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 1e47d5e608652b4a2c813dbeaf5aa6811f6ceaf7 vim +/sdmdev +78 drivers/vfio/sdmdev/vfio_sdmdev.c 1e47d5e6 Kenneth Lee 2018-09-03 69 1e47d5e6 Kenneth Lee 2018-09-03 70 static ssize_t iommu_type_show(struct device *dev, 1e47d5e6 Kenneth Lee 2018-09-03 71 struct device_attribute *attr, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 72 { 1e47d5e6 Kenneth Lee 2018-09-03 73 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); ^^^^^^^^^^^^^^^^^^^^^^^ Presumably this returns error pointers instead of NULL? 1e47d5e6 Kenneth Lee 2018-09-03 74 1e47d5e6 Kenneth Lee 2018-09-03 75 if (!sdmdev) 1e47d5e6 Kenneth Lee 2018-09-03 76 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 77 1e47d5e6 Kenneth Lee 2018-09-03 @78 return sprintf(buf, "%d\n", sdmdev->iommu_type); 1e47d5e6 Kenneth Lee 2018-09-03 79 } 1e47d5e6 Kenneth Lee 2018-09-03 80 1e47d5e6 Kenneth Lee 2018-09-03 81 static DEVICE_ATTR_RO(iommu_type); 1e47d5e6 Kenneth Lee 2018-09-03 82 1e47d5e6 Kenneth Lee 2018-09-03 83 static ssize_t dma_flag_show(struct device *dev, 1e47d5e6 Kenneth Lee 2018-09-03 84 struct device_attribute *attr, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 85 { 1e47d5e6 Kenneth Lee 2018-09-03 86 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); 1e47d5e6 Kenneth Lee 2018-09-03 87 1e47d5e6 Kenneth Lee 2018-09-03 88 if (!sdmdev) 1e47d5e6 Kenneth Lee 2018-09-03 89 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 90 1e47d5e6 Kenneth Lee 2018-09-03 @91 return sprintf(buf, "%d\n", sdmdev->dma_flag); 1e47d5e6 Kenneth Lee 2018-09-03 92 } 1e47d5e6 Kenneth Lee 2018-09-03 93 1e47d5e6 Kenneth Lee 2018-09-03 94 static DEVICE_ATTR_RO(dma_flag); 1e47d5e6 Kenneth Lee 2018-09-03 95 1e47d5e6 Kenneth Lee 2018-09-03 96 /* mdev->dev_attr_groups */ 1e47d5e6 Kenneth Lee 2018-09-03 97 static struct attribute *vfio_sdmdev_attrs[] = { 1e47d5e6 Kenneth Lee 2018-09-03 98 &dev_attr_iommu_type.attr, 1e47d5e6 Kenneth Lee 2018-09-03 99 &dev_attr_dma_flag.attr, 1e47d5e6 Kenneth Lee 2018-09-03 100 NULL, 1e47d5e6 Kenneth Lee 2018-09-03 101 }; 1e47d5e6 Kenneth Lee 2018-09-03 102 static const struct attribute_group vfio_sdmdev_group = { 1e47d5e6 Kenneth Lee 2018-09-03 103 .name = VFIO_SDMDEV_PDEV_ATTRS_GRP_NAME, 1e47d5e6 Kenneth Lee 2018-09-03 104 .attrs = vfio_sdmdev_attrs, 1e47d5e6 Kenneth Lee 2018-09-03 105 }; 1e47d5e6 Kenneth Lee 2018-09-03 106 const struct attribute_group *vfio_sdmdev_groups[] = { 1e47d5e6 Kenneth Lee 2018-09-03 107 &vfio_sdmdev_group, 1e47d5e6 Kenneth Lee 2018-09-03 108 NULL, 1e47d5e6 Kenneth Lee 2018-09-03 109 }; 1e47d5e6 Kenneth Lee 2018-09-03 110 1e47d5e6 Kenneth Lee 2018-09-03 111 /* default attributes for mdev->supported_type_groups, used by registerer*/ 1e47d5e6 Kenneth Lee 2018-09-03 112 #define MDEV_TYPE_ATTR_RO_EXPORT(name) \ 1e47d5e6 Kenneth Lee 2018-09-03 113 MDEV_TYPE_ATTR_RO(name); \ 1e47d5e6 Kenneth Lee 2018-09-03 114 EXPORT_SYMBOL_GPL(mdev_type_attr_##name); 1e47d5e6 Kenneth Lee 2018-09-03 115 1e47d5e6 Kenneth Lee 2018-09-03 116 #define DEF_SIMPLE_SDMDEV_ATTR(_name, sdmdev_member, format) \ 1e47d5e6 Kenneth Lee 2018-09-03 117 static ssize_t _name##_show(struct kobject *kobj, struct device *dev, \ 1e47d5e6 Kenneth Lee 2018-09-03 118 char *buf) \ 1e47d5e6 Kenneth Lee 2018-09-03 119 { \ 1e47d5e6 Kenneth Lee 2018-09-03 120 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); \ 1e47d5e6 Kenneth Lee 2018-09-03 121 if (!sdmdev) \ 1e47d5e6 Kenneth Lee 2018-09-03 122 return -ENODEV; \ 1e47d5e6 Kenneth Lee 2018-09-03 123 return sprintf(buf, format, sdmdev->sdmdev_member); \ 1e47d5e6 Kenneth Lee 2018-09-03 124 } \ 1e47d5e6 Kenneth Lee 2018-09-03 125 MDEV_TYPE_ATTR_RO_EXPORT(_name) 1e47d5e6 Kenneth Lee 2018-09-03 126 1e47d5e6 Kenneth Lee 2018-09-03 @127 DEF_SIMPLE_SDMDEV_ATTR(flags, flags, "%d"); 1e47d5e6 Kenneth Lee 2018-09-03 @128 DEF_SIMPLE_SDMDEV_ATTR(name, name, "%s"); /* this should be algorithm name, */ 1e47d5e6 Kenneth Lee 2018-09-03 129 /* but you would not care if you have only one algorithm */ 1e47d5e6 Kenneth Lee 2018-09-03 @130 DEF_SIMPLE_SDMDEV_ATTR(device_api, api_ver, "%s"); 1e47d5e6 Kenneth Lee 2018-09-03 131 1e47d5e6 Kenneth Lee 2018-09-03 132 static ssize_t 1e47d5e6 Kenneth Lee 2018-09-03 133 available_instances_show(struct kobject *kobj, struct device *dev, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 134 { 1e47d5e6 Kenneth Lee 2018-09-03 135 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); 1e47d5e6 Kenneth Lee 2018-09-03 136 int nr_inst = 0; 1e47d5e6 Kenneth Lee 2018-09-03 137 1e47d5e6 Kenneth Lee 2018-09-03 @138 nr_inst = sdmdev->ops->get_available_instances ? 1e47d5e6 Kenneth Lee 2018-09-03 139 sdmdev->ops->get_available_instances(sdmdev) : 0; 1e47d5e6 Kenneth Lee 2018-09-03 140 return sprintf(buf, "%d", nr_inst); 1e47d5e6 Kenneth Lee 2018-09-03 141 } 1e47d5e6 Kenneth Lee 2018-09-03 142 MDEV_TYPE_ATTR_RO_EXPORT(available_instances); 1e47d5e6 Kenneth Lee 2018-09-03 143 1e47d5e6 Kenneth Lee 2018-09-03 144 static int vfio_sdmdev_mdev_create(struct kobject *kobj, 1e47d5e6 Kenneth Lee 2018-09-03 145 struct mdev_device *mdev) 1e47d5e6 Kenneth Lee 2018-09-03 146 { 1e47d5e6 Kenneth Lee 2018-09-03 147 struct device *pdev = mdev_parent_dev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 148 struct vfio_sdmdev_queue *q; 1e47d5e6 Kenneth Lee 2018-09-03 149 struct vfio_sdmdev *sdmdev = mdev_sdmdev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 150 int ret; 1e47d5e6 Kenneth Lee 2018-09-03 151 1e47d5e6 Kenneth Lee 2018-09-03 152 if (!sdmdev->ops->get_queue) 1e47d5e6 Kenneth Lee 2018-09-03 153 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 154 1e47d5e6 Kenneth Lee 2018-09-03 155 ret = sdmdev->ops->get_queue(sdmdev, &q); 1e47d5e6 Kenneth Lee 2018-09-03 156 if (ret) 1e47d5e6 Kenneth Lee 2018-09-03 157 return ret; 1e47d5e6 Kenneth Lee 2018-09-03 158 1e47d5e6 Kenneth Lee 2018-09-03 159 q->sdmdev = sdmdev; 1e47d5e6 Kenneth Lee 2018-09-03 160 q->mdev = mdev; 1e47d5e6 Kenneth Lee 2018-09-03 161 init_waitqueue_head(&q->wait); 1e47d5e6 Kenneth Lee 2018-09-03 162 1e47d5e6 Kenneth Lee 2018-09-03 163 mdev_set_drvdata(mdev, q); 1e47d5e6 Kenneth Lee 2018-09-03 164 get_device(pdev); 1e47d5e6 Kenneth Lee 2018-09-03 165 1e47d5e6 Kenneth Lee 2018-09-03 166 return 0; 1e47d5e6 Kenneth Lee 2018-09-03 167 } 1e47d5e6 Kenneth Lee 2018-09-03 168 1e47d5e6 Kenneth Lee 2018-09-03 169 static int vfio_sdmdev_mdev_remove(struct mdev_device *mdev) 1e47d5e6 Kenneth Lee 2018-09-03 170 { 1e47d5e6 Kenneth Lee 2018-09-03 171 struct vfio_sdmdev_queue *q = 1e47d5e6 Kenneth Lee 2018-09-03 172 (struct vfio_sdmdev_queue *)mdev_get_drvdata(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 173 struct vfio_sdmdev *sdmdev = q->sdmdev; 1e47d5e6 Kenneth Lee 2018-09-03 174 struct device *pdev = mdev_parent_dev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 175 1e47d5e6 Kenneth Lee 2018-09-03 176 put_device(pdev); 1e47d5e6 Kenneth Lee 2018-09-03 177 1e47d5e6 Kenneth Lee 2018-09-03 @178 if (sdmdev->ops->put_queue); ^ Extra semicolon breaks the code. 1e47d5e6 Kenneth Lee 2018-09-03 179 sdmdev->ops->put_queue(q); 1e47d5e6 Kenneth Lee 2018-09-03 180 1e47d5e6 Kenneth Lee 2018-09-03 181 return 0; 1e47d5e6 Kenneth Lee 2018-09-03 182 } 1e47d5e6 Kenneth Lee 2018-09-03 183
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com> To: kbuild@01.org, Kenneth Lee <nek.in.cn@gmail.com> Cc: kbuild-all@01.org, Jonathan Corbet <corbet@lwn.net>, Herbert Xu <herbert@gondor.apana.org.au>, "David S . Miller" <davem@davemloft.net>, Joerg Roedel <joro@8bytes.org>, Alex Williamson <alex.williamson@redhat.com>, Kenneth Lee <liguozhu@hisilicon.com>, Hao Fang <fanghao11@huawei.com>, Zhou Wang <wangzhou1@hisilicon.com>, Zaibo Xu <xuzaibo@huawei.com>, Philippe Ombredanne <pombredanne@nexb.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Thomas Gleixner <tglx@linutronix.de>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-accelerators@lists.ozlabs.org, Lu Baolu <baolu.lu@linux.intel.com>, Sanjay Kumar <sanjay.k.kumar@intel.com>, linuxarm@huawei.com Subject: Re: [PATCH 3/7] vfio: add sdmdev support Date: Wed, 5 Sep 2018 10:27:37 +0300 [thread overview] Message-ID: <20180905072737.figussnuhdtlbnee@mwanda> (raw) In-Reply-To: <20180903005204.26041-4-nek.in.cn@gmail.com> Hi Kenneth, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on cryptodev/master] [also build test WARNING on v4.19-rc2 next-20180905] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Kenneth-Lee/A-General-Accelerator-Framework-WarpDrive/20180903-162733 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master smatch warnings: drivers/vfio/sdmdev/vfio_sdmdev.c:78 iommu_type_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:91 dma_flag_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:127 flags_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:128 name_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:130 device_api_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:138 available_instances_show() error: 'sdmdev' dereferencing possible ERR_PTR() drivers/vfio/sdmdev/vfio_sdmdev.c:178 vfio_sdmdev_mdev_remove() warn: if(); # https://github.com/0day-ci/linux/commit/1e47d5e608652b4a2c813dbeaf5aa6811f6ceaf7 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 1e47d5e608652b4a2c813dbeaf5aa6811f6ceaf7 vim +/sdmdev +78 drivers/vfio/sdmdev/vfio_sdmdev.c 1e47d5e6 Kenneth Lee 2018-09-03 69 1e47d5e6 Kenneth Lee 2018-09-03 70 static ssize_t iommu_type_show(struct device *dev, 1e47d5e6 Kenneth Lee 2018-09-03 71 struct device_attribute *attr, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 72 { 1e47d5e6 Kenneth Lee 2018-09-03 73 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); ^^^^^^^^^^^^^^^^^^^^^^^ Presumably this returns error pointers instead of NULL? 1e47d5e6 Kenneth Lee 2018-09-03 74 1e47d5e6 Kenneth Lee 2018-09-03 75 if (!sdmdev) 1e47d5e6 Kenneth Lee 2018-09-03 76 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 77 1e47d5e6 Kenneth Lee 2018-09-03 @78 return sprintf(buf, "%d\n", sdmdev->iommu_type); 1e47d5e6 Kenneth Lee 2018-09-03 79 } 1e47d5e6 Kenneth Lee 2018-09-03 80 1e47d5e6 Kenneth Lee 2018-09-03 81 static DEVICE_ATTR_RO(iommu_type); 1e47d5e6 Kenneth Lee 2018-09-03 82 1e47d5e6 Kenneth Lee 2018-09-03 83 static ssize_t dma_flag_show(struct device *dev, 1e47d5e6 Kenneth Lee 2018-09-03 84 struct device_attribute *attr, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 85 { 1e47d5e6 Kenneth Lee 2018-09-03 86 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); 1e47d5e6 Kenneth Lee 2018-09-03 87 1e47d5e6 Kenneth Lee 2018-09-03 88 if (!sdmdev) 1e47d5e6 Kenneth Lee 2018-09-03 89 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 90 1e47d5e6 Kenneth Lee 2018-09-03 @91 return sprintf(buf, "%d\n", sdmdev->dma_flag); 1e47d5e6 Kenneth Lee 2018-09-03 92 } 1e47d5e6 Kenneth Lee 2018-09-03 93 1e47d5e6 Kenneth Lee 2018-09-03 94 static DEVICE_ATTR_RO(dma_flag); 1e47d5e6 Kenneth Lee 2018-09-03 95 1e47d5e6 Kenneth Lee 2018-09-03 96 /* mdev->dev_attr_groups */ 1e47d5e6 Kenneth Lee 2018-09-03 97 static struct attribute *vfio_sdmdev_attrs[] = { 1e47d5e6 Kenneth Lee 2018-09-03 98 &dev_attr_iommu_type.attr, 1e47d5e6 Kenneth Lee 2018-09-03 99 &dev_attr_dma_flag.attr, 1e47d5e6 Kenneth Lee 2018-09-03 100 NULL, 1e47d5e6 Kenneth Lee 2018-09-03 101 }; 1e47d5e6 Kenneth Lee 2018-09-03 102 static const struct attribute_group vfio_sdmdev_group = { 1e47d5e6 Kenneth Lee 2018-09-03 103 .name = VFIO_SDMDEV_PDEV_ATTRS_GRP_NAME, 1e47d5e6 Kenneth Lee 2018-09-03 104 .attrs = vfio_sdmdev_attrs, 1e47d5e6 Kenneth Lee 2018-09-03 105 }; 1e47d5e6 Kenneth Lee 2018-09-03 106 const struct attribute_group *vfio_sdmdev_groups[] = { 1e47d5e6 Kenneth Lee 2018-09-03 107 &vfio_sdmdev_group, 1e47d5e6 Kenneth Lee 2018-09-03 108 NULL, 1e47d5e6 Kenneth Lee 2018-09-03 109 }; 1e47d5e6 Kenneth Lee 2018-09-03 110 1e47d5e6 Kenneth Lee 2018-09-03 111 /* default attributes for mdev->supported_type_groups, used by registerer*/ 1e47d5e6 Kenneth Lee 2018-09-03 112 #define MDEV_TYPE_ATTR_RO_EXPORT(name) \ 1e47d5e6 Kenneth Lee 2018-09-03 113 MDEV_TYPE_ATTR_RO(name); \ 1e47d5e6 Kenneth Lee 2018-09-03 114 EXPORT_SYMBOL_GPL(mdev_type_attr_##name); 1e47d5e6 Kenneth Lee 2018-09-03 115 1e47d5e6 Kenneth Lee 2018-09-03 116 #define DEF_SIMPLE_SDMDEV_ATTR(_name, sdmdev_member, format) \ 1e47d5e6 Kenneth Lee 2018-09-03 117 static ssize_t _name##_show(struct kobject *kobj, struct device *dev, \ 1e47d5e6 Kenneth Lee 2018-09-03 118 char *buf) \ 1e47d5e6 Kenneth Lee 2018-09-03 119 { \ 1e47d5e6 Kenneth Lee 2018-09-03 120 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); \ 1e47d5e6 Kenneth Lee 2018-09-03 121 if (!sdmdev) \ 1e47d5e6 Kenneth Lee 2018-09-03 122 return -ENODEV; \ 1e47d5e6 Kenneth Lee 2018-09-03 123 return sprintf(buf, format, sdmdev->sdmdev_member); \ 1e47d5e6 Kenneth Lee 2018-09-03 124 } \ 1e47d5e6 Kenneth Lee 2018-09-03 125 MDEV_TYPE_ATTR_RO_EXPORT(_name) 1e47d5e6 Kenneth Lee 2018-09-03 126 1e47d5e6 Kenneth Lee 2018-09-03 @127 DEF_SIMPLE_SDMDEV_ATTR(flags, flags, "%d"); 1e47d5e6 Kenneth Lee 2018-09-03 @128 DEF_SIMPLE_SDMDEV_ATTR(name, name, "%s"); /* this should be algorithm name, */ 1e47d5e6 Kenneth Lee 2018-09-03 129 /* but you would not care if you have only one algorithm */ 1e47d5e6 Kenneth Lee 2018-09-03 @130 DEF_SIMPLE_SDMDEV_ATTR(device_api, api_ver, "%s"); 1e47d5e6 Kenneth Lee 2018-09-03 131 1e47d5e6 Kenneth Lee 2018-09-03 132 static ssize_t 1e47d5e6 Kenneth Lee 2018-09-03 133 available_instances_show(struct kobject *kobj, struct device *dev, char *buf) 1e47d5e6 Kenneth Lee 2018-09-03 134 { 1e47d5e6 Kenneth Lee 2018-09-03 135 struct vfio_sdmdev *sdmdev = vfio_sdmdev_pdev_sdmdev(dev); 1e47d5e6 Kenneth Lee 2018-09-03 136 int nr_inst = 0; 1e47d5e6 Kenneth Lee 2018-09-03 137 1e47d5e6 Kenneth Lee 2018-09-03 @138 nr_inst = sdmdev->ops->get_available_instances ? 1e47d5e6 Kenneth Lee 2018-09-03 139 sdmdev->ops->get_available_instances(sdmdev) : 0; 1e47d5e6 Kenneth Lee 2018-09-03 140 return sprintf(buf, "%d", nr_inst); 1e47d5e6 Kenneth Lee 2018-09-03 141 } 1e47d5e6 Kenneth Lee 2018-09-03 142 MDEV_TYPE_ATTR_RO_EXPORT(available_instances); 1e47d5e6 Kenneth Lee 2018-09-03 143 1e47d5e6 Kenneth Lee 2018-09-03 144 static int vfio_sdmdev_mdev_create(struct kobject *kobj, 1e47d5e6 Kenneth Lee 2018-09-03 145 struct mdev_device *mdev) 1e47d5e6 Kenneth Lee 2018-09-03 146 { 1e47d5e6 Kenneth Lee 2018-09-03 147 struct device *pdev = mdev_parent_dev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 148 struct vfio_sdmdev_queue *q; 1e47d5e6 Kenneth Lee 2018-09-03 149 struct vfio_sdmdev *sdmdev = mdev_sdmdev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 150 int ret; 1e47d5e6 Kenneth Lee 2018-09-03 151 1e47d5e6 Kenneth Lee 2018-09-03 152 if (!sdmdev->ops->get_queue) 1e47d5e6 Kenneth Lee 2018-09-03 153 return -ENODEV; 1e47d5e6 Kenneth Lee 2018-09-03 154 1e47d5e6 Kenneth Lee 2018-09-03 155 ret = sdmdev->ops->get_queue(sdmdev, &q); 1e47d5e6 Kenneth Lee 2018-09-03 156 if (ret) 1e47d5e6 Kenneth Lee 2018-09-03 157 return ret; 1e47d5e6 Kenneth Lee 2018-09-03 158 1e47d5e6 Kenneth Lee 2018-09-03 159 q->sdmdev = sdmdev; 1e47d5e6 Kenneth Lee 2018-09-03 160 q->mdev = mdev; 1e47d5e6 Kenneth Lee 2018-09-03 161 init_waitqueue_head(&q->wait); 1e47d5e6 Kenneth Lee 2018-09-03 162 1e47d5e6 Kenneth Lee 2018-09-03 163 mdev_set_drvdata(mdev, q); 1e47d5e6 Kenneth Lee 2018-09-03 164 get_device(pdev); 1e47d5e6 Kenneth Lee 2018-09-03 165 1e47d5e6 Kenneth Lee 2018-09-03 166 return 0; 1e47d5e6 Kenneth Lee 2018-09-03 167 } 1e47d5e6 Kenneth Lee 2018-09-03 168 1e47d5e6 Kenneth Lee 2018-09-03 169 static int vfio_sdmdev_mdev_remove(struct mdev_device *mdev) 1e47d5e6 Kenneth Lee 2018-09-03 170 { 1e47d5e6 Kenneth Lee 2018-09-03 171 struct vfio_sdmdev_queue *q = 1e47d5e6 Kenneth Lee 2018-09-03 172 (struct vfio_sdmdev_queue *)mdev_get_drvdata(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 173 struct vfio_sdmdev *sdmdev = q->sdmdev; 1e47d5e6 Kenneth Lee 2018-09-03 174 struct device *pdev = mdev_parent_dev(mdev); 1e47d5e6 Kenneth Lee 2018-09-03 175 1e47d5e6 Kenneth Lee 2018-09-03 176 put_device(pdev); 1e47d5e6 Kenneth Lee 2018-09-03 177 1e47d5e6 Kenneth Lee 2018-09-03 @178 if (sdmdev->ops->put_queue); ^ Extra semicolon breaks the code. 1e47d5e6 Kenneth Lee 2018-09-03 179 sdmdev->ops->put_queue(q); 1e47d5e6 Kenneth Lee 2018-09-03 180 1e47d5e6 Kenneth Lee 2018-09-03 181 return 0; 1e47d5e6 Kenneth Lee 2018-09-03 182 } 1e47d5e6 Kenneth Lee 2018-09-03 183 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-09-05 7:27 UTC|newest] Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-03 0:51 [RFCv2 PATCH 0/7] A General Accelerator Framework, WarpDrive Kenneth Lee 2018-09-03 0:51 ` Kenneth Lee 2018-09-03 0:51 ` [PATCH 2/7] iommu: Add share domain interface in iommu for sdmdev Kenneth Lee 2018-09-03 0:52 ` [PATCH 3/7] vfio: add sdmdev support Kenneth Lee 2018-09-03 2:11 ` Randy Dunlap 2018-09-06 8:08 ` Kenneth Lee 2018-09-06 8:08 ` Kenneth Lee 2018-09-03 2:55 ` Lu Baolu 2018-09-06 9:01 ` Kenneth Lee 2018-09-06 9:01 ` Kenneth Lee 2018-09-04 15:31 ` [RFC PATCH] vfio: vfio_sdmdev_groups[] can be static kbuild test robot 2018-09-04 15:32 ` [PATCH 3/7] vfio: add sdmdev support kbuild test robot [not found] ` <20180903005204.26041-4-nek.in.cn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2018-09-04 15:32 ` kbuild test robot 2018-09-04 15:32 ` kbuild test robot 2018-09-05 7:27 ` Dan Carpenter [this message] 2018-09-05 7:27 ` Dan Carpenter 2018-09-03 0:52 ` [PATCH 4/7] crypto: add hisilicon Queue Manager driver Kenneth Lee 2018-09-03 2:15 ` Randy Dunlap [not found] ` <4e46a451-d1cd-ac68-84b4-20792fdbc733-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> 2018-09-06 9:08 ` Kenneth Lee 2018-09-06 9:08 ` Kenneth Lee 2018-09-03 0:52 ` [PATCH 5/7] crypto: Add Hisilicon Zip driver Kenneth Lee 2018-09-03 0:52 ` [PATCH 6/7] crypto: add sdmdev support to Hisilicon QM Kenneth Lee 2018-09-03 2:19 ` Randy Dunlap 2018-09-06 9:09 ` Kenneth Lee 2018-09-06 9:09 ` Kenneth Lee 2018-09-03 0:52 ` [PATCH 7/7] vfio/sdmdev: add user sample Kenneth Lee 2018-09-03 2:25 ` Randy Dunlap 2018-09-06 9:10 ` Kenneth Lee 2018-09-06 9:10 ` Kenneth Lee 2018-09-03 2:32 ` [RFCv2 PATCH 0/7] A General Accelerator Framework, WarpDrive Lu Baolu [not found] ` <81edb8ff-d046-34e5-aee7-d8564e2517c2-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> 2018-09-06 9:11 ` Kenneth Lee 2018-09-06 9:11 ` Kenneth Lee 2018-09-04 15:00 ` Jerome Glisse 2018-09-04 16:15 ` Alex Williamson 2018-09-06 9:45 ` Kenneth Lee 2018-09-06 9:45 ` Kenneth Lee 2018-09-06 13:31 ` Jerome Glisse [not found] ` <20180906133133.GA3830-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-07 4:01 ` Kenneth Lee 2018-09-07 4:01 ` Kenneth Lee 2018-09-07 16:53 ` Jerome Glisse 2018-09-07 16:53 ` Jerome Glisse 2018-09-07 17:55 ` Jean-Philippe Brucker 2018-09-07 18:04 ` Jerome Glisse 2018-09-10 3:28 ` Kenneth Lee 2018-09-10 3:28 ` Kenneth Lee 2018-09-10 14:54 ` Jerome Glisse 2018-09-10 14:54 ` Jerome Glisse [not found] ` <20180910145423.GA3488-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-11 2:42 ` Kenneth Lee 2018-09-11 2:42 ` Kenneth Lee 2018-09-11 3:33 ` Jerome Glisse 2018-09-11 3:33 ` Jerome Glisse [not found] ` <20180911033358.GA4730-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-11 6:40 ` Kenneth Lee 2018-09-11 6:40 ` Kenneth Lee 2018-09-11 13:40 ` Jerome Glisse [not found] ` <20180911134013.GA3932-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-13 8:32 ` Kenneth Lee 2018-09-13 8:32 ` Kenneth Lee 2018-09-13 14:51 ` Jerome Glisse 2018-09-14 3:12 ` Kenneth Lee 2018-09-14 3:12 ` Kenneth Lee 2018-09-14 14:05 ` Jerome Glisse [not found] ` <20180913145149.GB3576-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-14 6:50 ` Tian, Kevin 2018-09-14 6:50 ` Tian, Kevin 2018-09-14 13:05 ` Kenneth Lee 2018-09-14 13:05 ` Kenneth Lee 2018-09-14 13:05 ` Kenneth Lee 2018-09-14 14:13 ` Jerome Glisse 2018-09-14 14:13 ` Jerome Glisse 2018-09-14 14:13 ` Jerome Glisse [not found] ` <20180903005204.26041-1-nek.in.cn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2018-09-03 0:51 ` [PATCH 1/7] vfio/sdmdev: Add documents for WarpDrive framework Kenneth Lee 2018-09-03 0:51 ` Kenneth Lee 2018-09-06 18:36 ` Randy Dunlap 2018-09-07 2:21 ` Kenneth Lee 2018-09-07 2:21 ` Kenneth Lee 2018-09-17 1:42 ` [RFCv2 PATCH 0/7] A General Accelerator Framework, WarpDrive Jerome Glisse 2018-09-17 1:42 ` Jerome Glisse [not found] ` <20180917014244.GA27596-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-17 8:39 ` Kenneth Lee 2018-09-17 8:39 ` Kenneth Lee 2018-09-17 12:37 ` Jerome Glisse [not found] ` <20180917123744.GA3605-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-18 6:00 ` Kenneth Lee 2018-09-18 6:00 ` Kenneth Lee 2018-09-18 13:03 ` Jerome Glisse 2018-09-20 5:55 ` Kenneth Lee 2018-09-20 5:55 ` Kenneth Lee 2018-09-20 14:23 ` Jerome Glisse 2018-09-21 10:05 ` Kenneth Lee 2018-09-21 10:05 ` Kenneth Lee 2018-09-21 10:03 ` Kenneth Lee 2018-09-21 10:03 ` Kenneth Lee 2018-09-21 14:52 ` Jerome Glisse [not found] ` <20180921145201.GA3357-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2018-09-25 5:55 ` Kenneth Lee 2018-09-25 5:55 ` Kenneth Lee
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180905072737.figussnuhdtlbnee@mwanda \ --to=dan.carpenter@oracle.com \ --cc=alex.williamson@redhat.com \ --cc=baolu.lu@linux.intel.com \ --cc=corbet@lwn.net \ --cc=davem@davemloft.net \ --cc=fanghao11@huawei.com \ --cc=gregkh@linuxfoundation.org \ --cc=herbert@gondor.apana.org.au \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=kbuild-all@01.org \ --cc=kbuild@01.org \ --cc=kvm@vger.kernel.org \ --cc=liguozhu@hisilicon.com \ --cc=linux-accelerators@lists.ozlabs.org \ --cc=linux-crypto@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=nek.in.cn@gmail.com \ --cc=pombredanne@nexb.com \ --cc=sanjay.k.kumar@intel.com \ --cc=tglx@linutronix.de \ --cc=wangzhou1@hisilicon.com \ --cc=xuzaibo@huawei.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.