android_kernel_xiaomi_sm8350/drivers/base
Ming Lei 49b420a13f driver core: check bus->match without holding device lock
This patch moves bus->match out from driver_probe_device and
does not hold device lock to check the match between a device
and a driver.

The idea has been verified by the commit 6cd4958609,
which leads to a faster boot. But the commit 6cd4958609 has
the following drawbacks: 1),only does the quick check in
the path of __driver_attach->driver_probe_device, not in other
paths; 2),for a matched device and driver, check the same match
twice. It is a waste of cpu ,especially for some drivers with long
device id table (eg. usb-storage driver).

This patch adds a helper of driver_match_device to check the match
in all paths, and testes the match only once.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24 16:38:24 -07:00
..
power PM: Split up sysdev_[suspend|resume] from device_power_[down|up] 2009-02-22 10:33:44 -08:00
attribute_container.c driver core: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:31 -08:00
base.h driver core: check bus->match without holding device lock 2009-03-24 16:38:24 -07:00
bus.c driver core: check bus->match without holding device lock 2009-03-24 16:38:24 -07:00
class.c driver-core: use klist for class device list and implement iterator 2008-10-09 08:56:04 +02:00
core.c driver core: get rid of struct device's bus_id string array 2009-03-24 16:38:23 -07:00
cpu.c cpumask: fix compile error when CONFIG_NR_CPUS is not defined 2009-01-03 19:15:41 +01:00
dd.c driver core: check bus->match without holding device lock 2009-03-24 16:38:24 -07:00
devres.c Driver core: fix devres_release_all() return value 2007-07-11 16:09:02 -07:00
dma-mapping.c
driver.c Revert "driver core: move knode_driver into private structure" 2009-01-09 14:44:18 -08:00
firmware_class.c driver core: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:31 -08:00
firmware.c firmware: change firmware_kset to firmware_kobj 2008-01-24 20:40:23 -08:00
hypervisor.c kobject: convert /sys/hypervisor to use kobject_create 2008-01-24 20:40:15 -08:00
init.c Driver core: coding style fixes 2008-01-24 22:50:12 -08:00
iommu.c add frontend implementation for the IOMMU API 2009-01-03 14:10:09 +01:00
isa.c driver core: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:31 -08:00
Kconfig trivial: Fix misspelled firmware in Kconfig 2009-01-06 11:28:07 +01:00
Makefile select IOMMU_API when DMAR and/or AMD_IOMMU is selected 2009-01-03 14:10:09 +01:00
map.c
memory.c mm: show node to memory section relationship with symlinks in sysfs 2009-01-06 15:59:00 -08:00
module.c Driver core: move the static kobject out of struct driver 2008-01-24 20:40:35 -08:00
node.c mm: get_nid_for_pfn() returns int 2009-03-10 15:55:10 -07:00
platform.c driver core: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:31 -08:00
sys.c PM: Split up sysdev_[suspend|resume] from device_power_[down|up], fix 2009-02-22 22:09:33 +01:00
topology.c topology: Fix sparc64 build. 2009-01-07 15:34:47 -08:00
transport_class.c SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00