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 ---