From patchwork Tue Oct 4 17:40:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9362179 X-Patchwork-Delegate: christophe.varoqui@free.fr Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9771F600C8 for ; Tue, 4 Oct 2016 17:44:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B92728B70 for ; Tue, 4 Oct 2016 17:44:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7FDEF28B8B; Tue, 4 Oct 2016 17:44:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, RDNS_NONE, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from mx6-phx2.redhat.com (unknown [209.132.183.39]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F1FD828B70 for ; Tue, 4 Oct 2016 17:44:15 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u94HfW1l038175; Tue, 4 Oct 2016 13:41:32 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id u94Hexe9032398 for ; Tue, 4 Oct 2016 13:40:59 -0400 Received: from mx1.redhat.com (ext-mx09.extmail.prod.ext.phx2.redhat.com [10.5.110.38]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u94Hex8G011062 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Tue, 4 Oct 2016 13:40:59 -0400 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0049.outbound.protection.outlook.com [104.47.42.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 80F846314C for ; Tue, 4 Oct 2016 17:40:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandiskcorp.onmicrosoft.com; s=selector1-sandisk-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OiQjUbxNMSNkfH3p3zpsLd3mHivpKO51yADemuRLld8=; b=czfhZUZ3JyXBb9ByyuM3rbhGziPTb+4GCcnYa8PpQ6n7oQD2iNOyhStIQUtCsqD3wl8TCF92XJqUeOxJiu0oZCCz/XsFoLZ2AOmn4FJpptOsEpnMlU9fHf0vwj1qYK3OUDRDk5g3EhPHH+L6SKWsS/2RmTPw1KutKkg+S28WrEA= Received: from BN6PR02CA0056.namprd02.prod.outlook.com (10.175.94.146) by CY1PR0201MB1913.namprd02.prod.outlook.com (10.163.56.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.649.16; Tue, 4 Oct 2016 17:40:56 +0000 Received: from BN1BFFO11FD045.protection.gbl (2a01:111:f400:7c10::1:120) by BN6PR02CA0056.outlook.office365.com (2603:10b6:404:f9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.649.16 via Frontend Transport; Tue, 4 Oct 2016 17:40:56 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.21 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.21; helo=milsmgep15.sandisk.com; Received: from milsmgep15.sandisk.com (63.163.107.21) by BN1BFFO11FD045.mail.protection.outlook.com (10.58.145.0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.5 via Frontend Transport; Tue, 4 Oct 2016 17:40:55 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 66.4C.26959.647E3F75; Tue, 4 Oct 2016 10:30:46 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 4 Oct 2016 10:40:54 -0700 X-AuditID: 0ac94369-b97ff7000001694f-b6-57f3e745fa7e Received: from exp-402881.sandisk.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id DC.6B.03606.6A9E3F75; Tue, 4 Oct 2016 10:40:54 -0700 (PDT) To: Christophe Varoqui References: <157defac-6527-ab23-92f2-9c1926042885@sandisk.com> From: Bart Van Assche Message-ID: Date: Tue, 4 Oct 2016 10:40:54 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <157defac-6527-ab23-92f2-9c1926042885@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsXCddJ5ka7b88/hBo0H+C3WfZzLZrH33WxW ByaPNbdPs3q833eVLYApissmJTUnsyy1SN8ugSujb8INtoL38hV7Wv+wNTCuluxi5OSQEDCR mP31AWMXIxeHkMBSJokDU76zQDjbGSXu3pgG5HCAVT06kQFVxCgxYf5RFpBuYYF4iWXTTzKD 2CIC5hLzzy0DiwsJ2Ek0bTjKBmIzCxhLfN3xmxHEZhMwkvj2fiZYDS9Qzd/tq1lBbBYBFYnd 3z6C2aICERK3HnZA1QhKnJz5BOwGTgF7iZ5TaSAms4CmxPpd+hDT5SW2v53DDHKahEAfq8TN ye8ZIU5Qlzi5ZD7TBEbhWUgmzUJon4WkfQEj8ypGsdzMnOLc9NQCQ1O94sS8lMzibL3k/NxN jJDwztzBePeJ9yFGAQ5GJR5eg42fw4VYE8uKK3MPMUpwMCuJ8IY/AQrxpiRWVqUW5ccXleak Fh9ilOZgURLndbv3JUxIID2xJDU7NbUgtQgmy8TBKdXAeDFD/+KSyINxtaX73MttYg//+/6Y V0H+qlC4VsEykWlW28yKbJbkBivO0ytuy4/9JXlygu7pilc/8lLSv10NnfhwE6eT/hnLiKW3 Erl9q1+Z6m9Z947TQdY24EN13BPDD0vKayqVw2Y/+XEiM0ey4NtvkR5HiaTQ7WdlLwalS846 EKS0uZRViaU4I9FQi7moOBEAEuIv4GsCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPJMWRmVeSWpSXmKPExsXCtZEjRXfZy8/hBt8eaVms+ziXzWLvu9ms Dkwea26fZvV4v+8qWwBTFJdNSmpOZllqkb5dAldG34QbbAXv5Sv2tP5ha2BcLdnFyMEhIWAi 8ehERhcjF4eQwGJGiaVfjzN2MXJyCAvESyybfpIZxBYRMJeYf24ZC4gtJGAn0bThKBuIzSxg LLF4/Xwwm03ASOLb+5lgNbxANX+3r2YFsVkEVCR2f/sIZosKREjcetgBVSMocXLmExaQGzgF 7CV6TqVBjFSX+DPvEjOELS+x/e0c5gmMfLOQdMxCUjYLSdkCRuZVjGK5mTnFuemZBYZGesWJ eSmZxdl6yfm5mxjBQcYZtYPx+kTzQ4xMHJxSDYziG531X68/+GBT4JVlMfNS76/eae/Hv8Wp MvNAyvLstdPmzmt14bZ7PUF+zdsK7VhHpsrK2b43GiPr7N8bz5uytuaD3Kl9vud9dy7p1Hgd vsoy0fD80qp/y97vsF2+bsJBhpwDz869v88TpfrHTMqS1+OG8e4sxwX/vXn2h/oqhhyZGjNx 7mVuJZbijERDLeai4kQAZX9OJOIBAAA= X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(87936001)(69596002)(2950100002)(230700001)(6916009)(92566002)(68736007)(8936002)(97736004)(81156014)(81166006)(8676002)(11100500001)(64126003)(305945005)(356003)(83506001)(23676002)(4001350100001)(36756003)(7846002)(65806001)(189998001)(65956001)(229853001)(110136003)(4326007)(31696002)(106466001)(86362001)(77096005)(586003)(76176999)(54356999)(2906002)(19580395003)(19580405001)(65826007)(5660300001)(15650500001)(53416004)(31686004)(47776003)(50986999)(626004)(2270400002)(33646002)(50466002)(6606295002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0201MB1913; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD045; 1:+D24MLzISd8LtHufa9d9YiYO5JahKFFAfgF6i0mCpR5n9aoszn3bLQB5rPv7n8cBYyJFd2TuLy/uL+hXlUdXaM1vEDZm9QFsBXzmSjEcGBNsZzHfNczdAEn0qI0APQBj7cx//ydwtF14G8iHdQu6ZSC9oQHIiTOAGpr86JD+StY+YCXyoq50xkk8bZ76nSRQzWjdSutltK1LVWsepH00whQ6vnuLDEQf4dzbh6L0j2UXxKH0hnH6JJY+z6TS6vrrJELPMibxeUS0VDdN2Bk7PFJrAC6h+4w938ByfJcAHHHY1MsmpAJbvWTZN6ss1cHqp35hMvqqAv7i7hr2q/U1vVBqQmCNHd3aenh3pH7TCvkFYtWTDSCcEL+LXGnKMuFf3JN5STfQ69DMoFT2lR6H4CBnPdDCQUv43wn+8HjPxLEeq4RPeBmVTiuBqTgPFcT88vJAyOWBHQaTpRUylsr+s3OY0+w742694KAtQh3Z3Cx2MnJh+VKzGvrHSc1zF01lQytzJSBPsSqhgbBWR+Eh+A== X-MS-Office365-Filtering-Correlation-Id: ea00df84-33a8-45f0-9390-08d3ec7d987b X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 2:FoqWoNrYLbeDSv+LhKDCI3ruCZGiEwkvZkrq7XOLeFoUR2gHi9l1oCnb7Ssz101GGAjud128Wp7fWfF2Y1NmXUkLdCQlZKbX48ClO2UlPfyzZHeXLS0tREW5kq5leejxzDjkihq4jpMqcFoQTDMFO4c1vIDL+0HkhHAC1R4zuFVqpprVVgxW1lID+hq9uCCAnrGYak2t0gBmkqu99HRJaQ==; 3:mbIg4UIL+Jcd8k5X6FFUHOd8e7puER5v0mdxSXwwn2CnIH5u2O2A0airJqv9F2XxJ5wcSCkaRJgyEZk94JDKsgNgLBhIgn5D2N48iNTdxRpu3aWhTUnC9O6jSTiY3vd90pKhYhODtjlz3eefK8Kayi/15HBD5OCfD4uLCTRiuwxfESQ1i3FFN4OjC17tPOJgz5YvitxCyWnVv6JrO0+bLLar8XIm2fvPTYRluXhuLvbt1MhN1M9QpQowM6vguNSYI61Ron7ivqbiQmlpokz3U7zKtDEP33NJiHVS97K9NAk=; 25:90fwpzyrch8rt9/1PqxsHJQMzNSQlTbfZ6fpXedV95DjujI/FmCGfSvuyxPJ9Bdv1YfzsT6HQSusTrsl8V0frZ1sNxJiiK0tXwcEXlpZThfAiMhB29xLMJMhDRnZorGmWn+ZOk6KWODnNb9kQ5XID0EWcT8SP7JyTvz9SYlp1qR9kMviJSz57wnQ/iK/9i7U12yBVGp5LRxVNlJpaB5SfRZfijxQM5KS0HdfW5osvLUT8d8WYqJTydX7gTw54BxedGtUPDgJpRGHNuTooqBTTYRc39mgDDWYsN0HtFfoOURFEY58HU5wSKSXeRKI1+9t9WMK/UsE7ANWwWJZygCDbiHNDFlpEf+LLDbh4XKMfSX+0NF9rI7nNm83V235vZqVSfrMIw8112UuQZU2eSZbMnX18NaqNxeinalg8fMKHfOqOuT/0MljSXgJ3GO2A! X4U X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:CY1PR0201MB1913; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 31:KkIge0+2PTGrntisgpnZWdq/6X3hV1ggW8PtpNXE9zKdCpN3jUjXZaBOke+saKd1UmkLdCcfLRLStS+poVi4PzZIQ4d/eAXc6dOaiS2knHcWyD2iuZgnQo0JWj6EKAgpRAPVQBJhfNsjI6JWpxB6Ri+u3FAT6lhfJb6jfoO3v8eYoYe30sjOtUnGhN3bP9MFQ16mAJeMbOy296J6qOOjFmqbxy/047OULc4U5Bdir0+HPnVXy9ejdZsOTsNwGrS9; 20:Tmrd8iKH5q1BHAV3pHicG7zvjSko4BUMe5XUaSFbASTeQxIYbQKbhtLdLWyKdmZ06eLsKsMxjZEl/hPozjzfFZx1DLX/a9tQt8PBJDTSxQpy9gWfXQ6vNkK7/tv0D1nKEAPT6yDDMR6eFla0S83KUAwsfuESyhSE+HeRzOKJD5sWEHCev/ktu3ppXzxDmf2yulVERtidvA58kLJmOJ6tmbGDBhmEGYvC8dVS8K6W2zjdl6G5S/76hBAIo1xXx0GMmrYDJq02UObgM+mIhRQkjHIGUozemyX89Od9hTlzALJ3MMLs0tCGP1rgbiffaOSWg2K5XN0Eo6R2q8Rdv6u0geB3+YLyldlBsD1YbK4ij1a+SlS/He2ZPyvZ7h2KjcKEtISVyx/IdUSHa8CHSA2ovc4YSwFIvfj3XbJuD7KkJ7TRq1N16rjhhYcmJK2K4gSKZewUFc1saZhphUNP9dYlpjLD79S/CyAs33BfFzmZTrtXHAzd83MgOwjbl3R6nqWn X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(10201501046)(3002001)(6055026); SRVR:CY1PR0201MB1913; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0201MB1913; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 4:EVybZd1WrShBB5ZWlVLelWkxMBRUK9qp+aHABmJzmWSYHABzCQqCNJITPgYExrMxLFrpjJaW3BlQdpxXYqCpsAfVRtRXbbYwE+wVrSv8LmP5j/8zRkTpPOtIsKvAiftF1hv8PFTkOgfCcSjJlHcyiWFiIvdg3zLgtE8Hfw4JZTIjYQ37XkRd6EqxXfNgLrlp0stwwX97P8euctev0thaEmSSMRin/2sd1w+QwEmhfYoCVuQ8/Klik2ZO4b30ZLwYLh2G/yFoOJRQ5ZtD6KVv3pkGrVjhD5ia/iZxMmT9wUhgYy+APe7EHBoC2S4bAvJX1inzoTVQEXkjcKBL/YvLXqc6oupxs4IFSr+4OsnZXEiaM7N/veRG/dXIMjmnML/Pqqnt7CRMTrgC7qchd3Ysc4mb+hN0ajQT6l8Oa+oKffTZENUP+iQcsrGR0F+f/L6WJWdCyNurQ5x8wkp3QIKQoWhpu/lL5i7kt3zOa7xOgCw2Ghw1IEqkjOJgEaoIHumb X-Forefront-PRVS: 00851CA28B X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyMDFNQjE5MTM7MjM6QVF3b2JibGlScTRIMzltUUM2Z2ZyRjcz?= =?utf-8?B?QVk5eW8vbU1tQkhRMFZOakhmOTdCVUtpYWZrV3o2bFJjeXl0NENqY252bTZw?= =?utf-8?B?Y3FQcDk4VDdlQ2FCcnVEWmc3a093MFlhZktBL2cwYVNpeFEwRmxGcXlQZ0Iw?= =?utf-8?B?UVg4d2QxYzlhbE1va0pObkozSytzSkFWY0lqYnEveEtkb3hRaFlMWVhVelNG?= =?utf-8?B?Tk82ck02SXZiNUE5d3pldVpUZHpYMFhzNitaanllSDI2MkpPaUlKSU1RRDJp?= =?utf-8?B?aHJzcEtTdmg2RTJ4WklHRmlza3hQd3V1QmFDczlLRWFxL2tGUkxjRTNiME5N?= =?utf-8?B?LzhZR2R4N2ZFbDJMN2s3bWRFTG5EaWFmamJpTmhpZ2pzYWZxVnhRRkoyTFBX?= =?utf-8?B?WVFyM2p6dFVzbjdrendKdjZxWjF0cC9GSzJsYWdhcVd1V05WZDE1WFF1cC9U?= =?utf-8?B?b2NESzR2VEE0Q3VpV0JrVnZJVk4wdmdzWGRKRjVBMDFsMnhHN2E5N29lL2Vm?= =?utf-8?B?bTlNOTlraWFmRVJ3Z0lSOVpKSVRpbWRxaUFxMitsaFBTZ3MzTWg4a0VqTjA1?= =?utf-8?B?dWIreEVCcklSK0Z2MUJ5bkZ6MTd6SVpCT3RveU5UVWR6WDdKM3ZudjdHWFh4?= =?utf-8?B?UFNkcWo4bGRBdkV4Q3c4eWl1ZE8yOGMwa0swSHVCdkZoVXpkTDgzVFgrYTZ4?= =?utf-8?B?SzhRY1U2Mnl2NlN6eUJCMWRpRGNxbFdwdmpBekpLbTd5ZE1iRFZsaCs1S202?= =?utf-8?B?SE43bjNiVi9yU0sxQzNoQ1Z0TnpDQThpN3hPVEZaZjgxN1RhejNaajRzSmpL?= =?utf-8?B?WmtGM0JuWmJicTVDbkViYnBhaFNNK1A1SXUrY0RFakUzN1FIZHVISzQyWnZM?= =?utf-8?B?QWJza1hoVHhRRHgyYkU3bWF0ZjZTRWVMelJLa3JKVXNWYXFCcGo2cHdlbUJP?= =?utf-8?B?eDNoRjJxU01mNFN4WmVKWmx2T0ZYZlFxdVVXQzZibEFLUXhkRzZMT3o4RzFY?= =?utf-8?B?RDQ4cERWRFNiZUdLMTVBYjJscU9tUXlSQkZOVXA3VUlyNmFLQlJtTnJJc1FZ?= =?utf-8?B?alNoRDZZVEZmQy9tMXg0a0NPNFhDWGJBRDBtKy85azVyM2xIemZxNi9xZUZN?= =?utf-8?B?Z1NIeXdCYnMyNGlVend4dmszY0czMHN6UENkRGZJeDkxWkRpMnN6WE9YckNM?= =?utf-8?B?a0xieGp2di82YVFEcTJSV3B2N1ZWSnpCTEtBcDJhSVIzTUE5bk1uSEVrSUxE?= =?utf-8?B?L1J4WTN0VlM3QlI0OS8xTjh2TTlDRmZDRjNxVXRhWlNkSGNNN210b3VwNXln?= =?utf-8?B?dE9zeEsrZ2dsU2hPL0RSRU5UbXdQN01mTGlmS2hJd3RHbVhQRnRGbTI4OGpT?= =?utf-8?B?bWczakpYRmpIZ004clpGbzNNdmtydkdYbFFtMDN4MWhEWFVBZXR0dldwOThB?= =?utf-8?B?cHM3ZUxpeVhZM0gvZzdSdENOcURhU2FlYzViZElJVk9HanV0YmVZWmlHZGM0?= =?utf-8?B?dVJndDd4bzlETGtVQjdIQ2Y2SklvYU9FRGVjNWxzWnJkZ0FGMjVLeW5qNm1z?= =?utf-8?B?bk1sYURtQnNpcGVIU1kvMytGWUNxM0hhMHZBTHdYSTF3RWhPSXRjc0JwZHNZ?= =?utf-8?B?enVCVHVDVUVCOUIzakNzZkxNL2xIdlhDQXJyZ0MzNGxhSXppNEVJbW5ld29a?= =?utf-8?B?M01XYm00RitTV3dTWExWMU4zd1BMajIwVDJld09Edm5kVmgxWUthTk45N0VM?= =?utf-8?Q?75BTrgZBPuNlyQpcmfFjDohUIjou5C5BN6L3DpI=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 6:1gvl6NSLe5MQA4VIHiktrk2R8hBLeExZYYXKCY/12H7gzwX/e+jgIjlZ6Vy4NL8sjRjL+dMO+BszOu/8Db9/HfmmYBgPE0D5e/eDLjB3sR/th/rJkWx3gipuVvQgzObLOKCrKzhvWMZRzwnzuWdrjoM5dEVfUp6vHNEyDFE1rOSSxcuh8CTMU7OiBoD9zFt4j3fJj45velxqkP0JDzgZ77LkRRCObXtfi4DoZP/VpQ9oVy9qsEg4jTZK1dgRn68ii4nrwtbL9PQTFFXrmyiHhZsakXHgWzlHXjfDSCn2jf0keTnM9qztE91cBrtegKqwBmwZ7wI+0SdULMCkkxJXXgRQceC9DmmAXQ+FsVTqAYc=; 5:VQYHFFer8DwBf/6dQsLDL2aTfGHSQ6C+l36bsIVXKveLYwLW7dZxL+ZKG9OkTxhFoMooQP2VcswWz9b4cP4iT7XJx302TA4R0YtbcOliOZDQ1tSgvbnzv+mb1HDCcgyLztmXlU1a9k8F8XamflYHhSt7xV9T57IfRT8/9gkTZqk=; 24:UfZN0dXI1zlAcJ31PoEomeqcs3KamaLnLe3qd5sLbO2Np7LEdktoajrKEkU5xsUdI5AwRpF2RNDPmDrWw93r+oN7YrtUte8IZ1Ewf3vpxgk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0201MB1913; 7:BBYl5VhoSFQVUYA4AZFu2gjjiuIMQkvAmPWpu35F9kOeG9TCu3NCzOynaCYI1P39pBagVbayncW6+mP+EvJlYXaHJqafcOUJOBMaZUkZPn3HE1upj9wlpE/6FM0UEy/F2lMTatDaaTNumekB1o+/OQsBakyp14c3cTLEDysPJ6zNo2URPxSuWfnGEj9kxO1Er91smfClVBL/0Lxg3Mbj7WPDw2QL3aYU7MSQl6zGfezVzPr/CF8JG9m7IgFE4eZEIw5vbh+Sh1fOH949NVhz7cTuo2nv0Dn2VnmbbBhP+6otciYbrZ5lf5YovMz11ICC6Nz0j19bBC5fhheVYmOdQg==; 20:cxv/RLXurZXGeerl7Yva+pwOuD9xJqBFFWESXualHQtbkSPuBzT8fUhyTlKFGl24wHtF6G1pkR5wMhmFLJ53237XXM1+u+inCwNtc2bI8/FalrYCAUsGwaNOLWkYt0zL91F8szB7wSFHr0imC5QPL0r8nYsVKRI7b+q+YHPrzTcC7R0Xv3i2xrqlQCDpj0nTBfuRx4spExqGeHN4JQuESHlXTxjA7wtinRc7G0t+RUt/943Be4X7Fd/Py3VpJ5Sr X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2016 17:40:55.9710 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d; Ip=[63.163.107.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0201MB1913 X-Greylist: Sender IP whitelisted by DNSRBL, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 04 Oct 2016 17:40:58 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 04 Oct 2016 17:40:58 +0000 (UTC) for IP:'104.47.42.49' DOMAIN:'mail-by2nam03on0049.outbound.protection.outlook.com' HELO:'NAM03-BY2-obe.outbound.protection.outlook.com' FROM:'Bart.VanAssche@sandisk.com' RCPT:'' X-RedHat-Spam-Score: 0.687 (BAYES_50, DCC_REPUT_13_19, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS) 104.47.42.49 mail-by2nam03on0049.outbound.protection.outlook.com 104.47.42.49 mail-by2nam03on0049.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Scanned-By: MIMEDefang 2.78 on 10.5.110.38 X-loop: dm-devel@redhat.com Cc: device-mapper development Subject: [dm-devel] [PATCH 11/15] libmultipath/checkers/tur: Protect tur_checker_context.message changes X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Virus-Scanned: ClamAV using ClamSMTP Avoid that tur_checker_context.message is modified without holding the tur_checker_context.lock mutex. This patch avoids that data race detection tools like DRD complain about writing into tur_checker_context.message. Signed-off-by: Bart Van Assche --- libmultipath/checkers/tur.c | 46 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c index 11f3c60..be3d5ea 100644 --- a/libmultipath/checkers/tur.c +++ b/libmultipath/checkers/tur.c @@ -104,10 +104,17 @@ void libcheck_repair (struct checker * c) return; } -#define TUR_MSG(msg, fmt, args...) snprintf(msg, CHECKER_MSG_LEN, fmt, ##args); +#define TUR_MSG(fmt, args...) \ + do { \ + char msg[CHECKER_MSG_LEN]; \ + \ + snprintf(msg, sizeof(msg), fmt, ##args); \ + copy_message(cb_arg, msg); \ + } while (0) static int -tur_check(int fd, unsigned int timeout, char *msg) +tur_check(int fd, unsigned int timeout, + void (*copy_message)(void *, const char *), void *cb_arg) { struct sg_io_hdr io_hdr; unsigned char turCmdBlk[TUR_CMD_LEN] = { 0x00, 0, 0, 0, 0, 0 }; @@ -126,7 +133,7 @@ retry: io_hdr.timeout = timeout * 1000; io_hdr.pack_id = 0; if (ioctl(fd, SG_IO, &io_hdr) < 0) { - TUR_MSG(msg, MSG_TUR_DOWN); + TUR_MSG(MSG_TUR_DOWN); return PATH_DOWN; } if ((io_hdr.status & 0x7e) == 0x18) { @@ -134,7 +141,7 @@ retry: * SCSI-3 arrays might return * reservation conflict on TUR */ - TUR_MSG(msg, MSG_TUR_UP); + TUR_MSG(MSG_TUR_UP); return PATH_UP; } if (io_hdr.info & SG_INFO_OK_MASK) { @@ -179,14 +186,14 @@ retry: * LOGICAL UNIT NOT ACCESSIBLE, * TARGET PORT IN STANDBY STATE */ - TUR_MSG(msg, MSG_TUR_GHOST); + TUR_MSG(MSG_TUR_GHOST); return PATH_GHOST; } } - TUR_MSG(msg, MSG_TUR_DOWN); + TUR_MSG(MSG_TUR_DOWN); return PATH_DOWN; } - TUR_MSG(msg, MSG_TUR_UP); + TUR_MSG(MSG_TUR_UP); return PATH_UP; } @@ -206,6 +213,15 @@ static void cleanup_func(void *data) cleanup_context(ct); } +static void copy_msg_to_tcc(void *ct_p, const char *msg) +{ + struct tur_checker_context *ct = ct_p; + + pthread_mutex_lock(&ct->lock); + strlcpy(ct->message, msg, sizeof(ct->message)); + pthread_mutex_unlock(&ct->lock); +} + static void *tur_thread(void *ctx) { struct tur_checker_context *ct = ctx; @@ -213,16 +229,16 @@ static void *tur_thread(void *ctx) condlog(3, "%d:%d: tur checker starting up", TUR_DEVT(ct)); - ct->message[0] = '\0'; /* This thread can be canceled, so setup clean up */ tur_thread_cleanup_push(ct); /* TUR checker start up */ pthread_mutex_lock(&ct->lock); ct->state = PATH_PENDING; + ct->message[0] = '\0'; pthread_mutex_unlock(&ct->lock); - state = tur_check(ct->fd, ct->timeout, ct->message); + state = tur_check(ct->fd, ct->timeout, copy_msg_to_tcc, ct->message); /* TUR checker done */ pthread_mutex_lock(&ct->lock); @@ -262,6 +278,13 @@ static int tur_check_async_timeout(struct checker *c) return (now.tv_sec > ct->time); } +static void copy_msg_to_checker(void *c_p, const char *msg) +{ + struct checker *c = c_p; + + strlcpy(c->message, msg, sizeof(c->message)); +} + extern int libcheck_check (struct checker * c) { @@ -279,7 +302,7 @@ libcheck_check (struct checker * c) ct->devt = sb.st_rdev; if (c->sync) - return tur_check(c->fd, c->timeout, c->message); + return tur_check(c->fd, c->timeout, copy_msg_to_checker, c); /* * Async mode @@ -342,7 +365,8 @@ libcheck_check (struct checker * c) ct->thread = 0; condlog(3, "%d:%d: failed to start tur thread, using" " sync mode", TUR_DEVT(ct)); - return tur_check(c->fd, c->timeout, c->message); + return tur_check(c->fd, c->timeout, + copy_msg_to_checker, c); } tur_timeout(&tsp); r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp);