Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754640AbcJORAh (ORCPT ); Sat, 15 Oct 2016 13:00:37 -0400 Received: from mout.web.de ([212.227.17.11]:61340 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751596AbcJORA3 (ORCPT ); Sat, 15 Oct 2016 13:00:29 -0400 Subject: Re: [PATCH 04/18] [media] RedRat3: One function call less in redrat3_transmit_ir() after error detection To: Sean Young References: <566ABCD9.1060404@users.sourceforge.net> <81cef537-4ad0-3a74-8bde-94707dcd03f4@users.sourceforge.net> <7878868c-bc54-5577-b808-ed096bbf3759@users.sourceforge.net> <20161015133339.GB3393@gofer.mess.org> Cc: linux-media@vger.kernel.org, Hans Verkuil , Mauro Carvalho Chehab , Wolfram Sang , LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <5f471774-ec63-c404-6ebb-2b20c0f2a20e@users.sourceforge.net> Date: Sat, 15 Oct 2016 19:00:14 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161015133339.GB3393@gofer.mess.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:utRDi2tV7gqLJgjhhONZctlmSjZ40t+VpGTRnVtuvbvHxtou5L7 O5vJXe+oJL/YO3JkPGMhdNQmNLYp5l2bDTm8gomF4EPPX6PGbD5KtILzXQcpLVqzqSAKPoR rcRqRaB7EmqzaCkXStyeWR5V11JykgE9j+Nz16Gk06NS4blcIJXby6oI3qbhXyZXkdGSkZL aVSGCYA46LlWDF9U8P6mQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:xOMyIwPnkIY=:A58sleIz7sHI3GdSWYLMNL U3Gqap2iqfaaWSTHXOy3oep5IDx5yJ6QiWPbQuP11KGcp+YfYKxvm/jN4R7sv2eX/tPQOI80l uW5lT0oCQ/UJmRXSACfbAimxM+AoV9XUA3VyMQ5hOAQJIWdmqs1KlV7WooPB9oQdiElMXVLd9 MPXPD8Re3IObyEpgANAPLnr1tTwPjy/L7Wwd6p8pFvfMQ5OKkV5TVfvBaeomqzVRqDtt3omKO VAtN/kkyXlg6QK2Cd4otpvHJj3V5IgMZDUo4hFxfiolJhIkxROp2sqQ3d+Gvzq8QDhdqLfcck 9FjPr3Q0z/kzRPRbzv7cH+wlNVmbWpt7coyOYV1CAOHg8OixEO4jMhCHjnGnbgcN2Cgfu7lsw hNa5XMf4gwwaKlXrc873SLeACLB2FcY0hFTyGiMwFEDyutKJUXJ2gXdGVWyG4YM6QDfxc5QxP 9mJ9SoC7gXXOxuguF7jEojOx3Faq6/8bypIvHcEQW67DqX2NlM2GIWvL8GgVa6N7O4g5zxWHY 2fFSrfqyuKOQMBxqASV3QS9vG+HW5ag1gz38litntDRPFnLE4Oe7+Ob8u6Pq4f4HII3RH3l+L AxBRRKUr8fsVfydrqqOAG2P0PIhObHexlxw9lPOu76Bl0+NGiunbxbXX8VmZHQtVKrTirpAsE DcEP+J/1JlYawG2DNI8ZxA6hUwzc5vSajfwTDRJGxQmmaUQRbOvv0PEpCoQSSKy4nLZOrCEBz YGqad0YrxklrzwjL1Fd/J6QlquW/FtGDopfhIQxu6lqcvQcD/in1JeYaaeVhpRBp4e1Lp1Jb1 TL9vZXt Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2143 Lines: 70 >> diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c >> index 7ae2ced..71e901d 100644 >> --- a/drivers/media/rc/redrat3.c >> +++ b/drivers/media/rc/redrat3.c >> @@ -723,10 +723,10 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf, >> { >> struct redrat3_dev *rr3 = rcdev->priv; >> struct device *dev = rr3->dev; >> - struct redrat3_irdata *irdata = NULL; >> + struct redrat3_irdata *irdata; >> int ret, ret_len; >> int lencheck, cur_sample_len, pipe; >> - int *sample_lens = NULL; >> + int *sample_lens; >> u8 curlencheck; >> unsigned i, sendbuf_len; >> >> @@ -747,7 +747,7 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf, >> irdata = kzalloc(sizeof(*irdata), GFP_KERNEL); >> if (!irdata) { >> ret = -ENOMEM; >> - goto out; >> + goto free_sample; >> } >> >> /* rr3 will disable rc detector on transmit */ >> @@ -776,7 +776,7 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf, >> curlencheck++; >> } else { >> ret = -EINVAL; >> - goto out; >> + goto reset_member; >> } >> } >> irdata->sigdata[i] = lencheck; >> @@ -811,14 +811,12 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf, >> dev_err(dev, "Error: control msg send failed, rc %d\n", ret); >> else >> ret = count; >> - >> -out: >> - kfree(irdata); >> - kfree(sample_lens); >> - >> +reset_member: >> rr3->transmitting = false; >> /* rr3 re-enables rc detector because it was enabled before */ >> - >> + kfree(irdata); >> +free_sample: >> + kfree(sample_lens); > > In this error path, rr3->transmitting is not set to false Can it be that this reset is not needed because it should have still got this value already in the software refactoring I proposed here? > so now the driver will never allow you transmit again. I have got an other impression. > Also this patch does not apply against latest. Do you want that I rebase my update suggestion for this software module on a published commit that is more recent than 2016-09-22 (d6ae162bd13998a6511e5efbc7c19ab542ba1555 for example)? Regards, Markus