From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752364AbcL0Iho (ORCPT ); Tue, 27 Dec 2016 03:37:44 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:53847 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751667AbcL0Ihg (ORCPT ); Tue, 27 Dec 2016 03:37:36 -0500 X-AuditID: b6c32a58-f79726d000001ac1-ad-5862284dca0e Subject: Re: [PATCH] phy: core: check whether ops callback function is assigned To: Kishon Vijay Abraham I , linux-kernel@vger.kernel.org From: Jaehoon Chung Message-id: <9619dfcd-90e5-413a-f0ff-636228a1a1cd@samsung.com> Date: Tue, 27 Dec 2016 17:37:32 +0900 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-version: 1.0 In-reply-to: <586226F8.7010604@ti.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKKsWRmVeSWpSXmKPExsWy7bCmhq6vRlKEwZSHGhYXnvawWVzeNYfN gcnj+I3tTB6fN8kFMEWl2mSkJqakFimk5iXnp2TmpdsqeQfHO8ebmhkY6hpaWpgrKeQl5qba Krn4BOi6ZeYAjVdSKEvMKQUKBSQWFyvp29kU5ZeWpCpk5BeX2CpFGxoa6RkamOsZGRnpmRjH WhmZApUkpGZMvfOepeATb8XbLd/ZGxgvcXUxcnJICJhItM59xQxhi0lcuLeerYuRi0NIYCmj xLENXYwQTjuTxK+vl9lhOiad28AMkZjDKNF5aw8rhHOPUeL6xa9gs4QFAiWe9K5gA7FFBDwk Ni6YCBZnE9CR2P7tOBOIzStgJ3FwyzmgZg4OFgFViT9ndEHCogJhEpvvv2SHKBGU+DH5HguI zSmgJtG8diIjiM0sYCAxY8phJghbXmLzmrdgB0kIPGaT2NpzlwlkpoSArMSmA1CvuUi8WvWF BcIWlnh1fAvUM9ISf5feYoTo7WaU+PdlIxuE08MocWvraiaIKmOJ+w/uMUNs45Po/f0EagGv REebEESJh8Tx3ilQCxwlrq3dywQJlBWMEvt2rGOZwCg3C8lDs5A8MQvJEwsYmVcxiqUWFOem pxabFpjoFSfmFpfmpesl5+duYgQnKa2IHYz/ZgQdYhTgYFTi4eVgTIoQYk0sK67MPcQowcGs JMLLoQ4U4k1JrKxKLcqPLyrNSS0+xGgKDOOJzFKiyfnABJpXEm9oYmZoYmQJhOaG5krivAsq rCOEBNITS1KzU1MLUotg+pg4OKUaGIMDXvZIr91sH7TxsUrnFY3KnqcXNFbsWlh8N+QYq8cX 94WyviLltku8ZjaEXsvS8pjVJLuOO/i+zAld/qUz0zwrWKy5Pe7cS1Z8/mvd3+V+H/6dvKCa c//if9XfCm5HUpoSZ/boZIT8dfy241dj9zSRTU6iwS3K02dXX7RJcj+lbrLBgzNEQImlOCPR UIu5qDgRAL+XrrJoAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrLLMWRmVeSWpSXmKPExsVy+t9jQV0fjaQIg8Y5ChYXnvawWVzeNYfN gcnj+I3tTB6fN8kFMEW52WSkJqakFimk5iXnp2TmpdsqhYa46VooKeQl5qbaKkXo+oYEKSmU JeaUAnlGBmjAwTnAPVhJ3y7BLWPqnfcsBZ94K95u+c7ewHiJq4uRk0NCwERi0rkNzBC2mMSF e+vZuhi5OIQEZjFKLNjdxAjhPGCU+LvpC1CGg0NYwF9iy5EykAYRAQ+JjQsmMkPUrGKU+Lig lREkwSagI7H923EmEJtXwE7i4JZzrCC9LAKqEn/O6IKYogJhEs8bnSAqBCV+TL7HAmJzCqhJ NK+dyAhSwiygJ3H/ohZImFlAXmLzmrfMExj5ZyHpmIVQNQtJ1QJGZqBjUguSC4qT0nON8lLL 9YoTc4tL89L1kvNzNzGCg/6Z9A7Gw7vcDzEKcDAq8fBGbEyMEGJNLCuuzD3EKMHBrCTCy6Ge FCHEm5JYWZValB9fVJqTWnyI0RToiYnMUqLJ+cCIzCuJNzQxNzE3NrAwt7Q0MVIS522c/Sxc SCA9sSQ1OzW1ILUIpo+Jg1OqgXFN0tSDZ2bOaPGaoDXxXdPvC5euFbl0yC+YcYWxMmS55DTR 7fdYcg5vkpaUvvk+L+jb/m9Fj/ivzttodKtlbuTaTtOA8zOy3Hb92jH1nUbmelfXie9zU3cu 2Hzg26fO0JW9Nx6J790wLf2TS4CGyDMJ/q8+LbppPze1GRcu2pVp/TBzxv/00N4XSizFGYmG WsxFxYkA1qc8O5ACAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161227083732epcas5p23d1cb9dbb80d99b1392c70e0b4bcc135 X-Msg-Generator: CA X-Sender-IP: 203.254.230.27 X-Local-Sender: =?UTF-8?B?7KCV7J6s7ZuIG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzUo7LGF7J6EKS/ssYXsnoQ=?= X-Global-Sender: =?UTF-8?B?SmFlaG9vbiBDaHVuZxtUaXplbiBQbGF0Zm9ybSBMYWIuG1Nh?= =?UTF-8?B?bXN1bmcgRWxlY3Ryb25pY3MbUzUvU2VuaW9yIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20161222094224epcas1p49349afba1cf8468d350b66ca29e8590e X-RootMTR: 20161222094224epcas1p49349afba1cf8468d350b66ca29e8590e References: <20161222094222.6871-1-jh80.chung@samsung.com> <586226F8.7010604@ti.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/27/2016 05:31 PM, Kishon Vijay Abraham I wrote: > Hi, > > On Thursday 22 December 2016 03:12 PM, Jaehoon Chung wrote: >> If some ops-> callback function are not assigend, then it should do the >> unexpect behavior. >> To prevent the potential NULL pointer dereference, check the each >> callback functions before doing operation. > > The call backs checks are done after the mutex. Moreover even if the call backs > are not assigned, the user can call the phy ops for doing pm_runtime. Yes. I found this patch also is wrong. Thanks for pointing out. Best Regards, Jaehoon Chung > > Thanks > Kishon > >> >> Signed-off-by: Jaehoon Chung >> --- >> drivers/phy/phy-core.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c >> index a268f4d6f3e9..e4eb4431c8a4 100644 >> --- a/drivers/phy/phy-core.c >> +++ b/drivers/phy/phy-core.c >> @@ -219,7 +219,7 @@ int phy_init(struct phy *phy) >> { >> int ret; >> >> - if (!phy) >> + if (!phy || !phy->ops->init) >> return 0; >> >> ret = phy_pm_runtime_get_sync(phy); >> @@ -248,7 +248,7 @@ int phy_exit(struct phy *phy) >> { >> int ret; >> >> - if (!phy) >> + if (!phy || !phy->ops->exit) >> return 0; >> >> ret = phy_pm_runtime_get_sync(phy); >> @@ -277,7 +277,7 @@ int phy_power_on(struct phy *phy) >> { >> int ret = 0; >> >> - if (!phy) >> + if (!phy || !phy->ops->power_on) >> goto out; >> >> if (phy->pwr) { >> @@ -319,7 +319,7 @@ int phy_power_off(struct phy *phy) >> { >> int ret; >> >> - if (!phy) >> + if (!phy || !phy->ops->power_off) >> return 0; >> >> mutex_lock(&phy->mutex); >> > > >