From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932852AbcINNNW (ORCPT ); Wed, 14 Sep 2016 09:13:22 -0400 Received: from mail-he1eur01on0131.outbound.protection.outlook.com ([104.47.0.131]:17357 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755671AbcINNNU (ORCPT ); Wed, 14 Sep 2016 09:13:20 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Subject: Re: [PATCH v1 0/2] i2c: Stop i2c modules being unloaded while in use. To: "Baxter, Jim" , References: <1473278729-16329-1-git-send-email-jim_baxter@mentor.com> <51c45bae-aa5d-bfad-e9d0-d95deb3dc380@axentia.se> <91828685-c7ba-b5b2-f128-240fdf9ebb44@mentor.com> CC: Peter Korsgaard , Wolfram Sang , , "Frkuska, Joshua" , jiwang From: Peter Rosin Organization: Axentia Technologies AB Message-ID: <0b0402e3-6092-330e-afa9-375ab8166fcb@axentia.se> Date: Wed, 14 Sep 2016 14:57:50 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <91828685-c7ba-b5b2-f128-240fdf9ebb44@mentor.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: AM4PR0101CA0001.eurprd01.prod.exchangelabs.com (10.167.254.11) To DB6PR0201MB2311.eurprd02.prod.outlook.com (10.169.222.150) X-MS-Office365-Filtering-Correlation-Id: 4678c9fa-69a3-4dda-c972-08d3dc9ebec6 X-Microsoft-Exchange-Diagnostics: 1;DB6PR0201MB2311;2:+aUXCMixZN2a1IJU3cXiEJYarXnT7lLKmhpOkOfu9yGKaOs6Jh9JWdi0UsibbMNuYI3AVTKUTcju6/bxtf3cT5BhzNhICCYVVTY/g5brMRC6oDkke+rh+kXkERkprAiybr7Am2Uy1PLJ2JJAshOTK+1eLezo7EQGQFY1KmU2FG6cG3GmaqwBHHFvVNHwBqWz;3:oDP8qBVfpOiAeCXkY4bnQl4RezQ153DvfBDHReoKFkLpNNNYhFWdRvPDbZvwzwcKlNEsBXN7DTWhdXtsCu7rwsBWwpaJaEEJjyRbfKirfpBISKoh9pKMpdLHpsT9Jl9W X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0201MB2311; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0201MB2311;25:ATV0oALOT+YcrDZXSAWLFULuMSsa3+w4pWgHWmNImBfIhxjAV+2L6OE8crxvXsdmkWCUAZeU8zAZ8Yy7jqVEm0Kuj2rIpHOY6vJdal2Z8Z8XhGIzp7Tps9BZ4NDgFNeXQx7GsSlEfz3HstRwHEDfFKttpMWn3+fufEAFZkVP7lY11+SySKTEgjMLAoQVg2d+4NFRVJg/U+l3FGKHQIqj76k68EguG6rLHdWQWHrcuzYAxwDU66TRGNrCde7cCzovo2bFMCbQScCVV+Dj2A/Oxi2t3ve7nuaN9HorTHLIIvEtTH/EsS8v5fQittBGKhHZWg2RhGtit0jT8R3qIVU0bQfSM0csxsdaNWKLENWm1HyH7E3SoNa3W42BFlhNHot10jkxqQP+RFqee6G+//KG9pt3hDypa3BfOJ59NlXZeDPG6tmjdRZyORdhjE5fXr6NVnw1WI1mLCamnkJBQYRo/d7xuC3w2j7EDJv/1h5ENXOuxbCuLFcm1V4ioeIOTam6HvLY/27vf2UyMJT/zObiAc5YBtWZ6Fp+lsaF5jjt3jP2USPSm0XVNd25dHg237OXZ+WKw7ZP8/kJRo6T9FMIwjWLK1WO31C99zaCHOws89KUigcvet/Pn62LpGAZG6ks5IZOYugoGr8KIGydhpIurS77EpFM5NlAPjx7A4Ce33iYi4xSjroMe9N5LOfqZQ5RBSHSNIk8gm5wPbWSlP4+uA==;31:naSOPWgCYh1TeM2az710q3NzshDcbJch/T0Oge2IuqS5naBvz9VuXQq/RYKHBV/NgvwxpX4vH7FvV2p18QlY99/BsOAm9qo9dKulrxZkX0/nqrjHv/mC12/tbpfHi2SuNbcdba1NGAHl1PQJsKLBY1w8tvUNZlDvWYmlGLFy3iSQCOo/s+lyefHnNTSGKt5Y+eQ7pWGjIhK0hPu/0btjUqgtkc4mLhBhbN1miRY7UGo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6043046)(6042046);SRVR:DB6PR0201MB2311;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0201MB2311; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0201MB2311;4:jb7+1blHahCpMp013FCKrV7HpmuNYUvrq1eUBBJxvAl0OQDW2COqeyrJt4b4VXWRNLxzabCx+JjAMNsPM07lCb88uJDFdHs5hN2eESonlXIR0cqozjY8eThQCVVZ/ZgLCgSD9w8KgzEch/LBMEjQCKpftBfkXvsBZRCmYnvHJSu+uOk21foMUi/a1EK0jUW3YBVfG/wCELE1KEhlkeBVqvUUmHRAiwOCNYt46O6tpsJ/tXpFS/3yikH38DMQoYpjan6V7xkO8RT8kFlsxvPm2qABzj0uPr8eEa31y/9cdznaq8T3HnwVMPjqsyqfYV/3U8QVH3ZuiNxF/dI5doO/znnt2kJSEfpp8kZIWFFwUnZ944jQuCDdQa4WUnD4GH7l9QUD3jhEu1AlFUdGXtDHz7VbLE4FVh7FinBpTAHw65Q= X-Forefront-PRVS: 006546F32A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377424004)(199003)(24454002)(189002)(8676002)(47776003)(117156001)(4326007)(230700001)(31696002)(76176999)(77096005)(81156014)(81166006)(33646002)(50986999)(54356999)(74482002)(2906002)(101416001)(2950100001)(68736007)(86362001)(36756003)(66066001)(65806001)(65956001)(23746002)(92566002)(189998001)(50466002)(65826007)(31686004)(5660300001)(305945005)(7736002)(64126003)(42186005)(106356001)(105586002)(83506001)(97736004)(5001770100001)(6116002)(3846002)(586003)(7846002)(4001350100001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0201MB2311;H:[192.168.0.125];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0201MB2311;23:0dD2RRzJ0wPn5pOVVtbNVLo086vP1hyfUH5?= =?Windows-1252?Q?oecDFfNpN8dfanx0XHFzGlz+TUdRSPazqLwQnWZcDnFDzz7N6chwDji7?= =?Windows-1252?Q?VJ9LT/UWjN0MZOc18fF/gDZZeytyR3KZoUt/uA6tSVtzg0cQ+lyUabRy?= =?Windows-1252?Q?kUhVX1WZu9ftINQdbH1F/mhdlJ9YX8O+SjIAw/R1zguVfl2qUn8tYCSn?= =?Windows-1252?Q?ewmISaVoYdr8YS8LqR61xhxH6f3KpZfJG7vZPI4aP8lEwrunyc+UCVKJ?= =?Windows-1252?Q?zx9/CGbwI8/eG5X2ery2S5/p9INyWyclrkCpO+Lxsc1V9IggZDsx5qe1?= =?Windows-1252?Q?Z0dC45H/yD9O8shBvjnIM9y0II6EoBN2fTSCqrKeGQ5mUSTN51W6+708?= =?Windows-1252?Q?pyhc+b1jc4KyFLgWpvF3xZYe2QYg9/vaQzjZDH9tpt9BmbL8c9iRad83?= =?Windows-1252?Q?yG2Vy/gVgwPSba+sos06Y/ZfEzhEMyU9spnAS4xLmR69u5jgSQ8NxY5F?= =?Windows-1252?Q?CRn0uIn9+9111We4XuWri9UGbKyYTEj97w6QxVnR0vw0DgEoQ9PaCdL9?= =?Windows-1252?Q?grcNTpdMYy/1JIrZAAQGkHPNAEGr/syseV7pOZvQgBo2oGHgTg80d8eB?= =?Windows-1252?Q?LXlF6xnaQDtM6CJr9x4PmqyL3nAfHZAD5VJ/hA8zYvwvsrORNvqia/77?= =?Windows-1252?Q?u2kXw4tPc4oQXFkPQrk6HkwELW+dJF9kTCER9/npbNbMrFVgl6Nu9Esl?= =?Windows-1252?Q?bYOq6pxDqnNdCqDatUlC9KNKRkrzOAICsADe/rylcZmujAFhCMQ7Ly82?= =?Windows-1252?Q?Y1oIHT810EgxKbzis4jSG0767uYRXPeD5W6n0DKEK4n5d8PvVIds2c5x?= =?Windows-1252?Q?LsoJT0RKdWOHgup7RbxvWQ7KM18FenLa/WOTfquVRgvpZplr1kHEYWm5?= =?Windows-1252?Q?u1k6qvUwV5ssZLd0ea4JTYVIShDvss4HW3KNVyZRfv8Rv439hOFYsC7m?= =?Windows-1252?Q?5axtUT0x+x9NgKhBdTFiHt8zASJzzjd/2VrRtAihlKa4ip6HAhERnIqE?= =?Windows-1252?Q?Jrub1a+uzJDZNNd2HCVAuYbbkA66xUmBr1r8X3lByH3DR0se8cH6BHP/?= =?Windows-1252?Q?b1bfn9onFRPgP4DY3vFUQXe2CLlxg9sHTlzZihtGrnXm11mkqm8V1Lok?= =?Windows-1252?Q?5GIkUp/Onz5ZKz7JQnkvTzNDUtoB5ahnvi9yKM5QOU1CWCwNV6fVWfWM?= =?Windows-1252?Q?4ynlVCxFLhB+OvEdsNrI9kKFAgeGtUjbt5GiLvznqZy4Z/RwoFol61s4?= =?Windows-1252?Q?tE0o3ig5x+iZLbzouBNiFS9loAT3fptbzOIi2mEeLHCsUrebox+ib/6c?= =?Windows-1252?Q?YzSWFEzd7iIxO?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0201MB2311;6:fJ95W9pHK0in0G7ACyhM6UWpPtPeWr4vXv1jSZorqu/KjigEAEjkmadyeJFa7pxJ4khwgL85GHvojRPXrEZWtaZNAuUwGEdf/lPweIl+aYrzKgEcKHbDh/CDbIrORg8uuDgg3dc4Bd3+LfHrme9QB3UPP42XHzkFg+cYqnQ193MagUWvp+IChCsGXg8tIIn632Pzb+7kvFAT6t8ClhVuIEFHTbyYtvQZIZvvpWq2JC7yIyRx0HWJuUGOlRtgRkC6YAxl/Oxbg2JL3QAP35VAGZ5esQbP45iRPZ8xZyhLVbBOhlax1zGQZBxegDZfz4NT;5:gRLAzrkjLQXgAgcxle8Gq4jjAIjUhYOGg4F9RlHatH/INUy4OyCgch+l2HHhTxQHeoqtQeR4Qj/z5G2qQG0IRJGEnxCARnli+vHWdvGVbXi9VejSjyvOlvhyOUvKb3HKYSaC2XMA0hD6l0Ao9zOatA==;24:083EHnEeWCkZdyRrxyj4hz+TZpeC/0JUtk2IKIQovN9Mhpp7zVV1Z7vTo6PAxCMVIaUEaNJXdKEKReHj88eI0EWMgsZ5iyqNIZ6pr8h30eY=;7:A/4GYw+KAbpw75VuThy7D3lYp5HmQqCqysQ/WJDpygczr4iiW5/hNNkRWktI9dbko4GfM9XwYIZXY5WGfoL2C500bW/zm+1yKPWpBdLol2eOQI9qkECfPJFJI8kZWaUF9sKuaFFoxpyzMy/rUzJf0oMDYEhsMCnbbqbUQ9yQaUK59mT2jECkYtuxZMQTwXihLIFx2caaRB8ykJG2eoVLuxbSrfdNFJb0+fPgEH7USCPjl00KUAD2caM0DexgwyF+ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2016 12:57:54.4987 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0201MB2311 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jim! On 2016-09-13 18:55, Baxter, Jim wrote: > Hi Peter, > >> nitpick: Patch subjects for the second patch is wrong. >> >> "reparented" is a bit dual when dealing with i2c adapter trees. >> i2c_mux_add_owned_adapter is perhaps clearer? > > Agreed, I will update that. > >> >> >> Aside from that, I'm not using modules much and need some enlightenment >> as to why the i2c_del_mux_adapter() call in i2c_mux_gpio_remove() is not >> sufficient and what exactly the problem is? Why would someone/something >> unload the i2c-mux module prematurely? > > It is not a normal operation to remove the i2c gpio mux, however systemd > could unload modules out of order if users are restarting services > incorrectly and cause unintended side-effects. This change would stop an > i2c-mux that maybe controlling a voltage regulator from being unloaded > and disabling power to parts of the system unexpectedly. I don't see how that can happen. The voltage regulator that sits behind the mux should be a user of one of the child adapters on the mux, so that child adapter can't be removed as long as the voltage regulator is there. And the i2c-mux can't be unloaded as long as the child adapter is there, since it is the owner. So what's going on? Simply changing the owner of the child adapter will break this chain leaving the i2c-mux as owner of nothing, thus *making* it a target for premature unloading. I must be fundamentally misunderstanding something. BTW, was this solving a real issue, or is it all theory? Cheers, Peter >> Would it be an alternative to make i2c-mux a proper kernel object of >> some kind? I mean, why do not all other mux users also need to modify >> the owner? Why is i2c-mux-gpio special? >> > > i2c-mux-gpio is not special, the code inserted by > [PATCH v1 1/2] i2c-mux: add i2c_mux_add_reparented_adapter api could be > used by other muxes if required.