| 5652 | } |
| 5653 | |
| 5654 | static void |
| 5655 | device_do_deferred_actions(void) |
| 5656 | { |
| 5657 | devclass_t dc; |
| 5658 | driverlink_t dl; |
| 5659 | |
| 5660 | /* |
| 5661 | * Walk through the devclasses to find all the drivers we've tagged as |
| 5662 | * deferred during the freeze and call the driver added routines. They |
| 5663 | * have already been added to the lists in the background, so the driver |
| 5664 | * added routines that trigger a probe will have all the right bidders |
| 5665 | * for the probe auction. |
| 5666 | */ |
| 5667 | TAILQ_FOREACH(dc, &devclasses, link) { |
| 5668 | TAILQ_FOREACH(dl, &dc->drivers, link) { |
| 5669 | if (dl->flags & DL_DEFERRED_PROBE) { |
| 5670 | devclass_driver_added(dc, dl->driver); |
| 5671 | dl->flags &= ~DL_DEFERRED_PROBE; |
| 5672 | } |
| 5673 | } |
| 5674 | } |
| 5675 | |
| 5676 | /* |
| 5677 | * We also defer no-match events during a freeze. Walk the tree and |
| 5678 | * generate all the pent-up events that are still relevant. |
| 5679 | */ |
| 5680 | device_gen_nomatch(root_bus); |
| 5681 | bus_data_generation_update(); |
| 5682 | } |
| 5683 | |
| 5684 | static int |
| 5685 | devctl2_ioctl(struct cdev *cdev, u_long cmd, caddr_t data, int fflag, |
no test coverage detected