Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755787AbdDOS4z (ORCPT ); Sat, 15 Apr 2017 14:56:55 -0400 Received: from mail-dm3nam03on0041.outbound.protection.outlook.com ([104.47.41.41]:38016 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754712AbdDOS4a (ORCPT ); Sat, 15 Apr 2017 14:56:30 -0400 Authentication-Results: fb.com; dkim=none (message not signed) header.d=none;fb.com; dmarc=none action=none header.from=cnexlabs.com; From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: CC: , , =?UTF-8?q?Javier=20Gonz=C3=A1lez?= , =?UTF-8?q?Javier=20Gonz=C3=A1lez?= , =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 08/19] lightnvm: double-clear of dev->lun_map on target init error Date: Sat, 15 Apr 2017 20:55:42 +0200 Message-ID: <20170415185553.16098-9-matias@cnexlabs.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170415185553.16098-1-matias@cnexlabs.com> References: <20170415185553.16098-1-matias@cnexlabs.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [193.106.164.211] X-ClientProxiedBy: AM5PR0701CA0069.eurprd07.prod.outlook.com (10.169.145.159) To CY4PR06MB2774.namprd06.prod.outlook.com (10.175.117.142) X-MS-Office365-Filtering-Correlation-Id: 81579b69-7315-4083-dc35-08d484311d1a X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:CY4PR06MB2774; X-Microsoft-Exchange-Diagnostics: 1;CY4PR06MB2774;3:svQiYVz8AKCmk59mVLG6x0ytaBIZWc0kfQTuWlB1a4kCBP4OWejShBumScunYI7Rhc6gymCJy5OZr5bS1a0WepAMCJ/3o/iu8RqzFTQuKdSYq7lyedqmaoJQk0oSqlD+pgHJatEcJIoUhWNuhWBM+S6iC2/vY20wz5VwqBuYHkpd/oMtMM6xsDsnN5cbyYdJxesROwyUj7MMdvGC1+btc5OMMjxkVKRHAYfJ9oFux4xUYuM/nsolHQLXITeS4IgHQjLrodafutyngm8uiIUgwhH2syoMqVrJyoEi9+lZnR+UBq+2AH8XTE3aaBo54w1w2a2IASLInVdc/BmzAcNWpw==;25:/LAbz5Uz/Jlwb0eT0iQuoSYOOM95h8Ms1+ZLj1kRhRs6ViOXmgTLsZGYu5KZ6uLDPwyHRFvbGqCzpbPmwCrUUNQLxYCx8C9UVrAh0EZLbtgefmkuhwRsjzBbM4QrwTWh9rF77zhmpuLb8r9vTDgEVkMrapW5zKCeX1mpnXdwXIQEagDncYyx2bWnwN/QRZIllaH+z0yj9/pmDWhoTEbA0s8cPEAt8z/uQU4wBWAHB7YlWoH7wUIUGKsPpgTKjO7YIH0ambCpd7vnPi7S/NjKoiqhMudbbW/XAXX+OswuTBG9O0QK+qaFrV7Uxcl9ERcmYEGz2FZI1EvekyleasedaCU2AhYjkCVJANDxnTFvg+aN6+M8npc8EXnSE7wBuzD3DJEwDD/08qHCpp1ADgQqi0chL+99RrZkTtEHwXyX59ysllpFWOhIY5ph6zM6Mj2rdZORjg50S+kZZU+2UzDr/g== X-Microsoft-Exchange-Diagnostics: 1;CY4PR06MB2774;31:5FbiqbbAac3gBepjQZ/6Zb4cnZ41TxbWCC3t4mbY/231Atr9IQy4p5N3guSLAFX5TjSpULF6xpHrFZnUbt8a/dwfzZqbW+LaXI8AoU1rl5BuhV0DOfhTxbsbneWFjRDMtwfXdrx+TROYsavpu9GUUEqiNVi83CZJlPbI+bDwTbCqoOEmFM7+JxGa1lHpMfaGhrhFys5AFbfXmbZEVqb/YTLZVHOGhnW3slpb6tftX31gcGhmi/bSIZfdvUSYjFr4;20:UDTu5uNddXi8BmlA9LHLC219/NJq7FWGmQX85+OU7JNQlvBFyl11fx/ya65AM6Sq9ghU4EBiEVnImK4eFO0+HnEQJ3Fw8sND+QIaLDfDyvBlv8InGtHgTZrGqZrmswhvgF+FyBWDJ094z3TJwhemLZQKYAeVqTSkD/NJT+fi+Ts= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201703061421075)(20161123555025)(6072148);SRVR:CY4PR06MB2774;BCL:0;PCL:0;RULEID:;SRVR:CY4PR06MB2774; X-Microsoft-Exchange-Diagnostics: 1;CY4PR06MB2774;4:93tCi7dQoByuxLMcnXJ52EoB51d8pNXEtj8tVhfDJrQdIyA987WHu1AiUVnhGdgUCSgMjMI5fliiD/4DZLIdIQtIHPVp5bg6eDujaF0k8ekyO+8/egjkNKbiM6os2PSklxAk8k4wxL1ThFQCPucmL/uINcZozi8oS2FczW2Ls/xkXjLbt2HE8kz0WF7U/Lk6vMypA6C6Cl7HkaaBx+WbJ+ZWhcmzgqNai+QYMd1htwMkI3O1QuO5ASTe8jPWF1QVobcQc7SdCl+GSPoShS9LctQiP0B7LfRwt/aNduMSxfq9PnPAVr90MhtGYNRDmnDl2uWm6YibzpCE6CTAKzxE8gzcnqtfzjqjojS8TdGXy7TZQspLQDcC8FzPqkZy1psjIPBSm05KD/lADTsOdTjiKewmhBAgf+RpWDjKAr8lg5OssUiYWtEei+CRFPG5D5m+tFwgJY9sUCaW2xBOC8o35ceoxUKPH+SJBpoRr1zFkrCot5R9WaNCKqgIQ44fGmUHkUHMhQW2zWktkbGFylbLBXsS+U+oqqRco+Fsg+ocm1wKCJ1VknhRWDFqb8sYB4CST0Vvw6TveTEWNuCD1j7yv9N6OyJtNCooBfQMFJUztGPEYTqbLhuQ61eV97Il9/k9Oh3fEQ57Fkzs7HTeFY4h3ypBAuC9v6dFRp2WGObMMRn7DcIBLP0bUSiXJ1VPcaI5 X-Forefront-PRVS: 02788FF38E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39400400002)(39450400003)(51234002)(86362001)(305945005)(1076002)(6916009)(6666003)(25786009)(2950100002)(6486002)(2906002)(3846002)(6116002)(2870700001)(54906002)(189998001)(53936002)(53416004)(107886003)(110136004)(5660300001)(38730400002)(50986999)(76176999)(2351001)(4326008)(66066001)(5820100001)(23676002)(81166006)(47776003)(42186005)(36756003)(33646002)(50226002)(8676002)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR06MB2774;H:skyninja.cnexlabs.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjA2TUIyNzc0OzIzOnJnNFBoY2lmSlFQRWVlZ05SOVRyYWtBT3pQ?= =?utf-8?B?blVEKzRFRG94RFE4Vm9YVWhzcVR4YkI1aFQzNUpqNks0akZEbmRlNDNTUTBx?= =?utf-8?B?NmtpYjRPODFkTk1ad1UyT0JKQ3cwQXNsWWF5bFMvMXd5NnM5d1hXNGVrNFg3?= =?utf-8?B?ZjI2SXo4cHlCak43eWZVT2hzRnE5TmZ2bjJFUTBjdWoxaDlSWUJYNkIyYldn?= =?utf-8?B?UHZVeEc2NG80MFJXdXlIVmFQdEFidGdsVytUbWx3bkpYb3ltdmZSVUNBWnlk?= =?utf-8?B?NTBkR1B0STFiNkVTK05LeFRYMXJWNEFRRExqTWo3RFZTaW43cWhkcW9kYzdN?= =?utf-8?B?UGhjRDZCMUlEaTd4QUxrYnZlRWZnVWdJTkVqMW81ZHhLd0d6c2RtV0UxNVZm?= =?utf-8?B?ZjBIMENXcG1iWjJ2ZEpZalpFbElPSmVjU0d1VndtTWg1WjFJVTR1a080ZU1B?= =?utf-8?B?QVJ1MWlHL1RiOWQydVJDbEk1NGp5eEFOaUxHUFdaS0FvQTNwWi9LNEMraGdx?= =?utf-8?B?NGloNm9UQnpRcGszdlNrS0FocVRoNHF4c3prL0M2ckd5dm0wOTU0Y2FORlRz?= =?utf-8?B?eGY4MmROUGFaUHJiZ2hlUytSRjhQTjBvZVRkZGZmZHlKWUthekRaUEZTWUtz?= =?utf-8?B?QjdhcVRPMnBScS84ZTk0S0ZTTnVyVUo2aEc2TWdtK2JnOHEyRnlQRGdnQ1Vr?= =?utf-8?B?ZS9ndXJ5WDFEWExuTm4yS0g5aFRIVmQyd1p1Y1RTUHI0M01WMzVJcCtJcVpp?= =?utf-8?B?eWhWeFlqOGtFdUdhWmpTRmhudjlzZVhHeE5oZ29Yb0FnYXFwZ2lOMTZHS3hO?= =?utf-8?B?RmpVVHZ5bEhqZDdHQTVKNzd1dFVoWG95L0dCTGtTeGUvN3lMZVNkT1JYSHNu?= =?utf-8?B?STI1THVSUmh0eUxkVUMxbHRzZ2Y4ai9naEpWY2lwSytOZk5zSUZIWE5wZm03?= =?utf-8?B?TExzT3htQXJ1WTV6N3UrMUNnUjZjZDgvV3MwMllOL05YWFdleFQrVkYrcGQv?= =?utf-8?B?YmVocnN2UHNrbU1kdmkrZG8xWXJvWGl5SXNHdE1LcVpHVHgweUVTZUlhUGpQ?= =?utf-8?B?eTFxWnloU0lRM3JrYlQ0ak1GblA3UDJSaHgrNFhZODlkTzBaNlVKdHdCMDFo?= =?utf-8?B?VWVYTXNFbTBNMGFvNXdRYzlMQXJXMHg1TW9zdG9IMTdFQTZ4dlZiT2dKUm5z?= =?utf-8?B?V1lGUWZIaVdNeFJaOGFXcVZ2eW1CbjA1YWRJKzZOZmllcE1ZZG1BMytuRVpP?= =?utf-8?B?aU9XeFdBbm4yY0h4U2tGb3FSdzFKWFdSbkFtSHNtamZzOHdvUW9hZ1RvVVlw?= =?utf-8?B?ZnArem9ONGRiQUoxSTB5cDBNbE1xOVFBTjI4cFZaMklBWGpMSDV5My9ZUndI?= =?utf-8?Q?sFnQ/yzR?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR06MB2774;6:xl9WV4/bMtm+24ku5nXDEH6W+4tZmjuu781yD1Ix/OECW2+fSKUBCnG7jKzch8erTt1e8ZRWc9YwZO0uz4/N3lGLx8BAq2H6WmLK3QRl4JBDX2ojbFzlRb8aFrIiVa9f+EvrRdEynCEsMSrJP93s5p0NQGy3bBbg/iKQL1AUgfX8gFrGat+J0pCJafqj6Q/QRpGkkU2jt4ppvotbldoqnfq2DipDmCdG01ORMZqdNSKEP3bGikhWSROEPf2zsXsz4FVL4L54OmCc+rRCvGszPgDzvEcsfwHmcA+IX07FV/g+5weI8KuDfrFWl2lxd9h2sy51VZAgb4nA16w6og2CR/Xpbok7LfwynaFHjYTdixTO/acaRtwMprdafiYsxtUAYxdHYerYyvcwQcSxgPkOWBCFaePbzRTSEDfSRA/c1cpo8RTbqdgcWdKjRZFL7YHlHPVPsbwiVc/8y4iZvMg0qw==;5:ps3CxZ9z6ueRW/sWSRgsL9+sIgOQCuqhKx/GJLMud9JLGp6hXf4+TawYKBF2c+3mbiSpjAuZbMBzZmxG5+jAS8Wv+nySY5nBRcaqtpYKOdJqEGBvKZC2LJkgYLD5H4/3kf8/HKI5XI/XXcfnIeQMTA==;24:i4/wQqHXfU4IoPp4vP4XfTPGA7C4W8aV4uCGSsWDMCCFFN76O6BC1cTuq47zZIxmIYUZJQGyECWUbQUldZrZuFRKwP7iBnKrcQzPJFiBaJo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR06MB2774;7:YpXpKqUg39P+tlCpvy5LgXbQ2YtVgfd09a0fgmG2bfh5x4hEw17REU/W59DcGyHNc2P9n7gBHexYHFxQ8vztFBmxQ7qZg/l4PGdHHV0SJeJJaq9dghHt2ZH9/bADqk2b3kIq0LWGHt7/9ZB+YZZx59Okrd9+Xvq3DpDVxPj03Odli+lBcCh2QEHhIUxDX0745msZp4NydnAM7rZM+v0Ovou4CPoqX1YZKlL87LJ22RVmhMcPl2AHs1i/aqXYTyGovjUF4iRXoFhrhEWIiS2X69gytpXq1oaNp7yozPHhdw7w0SW8OsmmFQQcovx4xFqVMjbvJF/mVgm8w3j98Za85g== X-OriginatorOrg: cnexlabs.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2017 18:56:23.0906 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR06MB2774 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2257 Lines: 69 From: Javier González The dev->lun_map bits are cleared twice if an target init error occurs. First in the target clean routine, and then next in the nvm_tgt_create error function. Make sure that it is only cleared once by extending nvm_remove_tgt_devi() with a clear bit, such that clearing of bits can ignored when cleaning up a successful initialized target. Signed-off-by: Javier González Fix style. Signed-off-by: Matias Bjørling Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index a14c52c..5eea3d5 100644 --- a/drivers/lightnvm/core.c +++ b/drivers/lightnvm/core.c @@ -89,7 +89,7 @@ static void nvm_release_luns_err(struct nvm_dev *dev, int lun_begin, WARN_ON(!test_and_clear_bit(i, dev->lun_map)); } -static void nvm_remove_tgt_dev(struct nvm_tgt_dev *tgt_dev) +static void nvm_remove_tgt_dev(struct nvm_tgt_dev *tgt_dev, int clear) { struct nvm_dev *dev = tgt_dev->parent; struct nvm_dev_map *dev_map = tgt_dev->map; @@ -100,11 +100,14 @@ static void nvm_remove_tgt_dev(struct nvm_tgt_dev *tgt_dev) int *lun_offs = ch_map->lun_offs; int ch = i + ch_map->ch_off; - for (j = 0; j < ch_map->nr_luns; j++) { - int lun = j + lun_offs[j]; - int lunid = (ch * dev->geo.luns_per_chnl) + lun; + if (clear) { + for (j = 0; j < ch_map->nr_luns; j++) { + int lun = j + lun_offs[j]; + int lunid = (ch * dev->geo.luns_per_chnl) + lun; - WARN_ON(!test_and_clear_bit(lunid, dev->lun_map)); + WARN_ON(!test_and_clear_bit(lunid, + dev->lun_map)); + } } kfree(ch_map->lun_offs); @@ -309,7 +312,7 @@ static int nvm_create_tgt(struct nvm_dev *dev, struct nvm_ioctl_create *create) err_queue: blk_cleanup_queue(tqueue); err_dev: - nvm_remove_tgt_dev(tgt_dev); + nvm_remove_tgt_dev(tgt_dev, 0); err_t: kfree(t); err_reserve: @@ -332,7 +335,7 @@ static void __nvm_remove_target(struct nvm_target *t) if (tt->exit) tt->exit(tdisk->private_data); - nvm_remove_tgt_dev(t->dev); + nvm_remove_tgt_dev(t->dev, 1); put_disk(tdisk); list_del(&t->list); -- 2.9.3