This reverts commit 5302dd7dd0b6d04c63cdce51d1e9fda9ef0be886. Based on a lot of email and in-person discussions, this patch series is being reworked to address a number of issues that were pointed out that needed to be taken care of before it should be merged. It will be resubmitted with those changes hopefully soon.
Showing the changes to include/linux (1 of 2 files). Show all
Unified · Split
| @@ -78,17 +78,6 @@ extern void bus_remove_file(struct bus_type *, struct bus_attribute *); · 77 unmodified lines | |||
| 78 | * -EPROBE_DEFER it will queue the device for deferred probing. | 78 | * -EPROBE_DEFER it will queue the device for deferred probing. |
| 79 | * @uevent: Called when a device is added, removed, or a few other things | 79 | * @uevent: Called when a device is added, removed, or a few other things |
| 80 | * that generate uevents to add the environment variables. | 80 | * that generate uevents to add the environment variables. |
| 81 | * @add_links: Called, perhaps multiple times per device, after a device is | ||
| 82 | * added to this bus. The function is expected to create device | ||
| 83 | * links to all the suppliers of the input device that are | ||
| 84 | * available at the time this function is called. As in, the | ||
| 85 | * function should NOT stop at the first failed device link if | ||
| 86 | * other unlinked supplier devices are present in the system. | ||
| 87 | * | ||
| 88 | * Return 0 if device links have been successfully created to all | ||
| 89 | * the suppliers of this device. Return an error if some of the | ||
| 90 | * suppliers are not yet available and this function needs to be | ||
| 91 | * reattempted in the future. | ||
| 92 | * @probe: Called when a new device or driver add to this bus, and callback | 81 | * @probe: Called when a new device or driver add to this bus, and callback |
| 93 | * the specific driver's probe to initial the matched device. | 82 | * the specific driver's probe to initial the matched device. |
| 94 | * @remove: Called when a device removed from this bus. | 83 | * @remove: Called when a device removed from this bus. |
| @@ -133,7 +122,6 @@ struct bus_type { · 38 unmodified lines | |||
| 133 | 122 | ||
| 134 | int (*match)(struct device *dev, struct device_driver *drv); | 123 | int (*match)(struct device *dev, struct device_driver *drv); |
| 135 | int (*uevent)(struct device *dev, struct kobj_uevent_env *env); | 124 | int (*uevent)(struct device *dev, struct kobj_uevent_env *env); |
| 136 | int (*add_links)(struct device *dev); | ||
| 137 | int (*probe)(struct device *dev); | 125 | int (*probe)(struct device *dev); |
| 138 | int (*remove)(struct device *dev); | 126 | int (*remove)(struct device *dev); |
| 139 | void (*shutdown)(struct device *dev); | 127 | void (*shutdown)(struct device *dev); |
| @@ -1143,13 +1131,11 @@ enum dl_dev_state { · 1003 unmodified lines | |||
| 1143 | * struct dev_links_info - Device data related to device links. | 1131 | * struct dev_links_info - Device data related to device links. |
| 1144 | * @suppliers: List of links to supplier devices. | 1132 | * @suppliers: List of links to supplier devices. |
| 1145 | * @consumers: List of links to consumer devices. | 1133 | * @consumers: List of links to consumer devices. |
| 1146 | * @needs_suppliers: Hook to global list of devices waiting for suppliers. | ||
| 1147 | * @status: Driver status information. | 1134 | * @status: Driver status information. |
| 1148 | */ | 1135 | */ |
| 1149 | struct dev_links_info { | 1136 | struct dev_links_info { |
| 1150 | struct list_head suppliers; | 1137 | struct list_head suppliers; |
| 1151 | struct list_head consumers; | 1138 | struct list_head consumers; |
| 1152 | struct list_head needs_suppliers; | ||
| 1153 | enum dl_dev_state status; | 1139 | enum dl_dev_state status; |
| 1154 | }; | 1140 | }; |
| 1155 | 1141 | ||