From: Naman Jain <namjain@linux.microsoft.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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>,
Michael Kelley <mhklinux@outlook.com>
Subject: Re: [PATCH v4 1/2] uio_hv_generic: Fix sysfs creation path for ring buffer
Date: Tue, 15 Apr 2025 21:24:16 +0530 [thread overview]
Message-ID: <ca303616-750d-485d-bf3c-8a4106121aec@linux.microsoft.com> (raw)
In-Reply-To: <2025041527-cesarean-facial-cdca@gregkh>
On 4/15/2025 8:40 PM, Greg Kroah-Hartman wrote:
> On Thu, Apr 10, 2025 at 11:38:46AM +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 device 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's kobject gets initialized
>> completely.
>>
>> Fix this by moving the core logic of sysfs creation for ring buffer,
>> from uio_hv_generic to HyperV's VMBus driver, where rest of the sysfs
>> attributes for the channels are defined. While doing that, make use
>> of attribute groups and macros, instead of creating sysfs directly,
>> to ensure better error handling and code flow.
>>
>> Problem path:
>> vmbus_process_offer (new offer comes for the VMBus device)
>> vmbus_add_channel_work
>> vmbus_device_register
>> |-> device_register
>> | |...
>> | |-> hv_uio_probe
>> | |...
>> | |-> sysfs_create_bin_file (leads to a warning as
>> | primary channel's kobject, which is used to
>> | create sysfs is not yet initialized)
>> |-> kset_create_and_add
>> |-> vmbus_add_channel_kobj (initialization of primary channel's
>> kobject happens later)
>>
>> Above code flow is sequential and the warning is always reproducible in
>> this path.
>>
>> Fixes: 9ab877a6ccf8 ("uio_hv_generic: make ring buffer attribute for primary channel")
>> Cc: stable@kernel.org
>> Suggested-by: Saurabh Sengar <ssengar@linux.microsoft.com>
>> Suggested-by: Michael Kelley <mhklinux@outlook.com>
>> Signed-off-by: Naman Jain <namjain@linux.microsoft.com>
>> ---
>> drivers/hv/hyperv_vmbus.h | 6 ++
>> drivers/hv/vmbus_drv.c | 110 ++++++++++++++++++++++++++++++++++-
>> drivers/uio/uio_hv_generic.c | 39 ++++++-------
>> include/linux/hyperv.h | 6 ++
>> 4 files changed, 138 insertions(+), 23 deletions(-)
>
> Always run checkpatch on a patch before submitting it for review :(
>
Hi Greg,
I verified again and I could not see checkpatch warnings with patch 1,2.
There was a warning regarding length of characters for link to previous
versions in the cover letter but I ignored it.
I tried on latest linux-next tip with this series fetched from lore
using b4. I'm sorry, if I am missing something, but can you please try
again.
Thanks,
Naman
next prev parent reply other threads:[~2025-04-15 15:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-10 6:08 [PATCH v4 0/2] uio_hv_generic: Fix ring buffer sysfs creation path Naman Jain
2025-04-10 6:08 ` [PATCH v4 1/2] uio_hv_generic: Fix sysfs creation path for ring buffer Naman Jain
2025-04-15 15:10 ` Greg Kroah-Hartman
2025-04-15 15:54 ` Naman Jain [this message]
2025-04-15 16:14 ` Greg Kroah-Hartman
2025-04-15 16:21 ` Naman Jain
2025-04-15 16:13 ` Greg Kroah-Hartman
2025-04-10 6:08 ` [PATCH v4 2/2] Drivers: hv: Make the sysfs node size for the ring buffer dynamic Naman Jain
2025-04-15 16:08 ` [PATCH v4 0/2] uio_hv_generic: Fix ring buffer sysfs creation path Michael Kelley
2025-04-15 16:11 ` 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=ca303616-750d-485d-bf3c-8a4106121aec@linux.microsoft.com \
--to=namjain@linux.microsoft.com \
--cc=decui@microsoft.com \
--cc=gregkh@linuxfoundation.org \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhklinux@outlook.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.