All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <cw00.choi@samsung.com>
To: jonghwa3.lee@samsung.com
Cc: Anton Vorontsov <anton.vorontsov@linaro.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Myungjoo Ham <myungjoo.ham@samsung.com>
Subject: Re: [PATCH 2/2] power: charger-manager: Fix a bug when it unregisters notifier block of extcon.
Date: Wed, 26 Jun 2013 10:22:28 +0900	[thread overview]
Message-ID: <51CA4254.3040200@samsung.com> (raw)
In-Reply-To: <51CA418E.9000607@samsung.com>

On 06/26/2013 10:19 AM, jonghwa3.lee@samsung.com wrote:
> Hi,
> On 2013년 06월 25일 22:34, Chanwoo Choi wrote:
> 
>> On Tue, Jun 25, 2013 at 2:02 PM, Jonghwa Lee <jonghwa3.lee@samsung.com
>> <mailto:jonghwa3.lee@samsung.com>> wrote:
>>
>>     This patch prevents NULL pointer error cauesed by unregistering unregistered
>>     exton notifier block. At the probing time of charger manager, it tries to
>>     remove extcon notifier block when it fails to initialize them. It has to be
>>     applied for only registered one. Otherwise, it'd make kernel panic. To make it
>>     work right, it checks extcon_specific_cable_nb's extcon_dev node. If extcon
>>     cable notifier block was registered successfully, it has proper extcon_dev
>>     pointer if not so it has NULL pointer.
>>
>>     Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com
>>     <mailto:jonghwa3.lee@samsung.com>>
>>     Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com
>>     <mailto:myungjoo.ham@samsung.com>>
>>     ---
>>      drivers/power/charger-manager.c |    4 +++-
>>      1 file changed, 3 insertions(+), 1 deletion(-)
>>
>>     diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c
>>     index 7d1bcde..c55a7dc 100644
>>     --- a/drivers/power/charger-manager.c
>>     +++ b/drivers/power/charger-manager.c
>>     @@ -1666,7 +1666,9 @@ err_reg_extcon:
>>                     charger = &desc->charger_regulators[i];
>>                     for (j = 0; j < charger->num_cables; j++) {
>>                             struct charger_cable *cable = &charger->cables[j];
>>     -                       extcon_unregister_interest(&cable->extcon_dev);
>>     +                       /* Remove notifier block if only edev exists */
>>     +                       if (cable->extcon_dev.edev)
>>     +                               extcon_unregister_interest(&cable->extcon_dev);
>>                     }
>>
>>                     regulator_put(desc->charger_regulators[i].consumer);
>>     --
>>     1.7.9.5
>>
>>
>> The charger-manager.c call extcon_unregister_interest() in
>> charger_manager_remove() function.
>> So, you should to fix it on charger_manager_remove() to remove NULL pointer error.
>>
> 
> 
> When .remove() callback function is called, there is no unregistered cable
> notifier block. Because all extcon notifier block would be registered at probing
> time, and if it is failed the probing can't be achieved. So I think it doesn't
> need to fix .remove() callback function as like above.
> 
> Thank you for reviewing.
> 
> Best regards,
> Jonghwa.
> 
> 
>> Acked-by: Chanwoo Choi <cw00.choi@samsung.com <mailto:cw00.choi@samsung.com>>
>>
>> Thanks,
>> Chanwoo Choi
>>  
> 

OK, I agree your opinion.

Acked-by: Chanwoo Choi <cw00.choi@samsung.com>

Thanks,
Chanwoo Choi


  reply	other threads:[~2013-06-26  1:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-25  5:02 [PATCH 1/2] power: charger-manager: regulator_get() never returns NULL Jonghwa Lee
2013-06-25  5:02 ` [PATCH 2/2] power: charger-manager: Fix a bug when it unregisters notifier block of extcon Jonghwa Lee
     [not found]   ` <CAGTfZH1q8b0VyDsSsFa7DooHbLN46PTYofCRXCYRThnuNRjCwg@mail.gmail.com>
2013-06-26  1:19     ` jonghwa3.lee
2013-06-26  1:22       ` Chanwoo Choi [this message]
2013-06-25  5:07 ` [PATCH 1/2] power: charger-manager: regulator_get() never returns NULL Sachin Kamat
2013-06-25  5:09   ` jonghwa3.lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51CA4254.3040200@samsung.com \
    --to=cw00.choi@samsung.com \
    --cc=anton.vorontsov@linaro.org \
    --cc=jonghwa3.lee@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.