OSDN Git Service

remoteproc: Remove depricated crash completion
authorBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 5 Jan 2018 23:57:58 +0000 (15:57 -0800)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 15 Jan 2018 17:29:16 +0000 (09:29 -0800)
The crash handling now happens in a single execution context, so there's
no longer a need for a completion to synchronize this.

Reviewed-By: Loic Pallardy <loic.pallardy@st.com>
Tested-By: Loic Pallardy <loic.pallardy@st.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/remoteproc_core.c
include/linux/remoteproc.h

index eab14b4..758fad3 100644 (file)
@@ -1028,10 +1028,6 @@ static int rproc_stop(struct rproc *rproc)
                return ret;
        }
 
-       /* if in crash state, unlock crash handler */
-       if (rproc->state == RPROC_CRASHED)
-               complete_all(&rproc->crash_comp);
-
        rproc->state = RPROC_OFFLINE;
 
        dev_info(dev, "stopped remote processor %s\n", rproc->name);
@@ -1057,8 +1053,6 @@ int rproc_trigger_recovery(struct rproc *rproc)
 
        dev_err(dev, "recovering %s\n", rproc->name);
 
-       init_completion(&rproc->crash_comp);
-
        ret = mutex_lock_interruptible(&rproc->lock);
        if (ret)
                return ret;
@@ -1067,9 +1061,6 @@ int rproc_trigger_recovery(struct rproc *rproc)
        if (ret)
                goto unlock_mutex;
 
-       /* wait until there is no more rproc users */
-       wait_for_completion(&rproc->crash_comp);
-
        /* load firmware */
        ret = request_firmware(&firmware_p, rproc->firmware, dev);
        if (ret < 0) {
@@ -1459,7 +1450,6 @@ struct rproc *rproc_alloc(struct device *dev, const char *name,
        INIT_LIST_HEAD(&rproc->subdevs);
 
        INIT_WORK(&rproc->crash_handler, rproc_crash_handler_work);
-       init_completion(&rproc->crash_comp);
 
        rproc->state = RPROC_OFFLINE;
 
index 44e630e..6f1d8e0 100644 (file)
@@ -406,7 +406,6 @@ enum rproc_crash_type {
  * @index: index of this rproc device
  * @crash_handler: workqueue for handling a crash
  * @crash_cnt: crash counter
- * @crash_comp: completion used to sync crash handler and the rproc reload
  * @recovery_disabled: flag that state if recovery was disabled
  * @max_notifyid: largest allocated notify id.
  * @table_ptr: pointer to the resource table in effect
@@ -437,7 +436,6 @@ struct rproc {
        int index;
        struct work_struct crash_handler;
        unsigned int crash_cnt;
-       struct completion crash_comp;
        bool recovery_disabled;
        int max_notifyid;
        struct resource_table *table_ptr;