> From: Naman Jain <namj...@linux.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 <de...@microsoft.com>