[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54905359-035b-4974-bdae-3e60e903adbd@linux.microsoft.com>
Date: Tue, 22 Apr 2025 19:55:45 +0530
From: Naman Jain <namjain@...ux.microsoft.com>
To: Dexuan Cui <decui@...rosoft.com>, KY Srinivasan <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>, Wei Liu <wei.liu@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Stephen Hemminger <stephen@...workplumber.org>
Cc: "linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...nel.org" <stable@...nel.org>,
Saurabh Sengar <ssengar@...ux.microsoft.com>,
Michael Kelley <mhklinux@...look.com>
Subject: Re: [PATCH v5 1/2] uio_hv_generic: Fix sysfs creation path for ring
buffer
On 4/18/2025 6:39 AM, Dexuan Cui wrote:
>> From: Naman Jain <namjain@...ux.microsoft.com>
>> Sent: Tuesday, April 15, 2025 9:45 AM
>> Subject: [PATCH v5 1/2] uio_hv_generic: Fix sysfs creation path for ring buffer
>>
>> 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
>
> Sorry, I'd like to nitpick :-) I guess the maintainer(s) can fix these for you
> so v6 might not be necessary, if there is no comment from others.
>
> s/uio_hv_generic probe/hv_uio_probe()/
> s/device/the device/
>
>> and brought back, the channel rescinds and device again gets
> s/rescinds and device/gets rescinded and the device/
>
>> 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,
> s/for/of/
>
>> from uio_hv_generic to HyperV's VMBus driver, where rest of the sysfs
> s/rest/the rest/
>
>> 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:
> s/Problem/Problematic/
>
>> vmbus_process_offer (new offer comes for the VMBus device)
> s/new/A new/
>
>> 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
> s/primary/the primary/
>
>> | create sysfs is not yet initialized)
> s/sysfs/the sysfs file, /
>
>> |-> kset_create_and_add
>> |-> vmbus_add_channel_kobj (initialization of primary channel's
> s/primary/the primary/
>
>> kobject happens later)
>>
>
> Reviewed-by: Dexuan Cui <decui@...rosoft.com>
Thanks Dexuan. I'll make the required changes and send next patch.
Regards,
Naman
Powered by blists - more mailing lists