core.c (e4719b52b144d90923fcd6a276b84a28308f7322) | core.c (ee6d3dd4ed48ab24b74bab3c3977b8218518247d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * drivers/base/core.c - core driver model code (device registration, etc) 4 * 5 * Copyright (c) 2002-3 Patrick Mochel 6 * Copyright (c) 2002-3 Open Source Development Labs 7 * Copyright (c) 2006 Greg Kroah-Hartman <gregkh@suse.de> 8 * Copyright (c) 2006 Novell, Inc. --- 471 unchanged lines hidden (view full) --- 480 481static void device_link_release_fn(struct work_struct *work) 482{ 483 struct device_link *link = container_of(work, struct device_link, rm_work); 484 485 /* Ensure that all references to the link object have been dropped. */ 486 device_link_synchronize_removal(); 487 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * drivers/base/core.c - core driver model code (device registration, etc) 4 * 5 * Copyright (c) 2002-3 Patrick Mochel 6 * Copyright (c) 2002-3 Open Source Development Labs 7 * Copyright (c) 2006 Greg Kroah-Hartman <gregkh@suse.de> 8 * Copyright (c) 2006 Novell, Inc. --- 471 unchanged lines hidden (view full) --- 480 481static void device_link_release_fn(struct work_struct *work) 482{ 483 struct device_link *link = container_of(work, struct device_link, rm_work); 484 485 /* Ensure that all references to the link object have been dropped. */ 486 device_link_synchronize_removal(); 487 |
488 pm_runtime_release_supplier(link, true); | 488 while (refcount_dec_not_one(&link->rpm_active)) 489 pm_runtime_put(link->supplier); |
489 490 put_device(link->consumer); 491 put_device(link->supplier); 492 kfree(link); 493} 494 495static void devlink_dev_release(struct device *dev) 496{ --- 1760 unchanged lines hidden (view full) --- 2257 .sysfs_ops = &dev_sysfs_ops, 2258 .namespace = device_namespace, 2259 .get_ownership = device_get_ownership, 2260}; 2261 2262 2263static int dev_uevent_filter(struct kset *kset, struct kobject *kobj) 2264{ | 490 491 put_device(link->consumer); 492 put_device(link->supplier); 493 kfree(link); 494} 495 496static void devlink_dev_release(struct device *dev) 497{ --- 1760 unchanged lines hidden (view full) --- 2258 .sysfs_ops = &dev_sysfs_ops, 2259 .namespace = device_namespace, 2260 .get_ownership = device_get_ownership, 2261}; 2262 2263 2264static int dev_uevent_filter(struct kset *kset, struct kobject *kobj) 2265{ |
2265 struct kobj_type *ktype = get_ktype(kobj); | 2266 const struct kobj_type *ktype = get_ktype(kobj); |
2266 2267 if (ktype == &device_ktype) { 2268 struct device *dev = kobj_to_dev(kobj); 2269 if (dev->bus) 2270 return 1; 2271 if (dev->class) 2272 return 1; 2273 } --- 2577 unchanged lines hidden --- | 2267 2268 if (ktype == &device_ktype) { 2269 struct device *dev = kobj_to_dev(kobj); 2270 if (dev->bus) 2271 return 1; 2272 if (dev->class) 2273 return 1; 2274 } --- 2577 unchanged lines hidden --- |