From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Naman Jain <namjain@linux.microsoft.com>
Cc: "K . Y . Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
Stephen Hemminger <stephen@networkplumber.org>,
linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@kernel.org, Saurabh Sengar <ssengar@linux.microsoft.com>
Subject: Re: [RFC PATCH] uio_hv_generic: Fix sysfs creation path for ring buffer
Date: Fri, 14 Feb 2025 08:41:57 +0100 [thread overview]
Message-ID: <2025021418-cork-rinse-698a@gregkh> (raw)
In-Reply-To: <bb1c122e-e1bb-43fb-a71d-dde8f7aa352b@linux.microsoft.com>
On Fri, Feb 14, 2025 at 12:35:44PM +0530, Naman Jain wrote:
>
>
> On 2/14/2025 12:21 PM, Greg Kroah-Hartman wrote:
> > On Fri, Feb 14, 2025 at 12:13:51PM +0530, Naman Jain wrote:
> > > On regular bootup, devices get registered to vmbus first, so when
> > > uio_hv_generic driver for a particular device type is probed,
> > > the device is already initialized and added, so sysfs creation in
> > > uio_hv_generic probe works fine. However, when device is removed
> > > and brought back, the channel rescinds and again gets registered
> > > to vmbus. However this time, the uio_hv_generic driver is already
> > > registered to probe for that device and in this case sysfs creation
> > > is tried before the device gets initialized completely. Fix this by
> > > deferring sysfs creation till device gets initialized completely.
> > >
> > > Problem path:
> > > vmbus_device_register
> > > device_register
> > > uio_hv_generic probe
> > > sysfs_create_bin_file (fails here)
> >
> > Ick, that's the issue, you shouldn't be manually creating sysfs files.
> > Have the driver core do it for you at the proper time, which should make
> > your logic much simpler, right?
> >
> > Set the default attribute groups instead of manually creating this and
> > see if that works out better.
> >
> > thanks,
> >
> > greg k-h
>
> Thanks for reviewing Greg. I tried this approach and here are my
> observations:
>
> What I could create with ATTRIBUTE_GROUPS:
> /sys/bus/vmbus/devices/eb765408-105f-49b6-b4aa-c123b64d17d4/ring
>
> The one we have right now:
> /sys/bus/vmbus/devices/eb765408-105f-49b6-b4aa-c123b64d17d4/channels/6/ring
What is "channels" and "6" here? Are they real devices or just a
directory name or something else?
> I could not find a way to tweak attributes to create the "ring" under above
> path. I could see the variations of sys_create_* which provides a
> way to pass kobj and do that, but that is something we are already
> using.
No driver should EVER be pointing to a raw kobject, that's a huge hint
that something is really wrong. Also, if a raw kobject is in a device
path in the middle like this, it will not be seen properly from
userspace library tools :(
So again, what is creating the "channels" and "6" subdirectories? All
of that shoudl be under full control by the uio device, right?
thanks,
greg k-h
next prev parent reply other threads:[~2025-02-14 7:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-14 6:43 [RFC PATCH] uio_hv_generic: Fix sysfs creation path for ring buffer Naman Jain
2025-02-14 6:51 ` Greg Kroah-Hartman
2025-02-14 7:05 ` Naman Jain
2025-02-14 7:41 ` Greg Kroah-Hartman [this message]
2025-02-14 17:11 ` Stephen Hemminger
2025-02-17 4:05 ` Naman Jain
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=2025021418-cork-rinse-698a@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namjain@linux.microsoft.com \
--cc=ssengar@linux.microsoft.com \
--cc=stable@kernel.org \
--cc=stephen@networkplumber.org \
--cc=wei.liu@kernel.org \
/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.