All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Jason Gunthorpe <jgg@mellanox.com>
Cc: mst@redhat.com, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org, tiwei.bie@intel.com,
	maxime.coquelin@redhat.com, cunming.liang@intel.com,
	zhihong.wang@intel.com, rob.miller@broadcom.com,
	xiao.w.wang@intel.com, haotian.wang@sifive.com,
	lingshan.zhu@intel.com, eperezma@redhat.com, lulu@redhat.com,
	parav@mellanox.com, kevin.tian@intel.com, stefanha@redhat.com,
	rdunlap@infradead.org, hch@infradead.org, aadam@redhat.com,
	jiri@mellanox.com, shahafs@mellanox.com, hanand@xilinx.com,
	mhabets@solarflare.com
Subject: Re: [PATCH V2 3/5] vDPA: introduce vDPA bus
Date: Wed, 12 Feb 2020 15:55:31 +0800	[thread overview]
Message-ID: <cf7abcc9-f8ef-1fe2-248e-9b9028788ade@redhat.com> (raw)
In-Reply-To: <20200211134746.GI4271@mellanox.com>


On 2020/2/11 下午9:47, Jason Gunthorpe wrote:
> On Mon, Feb 10, 2020 at 11:56:06AM +0800, Jason Wang wrote:
>> +/**
>> + * vdpa_register_device - register a vDPA device
>> + * Callers must have a succeed call of vdpa_init_device() before.
>> + * @vdev: the vdpa device to be registered to vDPA bus
>> + *
>> + * Returns an error when fail to add to vDPA bus
>> + */
>> +int vdpa_register_device(struct vdpa_device *vdev)
>> +{
>> +	int err = device_add(&vdev->dev);
>> +
>> +	if (err) {
>> +		put_device(&vdev->dev);
>> +		ida_simple_remove(&vdpa_index_ida, vdev->index);
>> +	}
> This is a very dangerous construction, I've seen it lead to driver
> bugs. Better to require the driver to always do the put_device on
> error unwind


Ok.


>
> The ida_simple_remove should probably be part of the class release
> function to make everything work right


It looks to me bus instead of class is the correct abstraction here 
since the devices share a set of programming interface but not the 
semantics.

Or do you actually mean type here?


>
>> +/**
>> + * vdpa_unregister_driver - unregister a vDPA device driver
>> + * @drv: the vdpa device driver to be unregistered
>> + */
>> +void vdpa_unregister_driver(struct vdpa_driver *drv)
>> +{
>> +	driver_unregister(&drv->driver);
>> +}
>> +EXPORT_SYMBOL_GPL(vdpa_unregister_driver);
>> +
>> +static int vdpa_init(void)
>> +{
>> +	if (bus_register(&vdpa_bus) != 0)
>> +		panic("virtio bus registration failed");
>> +	return 0;
>> +}
> Linus will tell you not to kill the kernel - return the error code and
> propagate it up to the module init function.


Yes, will fix.


>
>> +/**
>> + * vDPA device - representation of a vDPA device
>> + * @dev: underlying device
>> + * @dma_dev: the actual device that is performing DMA
>> + * @config: the configuration ops for this device.
>> + * @index: device index
>> + */
>> +struct vdpa_device {
>> +	struct device dev;
>> +	struct device *dma_dev;
>> +	const struct vdpa_config_ops *config;
>> +	int index;
> unsigned values shuld be unsigned int
>
> Jason


Will fix.

Thanks

>


  reply	other threads:[~2020-02-12  7:55 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-10  3:56 [PATCH V2 0/5] vDPA support Jason Wang
2020-02-10  3:56 ` [PATCH V2 1/5] vhost: factor out IOTLB Jason Wang
2020-02-10  3:56 ` [PATCH V2 2/5] vringh: IOTLB support Jason Wang
2020-02-10  3:56 ` [PATCH V2 3/5] vDPA: introduce vDPA bus Jason Wang
2020-02-11 13:47   ` Jason Gunthorpe
2020-02-12  7:55     ` Jason Wang [this message]
2020-02-12 12:51       ` Jason Gunthorpe
2020-02-13  3:34         ` Jason Wang
2020-02-13 13:41           ` Jason Gunthorpe
2020-02-13 14:58             ` Jason Wang
2020-02-13 15:05               ` Jason Gunthorpe
2020-02-13 15:05                 ` Jason Gunthorpe
2020-02-13 15:41                 ` Michael S. Tsirkin
2020-02-13 15:51                   ` Jason Gunthorpe
2020-02-13 15:56                     ` Michael S. Tsirkin
2020-02-13 15:56                       ` Michael S. Tsirkin
2020-02-13 16:24                       ` Jason Gunthorpe
2020-02-14  4:05                         ` Jason Wang
2020-02-14 14:04                           ` Jason Gunthorpe
2020-02-17  6:07                             ` Jason Wang
2020-02-17  6:07                               ` Jason Wang
2020-02-13 15:59                     ` Michael S. Tsirkin
2020-02-13 16:13                       ` Jason Gunthorpe
2020-02-14  4:39                         ` Jason Wang
2020-02-14  3:23                 ` Jason Wang
2020-02-14  3:23                   ` Jason Wang
2020-02-14 13:52                   ` Jason Gunthorpe
2020-02-17  6:08                     ` Jason Wang
2020-02-17  6:08                       ` Jason Wang
2020-02-18 13:56                       ` Jason Gunthorpe
2020-02-18 13:56                         ` Jason Gunthorpe
2020-02-19  2:59                         ` Tiwei Bie
2020-02-19  2:59                           ` Tiwei Bie
2020-02-19  5:35                         ` Jason Wang
2020-02-19  5:35                           ` Jason Wang
2020-02-19 12:53                           ` Jason Gunthorpe
2020-02-19 12:53                             ` Jason Gunthorpe
2020-02-10  3:56 ` [PATCH V2 4/5] virtio: introduce a vDPA based transport Jason Wang
2020-02-10 13:34   ` Jason Gunthorpe
2020-02-10 13:34     ` Jason Gunthorpe
2020-02-11  3:04     ` Jason Wang
2020-02-11  3:04       ` Jason Wang
2020-02-10  3:56 ` [PATCH V2 5/5] vdpasim: vDPA device simulator Jason Wang
2020-02-10 11:23   ` Michael S. Tsirkin
2020-02-11  3:12     ` Jason Wang
2020-02-11 13:52   ` Jason Gunthorpe
2020-02-12  8:27     ` Jason Wang

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=cf7abcc9-f8ef-1fe2-248e-9b9028788ade@redhat.com \
    --to=jasowang@redhat.com \
    --cc=aadam@redhat.com \
    --cc=cunming.liang@intel.com \
    --cc=eperezma@redhat.com \
    --cc=hanand@xilinx.com \
    --cc=haotian.wang@sifive.com \
    --cc=hch@infradead.org \
    --cc=jgg@mellanox.com \
    --cc=jiri@mellanox.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=lingshan.zhu@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lulu@redhat.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mhabets@solarflare.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=parav@mellanox.com \
    --cc=rdunlap@infradead.org \
    --cc=rob.miller@broadcom.com \
    --cc=shahafs@mellanox.com \
    --cc=stefanha@redhat.com \
    --cc=tiwei.bie@intel.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=xiao.w.wang@intel.com \
    --cc=zhihong.wang@intel.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: link
Be 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.