[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <91182a46-edcd-f4f2-3316-696a5147f5e4@linux.intel.com>
Date: Tue, 4 Aug 2020 13:04:13 -0500
From: Richard Gong <richard.gong@...ux.intel.com>
To: Moritz Fischer <mdf@...nel.org>
Cc: linux-fpga@...r.kernel.org, linux-kernel@...r.kernel.org,
trix@...hat.com, dinguyen@...nel.org,
Richard Gong <richard.gong@...el.com>
Subject: Re: [RESEND PATCHv1] fpga: stratix10-soc: make FPGA task
un-interruptible
Hi Moritz,
No problem.
Thanks you very much for applying patch to the next!
Regards,
Richard
On 8/4/20 11:43 AM, Moritz Fischer wrote:
> On Fri, Jul 24, 2020 at 11:10:09AM -0500, richard.gong@...ux.intel.com wrote:
>> From: Richard Gong <richard.gong@...el.com>
>>
>> When CTRL+C occurs during the process of FPGA reconfiguration, the FPGA
>> reconfiguration process stops and the user can't perform a new FPGA
>> reconfiguration properly.
>>
>> Set FPGA task to be not interruptible so that the user can properly
>> perform FPGA reconfiguration after CTRL+C event.
>>
>> Signed-off-by: Richard Gong <richard.gong@...el.com>
>> Reviewed-by: Tom Rix <trix@...hat.com>
>> ---
>> drivers/fpga/stratix10-soc.c | 23 +++--------------------
>> 1 file changed, 3 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/fpga/stratix10-soc.c b/drivers/fpga/stratix10-soc.c
>> index 44b7c56..657a70c 100644
>> --- a/drivers/fpga/stratix10-soc.c
>> +++ b/drivers/fpga/stratix10-soc.c
>> @@ -196,17 +196,13 @@ static int s10_ops_write_init(struct fpga_manager *mgr,
>> if (ret < 0)
>> goto init_done;
>>
>> - ret = wait_for_completion_interruptible_timeout(
>> + ret = wait_for_completion_timeout(
>> &priv->status_return_completion, S10_RECONFIG_TIMEOUT);
>> if (!ret) {
>> dev_err(dev, "timeout waiting for RECONFIG_REQUEST\n");
>> ret = -ETIMEDOUT;
>> goto init_done;
>> }
>> - if (ret < 0) {
>> - dev_err(dev, "error (%d) waiting for RECONFIG_REQUEST\n", ret);
>> - goto init_done;
>> - }
>>
>> ret = 0;
>> if (!test_and_clear_bit(SVC_STATUS_OK, &priv->status)) {
>> @@ -318,7 +314,7 @@ static int s10_ops_write(struct fpga_manager *mgr, const char *buf,
>> */
>> wait_status = 1; /* not timed out */
>> if (!priv->status)
>> - wait_status = wait_for_completion_interruptible_timeout(
>> + wait_status = wait_for_completion_timeout(
>> &priv->status_return_completion,
>> S10_BUFFER_TIMEOUT);
>>
>> @@ -340,13 +336,6 @@ static int s10_ops_write(struct fpga_manager *mgr, const char *buf,
>> ret = -ETIMEDOUT;
>> break;
>> }
>> - if (wait_status < 0) {
>> - ret = wait_status;
>> - dev_err(dev,
>> - "error (%d) waiting for svc layer buffers\n",
>> - ret);
>> - break;
>> - }
>> }
>>
>> if (!s10_free_buffers(mgr))
>> @@ -372,7 +361,7 @@ static int s10_ops_write_complete(struct fpga_manager *mgr,
>> if (ret < 0)
>> break;
>>
>> - ret = wait_for_completion_interruptible_timeout(
>> + ret = wait_for_completion_timeout(
>> &priv->status_return_completion, timeout);
>> if (!ret) {
>> dev_err(dev,
>> @@ -380,12 +369,6 @@ static int s10_ops_write_complete(struct fpga_manager *mgr,
>> ret = -ETIMEDOUT;
>> break;
>> }
>> - if (ret < 0) {
>> - dev_err(dev,
>> - "error (%d) waiting for RECONFIG_COMPLETED\n",
>> - ret);
>> - break;
>> - }
>> /* Not error or timeout, so ret is # of jiffies until timeout */
>> timeout = ret;
>> ret = 0;
>> --
>> 2.7.4
>>
>
> Sorry that one slipped through the cracks, will apply to for-next.
>
> Thanks!
>
Powered by blists - more mailing lists