[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <12775659-1589-39e4-e344-b7a2c792b0f3@redhat.com>
Date: Thu, 13 Feb 2020 11:34:10 +0800
From: Jason Wang <jasowang@...hat.com>
To: Jason Gunthorpe <jgg@...lanox.com>
Cc: mst@...hat.com, linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org,
tiwei.bie@...el.com, maxime.coquelin@...hat.com,
cunming.liang@...el.com, zhihong.wang@...el.com,
rob.miller@...adcom.com, xiao.w.wang@...el.com,
haotian.wang@...ive.com, lingshan.zhu@...el.com,
eperezma@...hat.com, lulu@...hat.com, parav@...lanox.com,
kevin.tian@...el.com, stefanha@...hat.com, rdunlap@...radead.org,
hch@...radead.org, aadam@...hat.com, jiri@...lanox.com,
shahafs@...lanox.com, hanand@...inx.com, mhabets@...arflare.com
Subject: Re: [PATCH V2 3/5] vDPA: introduce vDPA bus
On 2020/2/12 下午8:51, Jason Gunthorpe wrote:
> On Wed, Feb 12, 2020 at 03:55:31PM +0800, Jason Wang wrote:
>>> 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.
> device_release() doesn't call the bus release?
What it did is:
if (dev->release)
dev->release(dev);
else if (dev->type && dev->type->release)
dev->type->release(dev);
else if (dev->class && dev->class->dev_release)
dev->class->dev_release(dev);
else
WARN(1, KERN_ERR "Device '%s' does not have a release()
function, it is broken and must be fixed. See Documentation/kobject.txt.\n",
dev_name(dev));
So it looks not.
> You have dev, type or
> class to choose from. Type is rarely used and doesn't seem to be used
> by vdpa, so class seems the right choice
>
> Jason
Yes, but my understanding is class and bus are mutually exclusive. So we
can't add a class to a device which is already attached on a bus.
Thanks
Powered by blists - more mailing lists