ip_hw_id
struct ip_hw_id *ip_hw_id = NULL;
if (!ip_hw_id) {
ip_hw_id = kzalloc(sizeof(*ip_hw_id), GFP_KERNEL);
if (!ip_hw_id)
ip_hw_id->hw_id = ii;
kobject_set_name(&ip_hw_id->hw_id_kset.kobj, "%d", ii);
ip_hw_id->hw_id_kset.kobj.kset = &ip_die_entry->ip_kset;
ip_hw_id->hw_id_kset.kobj.ktype = &ip_hw_id_ktype;
res = kset_register(&ip_hw_id->hw_id_kset);
kfree(ip_hw_id);
&ip_hw_id->hw_id_kset.kobj,
ip_hw_instance->kobj.kset = &ip_hw_id->hw_id_kset;
static void amdgpu_discovery_sysfs_ip_hw_free(struct ip_hw_id *ip_hw_id)
hw_id_kset = &ip_hw_id->hw_id_kset;
kobject_put(&ip_hw_id->hw_id_kset.kobj);
#define to_ip_hw_id(x) container_of(to_kset(x), struct ip_hw_id, hw_id_kset)
struct ip_hw_id *ip_hw_id = to_ip_hw_id(kobj);
if (!list_empty(&ip_hw_id->hw_id_kset.list))
kfree(ip_hw_id);