mei: add mei_hbuf_acquire wrapper
A client has to acquire host buffer before writing, we add lock like wrapper to replace the code snippet if (dev->hbuf_is_ready) dev->hbuf_is_ready = false; Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
4a22176aa8
commit
6aae48ff18
@@ -605,7 +605,6 @@ static int mei_txe_write(struct mei_device *dev,
|
||||
mei_txe_input_payload_write(dev, i + 1, reg);
|
||||
}
|
||||
|
||||
dev->hbuf_is_ready = false;
|
||||
/* Set Input-Doorbell */
|
||||
mei_txe_input_doorbell_set(hw);
|
||||
|
||||
@@ -983,20 +982,16 @@ irqreturn_t mei_txe_irq_thread_handler(int irq, void *dev_id)
|
||||
dev->hbuf_is_ready = true;
|
||||
|
||||
if (hw->aliveness && dev->hbuf_is_ready) {
|
||||
/* if SeC did not complete reading the written data by host */
|
||||
if (!mei_txe_is_input_ready(dev)) {
|
||||
dev_dbg(&dev->pdev->dev, "got Input Ready Int, but SEC_IPC_INPUT_STATUS_RDY is 0.\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* get the real register value */
|
||||
dev->hbuf_is_ready = mei_hbuf_is_ready(dev);
|
||||
rets = mei_irq_write_handler(dev, &complete_list);
|
||||
if (rets)
|
||||
dev_err(&dev->pdev->dev,
|
||||
"mei_irq_write_handler ret = %d.\n", rets);
|
||||
if (rets && rets != -EMSGSIZE)
|
||||
dev_err(&dev->pdev->dev, "mei_irq_write_handler ret = %d.\n",
|
||||
rets);
|
||||
dev->hbuf_is_ready = mei_hbuf_is_ready(dev);
|
||||
}
|
||||
|
||||
|
||||
|
||||
mei_irq_compl_handler(dev, &complete_list);
|
||||
|
||||
end:
|
||||
|
Reference in New Issue
Block a user