10.12.2021 22:33, Dmitry Osipenko пишет: >> Not really, they only prevent the race from occurring while >> notifier_has_unique_priority() is running. >> >> If anyone depends on this check for correctness, they need to lock the >> rwsem, do the check, do the thing depending on the check while holding >> the rwsem and then release the rwsem. Otherwise it is racy. >> > It's fine that it's a bit "racy" since in the context of this series. We > always do the check after adding new entry, so it's not a problem. > > There are two options: > > 1. Use blocking_notifier_has_unique_priority() like it's done in this > patchset. Remove it after all drivers are converted to the new API and > add blocking_notifier_chain_register_unique(). > > 2. Add blocking_notifier_chain_register_unique(), but don't let it fail > the registration of non-unique entries until all drivers are converted > to the new API. There is third, perhaps the best option: 3. Add blocking_notifier_chain_register_unique() and fall back to blocking_notifier_chain_register() if unique fails, do it until all drivers are converted to the new API.