Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753336AbdHIOnS (ORCPT ); Wed, 9 Aug 2017 10:43:18 -0400 Received: from mail-eopbgr40118.outbound.protection.outlook.com ([40.107.4.118]:53435 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751972AbdHIOnL (ORCPT ); Wed, 9 Aug 2017 10:43:11 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Subject: Re: [PATCH 3/3] [media] cx231xx: only unregister successfully registered i2c adapters To: Mauro Carvalho Chehab Cc: linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , linux-media@vger.kernel.org References: <20170731133852.8013-1-peda@axentia.se> <20170731133852.8013-4-peda@axentia.se> <20170809112741.36427eb0@vento.lan> From: Peter Rosin Organization: Axentia Technologies AB Message-ID: <24c02947-3812-1a1b-f6b7-dc5a3ff69d66@axentia.se> Date: Wed, 9 Aug 2017 16:43:03 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170809112741.36427eb0@vento.lan> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [87.96.186.165] X-ClientProxiedBy: DB6PR07CA0016.eurprd07.prod.outlook.com (2603:10a6:6:2d::26) To HE1PR0202MB2556.eurprd02.prod.outlook.com (2603:10a6:3:90::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f4cd501c-bcc3-4128-5e81-08d4df34f35b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(2017082002075)(300000503095)(300135400095)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:HE1PR0202MB2556; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;3:WZn9BTya3mw0UR+L5UFmcvB0bfr1K44MzRtn5YPnOVCwyk9kGyqnZNhLu1W8eIQ8QSiNM87baMWTLPiaN9bEQJZkR4Ab6Q1jtrpNmAY5gbTHY9XcAPukVd/QCjfwTNILX/7rfxWwXXjpXL5mI+MLNtdsxYPNhl5ElPV7dsrpCQcS+sH6NrgqBidhp/AMGtghGzGoGqzCpQR23icYdSuHKAPvx2/QzG6TlUXU8oXrqhkljl3fjzaMv5ngGFtTfa9A;25:BIvyPTNCBmnAn627+YDz7pg6kFXxB1GI0cz8wR3SR4/EO5MId6kMpXv6n4WppaGs4ZTZb4YcOUKDk6xlorRwrUEWdeCtMKCOW/3U5jyslf31xO5aChBznIA4C38j7mAtJ5ThdVugxQIvSQv0O9eyIW1z+q5knuLMxX0a9cLByBLhCoj9e/HYWuE73Ka5Dq6FlVjiiPPwj3kYMfZPc/k6JSC6s4GuvtW96uAvjXe7PkX/fQa0L6qPa0/QBbN4m96u8RNHvbcHm0ENDTVbC9SQG0+QGKVj/THddx5Q+1XfOUjG5ARwoG+2sM9y2XOum2gD9oZ3X/EukehTflZBofGjyw==;31:7trdI2WjQJ8qxp9JXqefwjvVmSmgnlxIbl/5YJShsPHWCl2Jo37qEm/yWGdoyZY78WSSM5NU+13TS1bjeVXSVD3nk0gcj+IeUsyVsuEuzGdCOu5hwIgflagZnQQCcgEvjntgdLSNDcWsVmKHj6NHVqM/myQAWAoHCIJEYZnUpEFbwGOeCDxrIK+szFr7UJCRgi1Ws6TyDbVDGu9fGRJL78JOFOUkyJYHQ/rBXLPhsYk= X-MS-TrafficTypeDiagnostic: HE1PR0202MB2556: X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(2016111802025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6043046)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0202MB2556;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0202MB2556; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;4:xNHaf7ixJ5jWuKQVnWZbCxGIBFMvJd6GY/8PHDPrdfmUwzrdJKnKTK3u+tm+qLuoKtnK7Yo3jGxZTrRQE7Z8pfibOFbp4yWMaCrvFqv5KHwztxtoMhiWR9O5IebMEgloqpQJrRm/8yPGxraVCPlTLUShprsv/F5xr3VX6R/yT/B+5E1hhNtfZDziNGCSG+wYO5vfzNUHZpkNOkE0Xw7sLYRqfLY1KRrVlioMPdGHgAUtoML5avMRfuwCUQzW68RM X-Forefront-PRVS: 0394259C80 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(7370300001)(4630300001)(6049001)(6009001)(39410400002)(39400400002)(39830400002)(39450400003)(24454002)(199003)(377424004)(189002)(66066001)(101416001)(65956001)(68736007)(25786009)(3260700006)(53936002)(42186005)(33646002)(106356001)(105586002)(65826007)(53546010)(230700001)(6116002)(3846002)(31686004)(54356999)(4326008)(50986999)(76176999)(38730400002)(23676002)(5660300001)(81156014)(81166006)(4001350100001)(6246003)(6666003)(7736002)(305945005)(50466002)(8676002)(97736004)(83506001)(65806001)(64126003)(189998001)(77096006)(110136004)(2950100002)(7350300001)(6486002)(74482002)(31696002)(47776003)(36756003)(86362001)(6916009)(2906002)(117156002)(478600001)(229853002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2556;H:[192.168.4.73];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjAyMDJNQjI1NTY7MjM6UzNXb2RRSGxDcnVYSEVaYjJFSHF3YUZo?= =?utf-8?B?cEVjZGZNeTdOZkRqODdSZ1hKMVM1R3M5NGZCbU1sTjlRcXBUbTAwZDUvYWJO?= =?utf-8?B?dXd4UzJ3SDRKTDJUL1BneXl5QUN0RUVyMm9jY1RMLy9tWmkzelNTYWp1b25L?= =?utf-8?B?M0VwR2xZZzhMTitMNlFGdHJiY3c3WElkdUxBTElsS2tucnJHZnIzQVcwNnhJ?= =?utf-8?B?dVY0UitQT2hEWVZ0WGZ3bjY1Qmh2b1lVSDRLeHBxVDJyR084WFUvTWptWk9v?= =?utf-8?B?MDQ1dFBpN1NXdVZBeTFMODFrSGw1aE1PUlp3K3dTNGI3dnEzcHowbU9jRzlE?= =?utf-8?B?Vi8rTHQ0ME9ERDRpYXcyZithdnkxVGJOejlXaWJtVWNZUjFXb1l6ZFY4SjB3?= =?utf-8?B?bWJIY0xpV3p2OFUvWEZkSFpnKy9GQUJQaEZWdDFVRWltY3JBUTd5MHcvbzc4?= =?utf-8?B?dy9TTGVDMjdMbS9RRHJHZTI5dmk5VWszTnJEQVNqSGtpeElPU29mb1NRKzFv?= =?utf-8?B?alU3cms3NnJjOXVyUnFraFJOUDFzcmF2MkJoQkxKN2RPd2k3c1BEeUs2cUFS?= =?utf-8?B?WlpzS0M2L2I0dldZaUxYU2N5a3oyaVJ0cTVmUHYrSFk0Y1ZZWlJwUEdoZUly?= =?utf-8?B?KzRJZFp0Tm01QTBET0tVUnFEdmloV3oxSWhTdGdzWG05MzY0YlZlZjlleTBE?= =?utf-8?B?bW1UbmJvRGFQbStIU1BSNzV1am1pS1BLRFpYWFVsVTRMZHVVVHFKTndGeE9n?= =?utf-8?B?azJ1Yzgzd1YwajJYYTdhV0RjcUkrWFRzaGZEWFlSVlRYRGV4YWFES0g3ZHhU?= =?utf-8?B?dTRDN3l2VHB3OFlGckhvQnhQMm9ybGNRcUpLVHNPZW9aMDVZb05RdkRYOVZS?= =?utf-8?B?SWt4RVJtdy9UTi9oWGwxOU9hb1diY1RlNkI5WXE1ZUhqLy9WV29EWmd2M0xE?= =?utf-8?B?eUlrTTA2L21nb3hweHZLY0RrOGQrNWFpYXlEUU9XOEVhQnNjRjRRV3hTcjVP?= =?utf-8?B?MFRjSFl5WlVqbTMzUlRsVGRDVkpEUXMybnNxTitRc1Q4SmVQcGZZeU9zYitw?= =?utf-8?B?eWpaQnV0UXduL0VwODlDeUw0VzBXU2gyM2N5M2tqWmxoRFMzQTZqUDFzU2lq?= =?utf-8?B?UXdwaXlWV0k5S2RhclZKc2dISGhzQlc0QXdUdnhSWmkyTUd4U2NNekJFZms3?= =?utf-8?B?S3g3UWlnNU1XRU45Wm1WeUJmdzArL2d6YmcyWC9nTmtYM2I1cUx6K1ljc2NC?= =?utf-8?B?Y0tGK1B2WmZFRktPaTc5cXRvMjhST3M4akNqRkJXNWRDSTBmdUhLcTZmclpO?= =?utf-8?B?R1NuamViM2c2T1l3ZUFaUVNNdUlUM0tEWTkxeS9pUjZkZUVsZUdhRmFrVTlJ?= =?utf-8?B?bzNBZ1JCZzFvTzhKWC9IcWdKVTEvaURRUk52cGFKRVB6dUNxME5Sa2h4b3Bu?= =?utf-8?B?QzJNWW82OHVWRHJzMjRDRnFWaVNaSTdWL1VDOVpZMnZtc0Y3TERlUnVVZytR?= =?utf-8?B?NmdLZVZldmhEY2xpSWtod3QvTy9vTnEwZjM3cWMxRjZUbWV3RDR3aU5teE9z?= =?utf-8?B?NEJEOHl6Q2FXTk1NT21qem11UVoxck44S0hwUFVOcTl1VGpMVWprWTVQTmtL?= =?utf-8?B?VCsyZUNuaWxjNUovK0s4aG9IS0xBOVoxUk5zQlpsYlkzMFFhNHZwWkFWTjg3?= =?utf-8?B?WW9VU2J2VDZRSEk5UWxjTG50K2NwM0xBamRZcUVybklCRUZadk55cFlQejE5?= =?utf-8?B?Q1F3R3A5UXlsM0hSbElvTXN5UzAwN2JhTVlyL21MMGNocmhDYUVhVXhyM0lO?= =?utf-8?B?aHk4SkFwZlZmKyt1RW1yYWNldGxtS2F3WlZoQnZVUVhlL3c2bkVOOE1tSGJJ?= =?utf-8?B?ekwzcjFXZWNVb1VrRnZNb25wRlRIcWRVWWsrQmRscGk1blMvZy80MHJ3MWov?= =?utf-8?B?RmNvZEpIbTdEZGJwTkZpQm1GbVR1QmdWS00vakFEZlBRdUdka0tHL2JxTDVQ?= =?utf-8?B?U2NITlVTTVB0ZENNUGs5d1Q3V2h6dUlFL3lRa0VtUW9Bb0VYRG9rN29PbmRG?= =?utf-8?B?ZkZ2RUEyeXNDL0tKemZCN0FCaHcyRVcvU0IvV0pzWDR4YzNNS2JUcTdRcm1H?= =?utf-8?Q?5Dyh3eJr6PhtoKH9vOCx/hIH0aLLv35dK7MvplWoRRsH0B?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;6:jPa86GwDRsk5c1CRKwd74iEMsHuE9qbU6C6s6TbyugJuP1b/xa6krrgkUFC4b7hv0ZDGz8wzyk8ooFKYmtO+5N0pJEyO/ZWjiUmxi3/mmNkHtV5SoUIhumESnKNuvX+mh3jJ0GaDskNMOTyLacdtef4YQ//mPYCEZmlQZI0WxiyUpXpQcxpP/VWaG1zo1gBkRkR1ebE5eT/XjExuZKx+7dWrW0uw5iTo+13koarqTeZXEf+9GHcjjIFXvRe34xtcVf5MVd4gQqf9iaO0DnHFd96xPPYKtwTPWtMJiMksbC5NEPAIt+H790xhISvaOeQtuMo0T2g9tRolcAYl82tXXA==;5:6/iPtKnxmJSVIBr7u1qoS+Z2wmOKwxlwoZgUbi45IJqwUwbkuKli1WYtOVuKdMBi3xwv6ky0swZZYQJfz6ujrssr900nFKN/Q3V2uaMAsx7rLqr8khsp46501n0VAFB8ncbNPotdYo2mPY4Bn9IJPg==;24:gqYpVfZH95Mjfh27XhTkNI2i9VXihMkiMhmtHF8mMs8Ze2Hm7+1ipFOmX3xt9GV95aNC7OyXIN5UCZfC//9sbOjCcbeUEcF+5QB5ewKD00A=;7:MbXvN32SUDYFpKvXeIY3BjC1/Z6PsyphLZ5pQbwHbWg2vkGjvuPpsA8NWtfGlBoRgUaJzkX/Zg85z0Ia0ZazFidjeZccKFL1DzSWApQYSDxQ0VUkgsYeQSenuQQMU5Gy4tJS04uHfFawGNT04KS61ViHi58FdD6kF1+UuqJiwGbOSzdY2i9g1rFpt8viZeMf4PY8MC06Z0LsT5NwwF+hjZfXCDG7ZNTrjhzgCjUh6zY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2017 14:43:07.4446 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2556 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2543 Lines: 70 On 2017-08-09 16:27, Mauro Carvalho Chehab wrote: > Em Mon, 31 Jul 2017 15:38:52 +0200 > Peter Rosin escreveu: > >> This prevents potentially scary debug messages from the i2c core. >> >> Signed-off-by: Peter Rosin >> --- >> drivers/media/usb/cx231xx/cx231xx-core.c | 3 +++ >> drivers/media/usb/cx231xx/cx231xx-i2c.c | 3 ++- >> 2 files changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/media/usb/cx231xx/cx231xx-core.c b/drivers/media/usb/cx231xx/cx231xx-core.c >> index 46646ecd2dbc..f372ad3917a8 100644 >> --- a/drivers/media/usb/cx231xx/cx231xx-core.c >> +++ b/drivers/media/usb/cx231xx/cx231xx-core.c >> @@ -1311,6 +1311,7 @@ int cx231xx_dev_init(struct cx231xx *dev) >> dev->i2c_bus[0].i2c_period = I2C_SPEED_100K; /* 100 KHz */ >> dev->i2c_bus[0].i2c_nostop = 0; >> dev->i2c_bus[0].i2c_reserve = 0; >> + dev->i2c_bus[0].i2c_rc = -ENODEV; >> >> /* External Master 2 Bus */ >> dev->i2c_bus[1].nr = 1; >> @@ -1318,6 +1319,7 @@ int cx231xx_dev_init(struct cx231xx *dev) >> dev->i2c_bus[1].i2c_period = I2C_SPEED_100K; /* 100 KHz */ >> dev->i2c_bus[1].i2c_nostop = 0; >> dev->i2c_bus[1].i2c_reserve = 0; >> + dev->i2c_bus[1].i2c_rc = -ENODEV; >> >> /* Internal Master 3 Bus */ >> dev->i2c_bus[2].nr = 2; >> @@ -1325,6 +1327,7 @@ int cx231xx_dev_init(struct cx231xx *dev) >> dev->i2c_bus[2].i2c_period = I2C_SPEED_100K; /* 100kHz */ >> dev->i2c_bus[2].i2c_nostop = 0; >> dev->i2c_bus[2].i2c_reserve = 0; >> + dev->i2c_bus[2].i2c_rc = -ENODEV; >> >> /* register I2C buses */ >> errCode = cx231xx_i2c_register(&dev->i2c_bus[0]); >> diff --git a/drivers/media/usb/cx231xx/cx231xx-i2c.c b/drivers/media/usb/cx231xx/cx231xx-i2c.c >> index 3e49517cb5e0..8ce6b815d16d 100644 >> --- a/drivers/media/usb/cx231xx/cx231xx-i2c.c >> +++ b/drivers/media/usb/cx231xx/cx231xx-i2c.c >> @@ -553,7 +553,8 @@ int cx231xx_i2c_register(struct cx231xx_i2c *bus) >> */ >> void cx231xx_i2c_unregister(struct cx231xx_i2c *bus) >> { >> - i2c_del_adapter(&bus->i2c_adap); >> + if (!bus->i2c_rc) >> + i2c_del_adapter(&bus->i2c_adap); > > That doesn't sound right. what happens if i2c_rc is 1 or 2? > > IMHO, the right would would be, instead: > > if (bus->i2c_rc >= 0) > i2c_del_adapter(&bus->i2c_adap); In theory, yes. But in practice i2c_add_adapter never returns >0, and is also documented so. Let me know if you still want an update. In that case I'll also fix the precedent present in the context of patch 1/3, i.e. if (0 != bus->i2c_rc) ... Cheers, peda