diff options
| author | Ulf Hansson <[email protected]> | 2021-02-12 14:16:10 +0100 |
|---|---|---|
| committer | Ulf Hansson <[email protected]> | 2021-03-30 11:41:58 +0200 |
| commit | e9ce2ce17da626d930812199568bd426b2832f57 (patch) | |
| tree | 060463a56d8f9f649ea9f45a66714bd59beccc37 /tools/perf/scripts/python/stat-cpi.py | |
| parent | fefdd3c91e0a7b3cbb3f25925d93a57c45cb0f31 (diff) | |
mmc: core: Drop reference counting of the bus_ops
When the mmc_rescan work is enabled for execution (host->rescan_disable),
it's the only instance per mmc host that is allowed to set/clear the
host->bus_ops pointer.
Besides the mmc_rescan work, there are a couple of scenarios when the
host->bus_ops pointer may be accessed. Typically, those can be described as
as below:
*)
Upper mmc driver layers (like the mmc block device driver or an SDIO
functional driver) needs to execute a host->bus_ops callback. This can be
considered as safe without having to use some special locking mechanism,
because they operate on top of the struct mmc_card. As long as there is a
card to operate upon, the mmc core guarantees that there is a host->bus_ops
assigned as well. Note that, upper layer mmc drivers are of course
responsible to clean up from themselves from their ->remove() callbacks,
otherwise things would fall apart anyways.
**)
Via the mmc host instance, we may need to force a removal of an inserted
mmc card. This happens when a mmc host driver gets unbind, for example. In
this case, we protect the host->bus_ops pointer from concurrent accesses,
by disabling the mmc_rescan work upfront (host->rescan_disable). See
mmc_stop_host() for example.
This said, it seems like the reference counting of the host->bus_ops
pointer at some point have become superfluous. As this is an old mechanism
of the mmc core, it a bit difficult to digest the history of when that
could have happened. However, let's drop the reference counting to avoid
unnecessary code-paths and lockings.
Cc: Pierre Ossman <[email protected]>
Cc: Russell King <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
Reviewed-by: Adrian Hunter <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/perf/scripts/python/stat-cpi.py')
0 files changed, 0 insertions, 0 deletions