Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758136AbcDHQlp (ORCPT ); Fri, 8 Apr 2016 12:41:45 -0400 Received: from mail-bl2on0070.outbound.protection.outlook.com ([65.55.169.70]:35970 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753723AbcDHQln (ORCPT ); Fri, 8 Apr 2016 12:41:43 -0400 Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=caviumnetworks.com; Message-ID: <5707DF3F.3000508@caviumnetworks.com> Date: Fri, 8 Apr 2016 09:41:35 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: David Daney CC: "David S. Miller" , , , , Robert Richter , Sunil Goutham , David Daney Subject: Re: [PATCH] net: thunderx: Fix broken of_node_put() code. References: <1459472517-5696-1-git-send-email-ddaney.cavm@gmail.com> In-Reply-To: <1459472517-5696-1-git-send-email-ddaney.cavm@gmail.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [64.2.3.194] X-ClientProxiedBy: SN1PR07CA0028.namprd07.prod.outlook.com (10.162.170.166) To SN1PR07MB2141.namprd07.prod.outlook.com (10.164.47.11) X-MS-Office365-Filtering-Correlation-Id: e866de18-044d-46c4-a0aa-08d35fcca820 X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2141;2:/ANYjd05tgW9JYgSuMrdrRgb3GqhI9mmkqZp3dr/bj02qexgElmZ1jnDeCXfkmzVicZoxpsEb3WlysxZiIVHGohkJROrjJxTtBN/9eWQBKLEng/MjCthP3eRpPiWsKg8zmHEAe7xFlifPeJkdPPRhXcaH1fJT2xbZhqRj+DTgRbR+UWA6VJhwy6GYzcqHsk0;3:Wnia4qPmdbnknyvL/8I4iCC9htlVwVd4uJousvpRnTDglGLpLWBYnDtu2mLkul7dHo4X56jLDoALYcT/oigSuc04vwc1tbWrd6oHO0pIChY/fJtd7C9rcnLa41FQI2QJ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2141; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2141;25:a6lLPCTQoOmRmnUp60iP54VoOeZ0Enb7jQh7nI5cS0RSKosFai+INg/Rk0Nd4h+tO4oSOdIRnRw1fHQTa2+hPWq1NKw4jJNGK9P1X+vxp1TtiODBMh6GChcuDfnz0PdmvhdAB7aQ4qMad0UgJAoCtoG7ap2wbO/eL/teKasZ8pg8JYHD1jW375rnBMoSWv03si1wdQ/QP70W5nensf86stt6Mp+n05vVvoC8LJ9T9OO3xO3F9cCEvk6I4S9eoJWxOu5zypdaAcdwFyCrX89EVZ55V75wqFH1FbmWZ8H+HbZMfuZOIpgZiRhdDDGO7av6PaTjIZBVHFhjaINd166OBqqrN/ocqMDCeGz+kmGP/uCY1+Md+DYlci+jRAz1OwhQy4s9gSzpDF8KLKW4BYfUHzOpJuT/wRBig/OeEKyg6EiuXwQ0LiZXPveqoVwqK3jkC1gvD4W4HvJrKmyH06NKNvI5kCiz2Wni3frRkco9PPqmspJqlxJ03pkudiHK1/rfz91bnWh/ucEAXHwLqmgZy0vXkkTmAIdSUvUkAnmzhN4MSlvNAovo0YMo57xPmWAOFVdEM/TaREEs4VLwSf5ghMkZ2L6KsessOLpmKXVtNl6V3Gbw9AXq/4VSA0ucIJ9OUFtVa1GuFcSn3vxzHABmZBNJoCp2NpKO63MiC9Q3ampYlNPy7bIKRAPOX6kp+gJZ5xFbJP4/rcSBlVu2rAU6VfjXxdB9UQUTVIHPirgy1+tg8kk9Zf2msdb5Y4s45fsB X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2141;20:MyApINlpZoBdYogpbybObn3SMB7n61Ax9XOiX9ol1mOr+badYVteMHpAQxRatTDxYZfsVClqrM8Ml1q+JUuvMY8c8BSiFCNgQ+Q7cPJ1uQLXZXAaIcjFIgwAc2tmJhSHHk28V/V7U/Qea7UdzkXCWMhmSSTaOQ3AUKzE9AlJpl+po79EC520nRkfrR6v9+QQMhcHfMptA8MFJ+BBSByEgPz77kiwP+5Jr4OCGeEJ8JaV8sXC9/I7uzqHDEOQotw1RBM59dMjylORlffGNq2KNGMBAaWJUUfEULQVoBXJndwUgLfkLV9qdkkF7xO8aJDXWKP4nIbgl//0jDTNopCWpCOzvelLuOL13QVCVXueEH8z3XBeF/gTp5HQqrCP8+lcVobt62zWggTTYInAkwpDZCkE+yA8jBMtInxH5SkVizOz/e8fmiqEM2DS70sYhfVIILilbrY46efnjHDXK/iJDE0SHrUQZan8s7AWxcZEEXPI5PeeQ/zTYJkU6eMOjHYFGvsyGBs0mv7PKnZgY8tH9Gw9UiL57ouZIO19p9vYLF3/5KGuIVf4haHP6bPV0QHcfx/jPbiqEmF/Xkf+cSgizV4Av9fBLvt7ZBhg++vj9C4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:SN1PR07MB2141;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2141; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2141;4:pewWMsCvU2rfzNClI0IgIlvCUU3XLs16vzsnEH2U5PDTypFd4cuhRySiDL58VM9AwHA8RT+shV//DtPU+ks6yWi4YzC8j6lSGUJAXpDE9viRBMVTwg678ZpugTnzyouWpoJvMWENXAww75pc+2gI9pY3SPw0Y3P1mbwxag111WuDQ61bdRJ5XADvbLH9rQq4BGsDZ3MASJK4v4k6Kg5bUTWCHX1PkQlHlU8bsixNFt/R5gpnD2wi6ILzxpkQhUp6Ji+42hh+hWNZrg3OXg2N6BQWsgq7D07FajtOqQDUBe26IyvnmPmTxmSBhypsS7vYlQcAnLvsdw9x2oJIOTh3lQstnoSHxBDXFPaQ37rdv2kWzT+uELeACfMhnWp7EKOK X-Forefront-PRVS: 0906E83A25 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(24454002)(377454003)(110136002)(107886002)(23756003)(4001350100001)(4001430100002)(5890100001)(5008740100001)(77096005)(2950100001)(59896002)(64126003)(5004730100002)(92566002)(50986999)(47776003)(65816999)(50466002)(54356999)(81166005)(76176999)(575784001)(586003)(19580395003)(19580405001)(80316001)(3846002)(87266999)(6116002)(42186005)(15974865002)(2906002)(53416004)(36756003)(65956001)(4326007)(1096002)(189998001)(164054004)(83506001)(230700001)(66066001)(33656002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR07MB2141;H:dl.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;SN1PR07MB2141;23:45TbIMYe+ezEeWCxyTEu01aYvmys4fzlmVGEfFp?= =?iso-8859-1?Q?ZNd3G4MSQW3PNxjtSz56PFRbHKM7wwTi+fEU+tRpdKRnH/RPqr3Aindsd3?= =?iso-8859-1?Q?5jLF1llEpnQWZBwkn1StxgACIx2jg1CZA8fnXWnMbRaohdEogoRBrhUDNC?= =?iso-8859-1?Q?At/ijJrn0zdvbaybgbCGjAolPttvGEt01po9TZohP6A8b54pfWGX7wsMgd?= =?iso-8859-1?Q?MOm7tfemZ9zEPaWmmXmSZ4S4Jn1U2yiXeiDX1ezBaGlZCOv0UYaq961KZe?= =?iso-8859-1?Q?d98uLzt2YiIf2B5LxK9T6r9c2PQ2QrmHuPbml4e4AwLAcWOKe9SBErcEQE?= =?iso-8859-1?Q?S7Zu5X8IckhUk/IIdfapHLbhxPziZj1/W0vfB1o5lfUPW4btn3nsevC1cl?= =?iso-8859-1?Q?yDwgMeGQqMBUr/BZr9/04crVOJM0qaHbK14KOx3V5Qn1L0Avi4ING33qMT?= =?iso-8859-1?Q?hJnecnsT5nBh1aGxkETGt2MD0Zy4QiMchGsFuJ0HQs60CnPdoTTFphV+1y?= =?iso-8859-1?Q?AvEX6udvek0yPVlw/v1KVn5R6WK5VC8d8tXdLrygn2yIP7lZL42IxTj40H?= =?iso-8859-1?Q?2VviIxjrM/oLV3UhU2MHkFQGEOJcKNoWV62y7Fqrr8f2i6rT7qGmdodZ3I?= =?iso-8859-1?Q?Zz/BOl133OXQ5xJdQjmv2gvHJSAoNQ2dhwAGQqDdCfNaxu292p6mHqtC96?= =?iso-8859-1?Q?GW4+TdfPRe85Skf3m0rgrAPqniRVizbKtx2fn3nFdQAiwPv+cdWbd0SY0j?= =?iso-8859-1?Q?IzJ76YAjxwGthjO4IvrzkDV9gDpOIyU0YF1WMrgTWOT9uruG1h3s+u4Bsb?= =?iso-8859-1?Q?2sHg3JJXAAjf0D8eaPe5z9+/K/d2y8hfN4aa6rBm0rL9cb1ZcdEGJat0Jm?= =?iso-8859-1?Q?mpEuL9X1F9nfe5nb31Txc5SwQ6uB6ZrwGuRPNgbNzruCRvkfX6Ar3XWwMi?= =?iso-8859-1?Q?3XfXwMQ+/gibwN9d0aDbmB6icxk6C4ujHE7v+szKSEGhPFn0/nLXKSaYz6?= =?iso-8859-1?Q?1VRbPcxK+NN32Cfj4jgmQ4rEWXcUIlyb1FTwuMC5WFABKsInYqMpvyVLXi?= =?iso-8859-1?Q?pvZI3zfvzmz2JSKZ2uB8r4T2+gnWOYoeWCTP7Q8e6vOLE21x+CHe8UShNP?= =?iso-8859-1?Q?HPBABTRALTl/9QF6FFVOzfVmI7htsH8KVUm7U1XjjvcqRAZqnRa/SMzmF8?= =?iso-8859-1?Q?k8de/6Rg8f6D61lfaUVgDnAax1ZgKgn/Z2gRzXh/zS8BwqdVA0CXO3jljh?= =?iso-8859-1?Q?sivDnzkWpryOeMyaLtczRiK4kr8In3Hbt9Owq6A=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2141;5:2OFhYJUoComm61LkzOWEy+hq9E9cKCD5iATXUP9pTJtW9UR1nFT0uDAoy7QKHDpAQvRPku4hWb26aF3yRepcSX+PhWNs3nLeCJA31p9n0++W8PVFKP2tTRM/7I8/B/9U7OBup9/DWNYPWAQdSHuM6Q==;24:JdUmFOMd/39xQ89uk0OftRZZ/ACCbwZhcfNIiNq5guC7MA7uMObjUFS9s4yyfi/C3Ne/MhWbax+dfmwJKJmXc2guKVWMopDqMlR1FH8qffI= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2016 16:41:38.2893 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2141 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3045 Lines: 69 Due to mail server malfunction, this patch was sent twice. Please ignore this duplicate. Thanks, David Daney On 03/31/2016 06:01 PM, David Daney wrote: > From: David Daney > > commit b7d3e3d3d21a ("net: thunderx: Don't leak phy device references > on -EPROBE_DEFER condition.") incorrectly moved the call to > of_node_put() outside of the loop. Under normal loop exit, the node > has already had of_node_put() called, so the extra call results in: > > [ 8.228020] ERROR: Bad of_node_put() on /soc@0/pci@848000000000/mrml-bridge0@1,0/bgx0/xlaui00 > [ 8.239433] CPU: 16 PID: 608 Comm: systemd-udevd Not tainted 4.6.0-rc1-numa+ #157 > [ 8.247380] Hardware name: www.cavium.com EBB8800/EBB8800, BIOS 0.3 Mar 2 2016 > [ 8.273541] Call trace: > [ 8.273550] [] dump_backtrace+0x0/0x210 > [ 8.273557] [] show_stack+0x24/0x2c > [ 8.273560] [] dump_stack+0x8c/0xb4 > [ 8.273566] [] of_node_release+0xa8/0xac > [ 8.273570] [] kobject_cleanup+0x8c/0x194 > [ 8.273573] [] kobject_put+0x44/0x6c > [ 8.273576] [] of_node_put+0x24/0x30 > [ 8.273587] [] bgx_probe+0x17c/0xcd8 [thunder_bgx] > [ 8.273591] [] pci_device_probe+0xa0/0x114 > [ 8.273596] [] driver_probe_device+0x178/0x418 > [ 8.273599] [] __driver_attach+0x100/0x118 > [ 8.273602] [] bus_for_each_dev+0x6c/0xac > [ 8.273605] [] driver_attach+0x30/0x38 > [ 8.273608] [] bus_add_driver+0x1f8/0x29c > [ 8.273611] [] driver_register+0x70/0x110 > [ 8.273617] [] __pci_register_driver+0x60/0x6c > [ 8.273623] [] bgx_init_module+0x40/0x48 [thunder_bgx] > [ 8.273626] [] do_one_initcall+0xcc/0x1c0 > [ 8.273631] [] do_init_module+0x68/0x1c8 > [ 8.273635] [] load_module+0xf44/0x11f4 > [ 8.273638] [] SyS_finit_module+0xb8/0xe0 > [ 8.273641] [] el0_svc_naked+0x24/0x28 > > Go back to the previous (correct) code that only did the extra > of_node_put() call on early exit from the loop. > > Signed-off-by: David Daney > --- > drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > index 9679515..d20539a 100644 > --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > @@ -1011,10 +1011,11 @@ static int bgx_init_of_phy(struct bgx *bgx) > } > > lmac++; > - if (lmac == MAX_LMAC_PER_BGX) > + if (lmac == MAX_LMAC_PER_BGX) { > + of_node_put(node); > break; > + } > } > - of_node_put(node); > return 0; > > defer: >