From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753165AbdFVKRN (ORCPT ); Thu, 22 Jun 2017 06:17:13 -0400 Received: from mail-eopbgr00107.outbound.protection.outlook.com ([40.107.0.107]:52528 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752927AbdFVKRK (ORCPT ); Thu, 22 Jun 2017 06:17:10 -0400 Authentication-Results: free-electrons.com; dkim=none (message not signed) header.d=none;free-electrons.com; dmarc=none action=none header.from=axentia.se; Subject: [PATCH v2 01/14] drm/fb-helper: keep the .gamma_store updated in drm_fb_helper_setcmap To: linux-kernel@vger.kernel.org Cc: Alex Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= , David Airlie , Russell King , Dave Airlie , Gerd Hoffmann , Daniel Vetter , Jani Nikula , Sean Paul , Patrik Jakobsson , Ben Skeggs , Yannick Fertre , Philippe Cornu , Benjamin Gaignard , Vincent Abriou , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, Boris Brezillon References: <1498111597-10714-1-git-send-email-peda@axentia.se> <1498111597-10714-2-git-send-email-peda@axentia.se> From: Peter Rosin Organization: Axentia Technologies AB Message-ID: <0c8e535a-e8bf-f9cb-1950-036893ae282d@axentia.se> Date: Thu, 22 Jun 2017 12:17:00 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <1498111597-10714-2-git-send-email-peda@axentia.se> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: AM5PR04CA0021.eurprd04.prod.outlook.com (2603:10a6:206:1::34) To VI1PR0202MB2557.eurprd02.prod.outlook.com (2603:10a6:801:6::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8a1c4285-78c5-469f-2cdd-08d4b957d6e0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075);SRVR:VI1PR0202MB2557; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2557;3:3OXasewYW9+UTSPNW8Xd53rLQktDdt2ZxrX1AneTS6LbL5DiolnfserjYC090zS5Bq1I1I+70a9QpXvl+63rO8JI2xOekn0jAm3KjDUxNY7o21Jb6mO5yES1EEv5QYwjbcnFVNKJk4zig6m0GoFw8TrBEnmDNubkAvfYSvNfN5aAV39c8F9LbmGZvLikSjUVjrW9OT9XeOmAqYrAXtDQZ58EIIo9s9dJcqGfOzsFdtwg0kBFJuW0vXYIOroEFONJotgN4MCJKQVXDIRa2iRHektI6bao+BKy79feeKLoweBUDis6t+dTgvFhZXDxSA4Y;25:eZFXOOc8NOv0QDRZio6oQ8r1x+dJ0QYQNFL/IeBP32RE5f+4pkBeT3IeZCL9r8gxH4tl7ujeaXk5tOsiaLNaCOxCol730YMhYLAhIajoVnwdYQgAA/yborKKVih4HT2BfdSkr4i6l9fNwXe2bZl/qbMA/htAJHAZrxsCuvFsFzQE7M3utFT+2wmKfbzqhcRvw+4B0NDCafTAHPIE7OdVYHjZLz/9iwRAQko+vEnxtirmUccV9ffCsVvccfAp3qs/76m/jLxIa6G8+m/fwZLJrzfvL2sSQeBOJbtHj3O5qyk1JFpx0SKmPXRfBSsJ4svR834K8+GgwwjvKwX9xv/rQTI7roj757ENuplHCP9nXI01I5tPytcvoaCQzaYiLWyvZv8oYOf+Lj1IatyXU/KBW1at5n1Twukpc6/vuDRWPuomFJspsaMXwscUYR+8rDB37Rz6AOcnjH+3lCNrHJfGyNGsHU6rC3PGb6IvICmt2bs= X-MS-TrafficTypeDiagnostic: VI1PR0202MB2557: X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2557;31:MoD10B7flnd+Ex4PJjKae0zfkYTT8Pyp8d4V4g1srYPhQqz7qRAzg1DT4ZkYSnTjLUb01PLgjCJE4r4W3ZpIio43MpdwnACSuX5hXMd96arbK9WvrsgBUaCClOYmRsd5TGga9SUy+c6/GRJWw7i0I9AdYDFcU+0D1xSeorK8QVxLRPE+l4+e4oFuW+vMT5HAm1c0743qNX4FaUylZM2/mt81RYe3qvUR57zUaYOnpvDGz59dMq1zbfbqNQWfxQr1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(2016111802025)(20161123555025)(20161123564025)(20161123558100)(20161123562025)(6072148)(6043046)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0202MB2557;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0202MB2557; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjAyMDJNQjI1NTc7NDpoalIwTFVKRGJGL1RVdHM0Wkllclo5b0VY?= =?utf-8?B?OUFhYis0V2RhNTBaaC9BTnQ1a3hrWlBzZVBPRURZaE1vR3YxdXlWaUFtRGdW?= =?utf-8?B?RTg4cmszeXc5bmtRcXA3aXUvbWF1OTcrSVU3eGphVmg0Q3BYZFlyVnhUSFRO?= =?utf-8?B?ZURaMS8veCtnSkJVVFFjc1JBaDZyUFhJa0FXT1pabnlyZTkvOTI4QjlYMEVh?= =?utf-8?B?ZTY0dUNLR1FKT2U1TWtRVXF6SG1wOXlFMDI3MlYzek4rNGNjNktzcTNTQ0Qz?= =?utf-8?B?aXloYVBYQVloeHdMZCtLaVE2ZFRqZ29yNGY2VFFiZkNvQXFqWTlzRWx4ZTQv?= =?utf-8?B?ZGdzaWtkVEV2SDV2bzFXQjBibVUxTzJrVUphWmxvaW9Cdng0NkdMbTNTZ0Nv?= =?utf-8?B?ZnFBc3ViZFppLzZoOG5EWDVLN1VrOWNJQUR1Qm5sQUlqQTlmcHpYMjlXWHN1?= =?utf-8?B?ZVdPWlFtYjg5SE1pN2JWR2JtQXAwQUJtdnJPQXVyYXdKOGIybW1La1l2SU9W?= =?utf-8?B?ZTJNVDAzeHdzSWNHbERkTzVwcHhnRkpJYWF5NXo2eEdKSnpqZ3pwb2ljZlht?= =?utf-8?B?eWVtU0RrWGdJNlZaSjNwM2Zadk1jLzg0OEFKaVk4QjRBak43bkdvY0tVYTNj?= =?utf-8?B?WEhFRzNWeXF1V2RMRkRMOENWVzFCdzR6S0JtQlBhL2JidVIrcTRHd09PT1dB?= =?utf-8?B?am1HcVh1NGh5bm9CY0UxYmZENnFqdEFTNTVOcEpITnM5cExFbGF3aERLeXFs?= =?utf-8?B?VWlKYmZsZGl2dFFwZjlFMHVwc1ZRb1VKcjdWTGlDRXp5MVo3MFZyN0dxbkdj?= =?utf-8?B?RTRNSktUZWh3amF4R0dqb2lQeTNRNlIva3ZRVUYrZmEyNlV4QjBaeGdTS2N6?= =?utf-8?B?aGF4WmQyK2pBTWFyVFg2dVliN1ZybW1zVFV4QmVlbzNHSHVmdUtFVDV5TEVW?= =?utf-8?B?MS85SmlnS21OeU5jaVNzaUpwSFhqRTNRcXpObFZRS2VIUEUwaTg3bHFsUGxy?= =?utf-8?B?YUpXUEVVSnhxUHhlUzBzR3ZqVUhvd1N0QjdRdVJZckRoQTIyb3V6bkcxQ1ZS?= =?utf-8?B?V3lybjVkWE80SFBPK003YlFCd0ZoQ0RQN3VqdVZwbS9DV09xZXdvTXdXZ2JY?= =?utf-8?B?cjdxZGE4bTBRWXgvNGVHQXlROXdMQXR6Z0NFSnRlc3IvZFF6SWo4QWdTVWRl?= =?utf-8?B?Q0x5TXp3SGtSYmlzcW5kK2lFeEFVWUJ2VHNwRFg3OExJRkhGRWpwNHFwSHFW?= =?utf-8?B?ZEZJRSt2dDVmZDZyb2tJN0dHRENTYWlyY0E1QmgrRFhYSEtvQU94T2pXcHVv?= =?utf-8?B?NWNuRW5nRExUWTcyN1BjR09pNnJYU1lScDRHcjJTay9yS2t4SnhCU2hWb1JT?= =?utf-8?B?c3BURW5JVm5JR0RsOUxUeXdrbGx3cGlCc2hXeWxyTGpscnFpanhndlE5LzFn?= =?utf-8?B?aHluYndSR084M0dHdHcvRzFrMEE4b0NNNlFoV0xBR29yc1I1bEZPemx3NmUw?= =?utf-8?B?TCtka0d5Nm5PUUl5V0kwN2RhQm9TYmp6aXZaWVRlVWpJditad245R3ZMTXli?= =?utf-8?B?cFQwZ2FhRG5yTHlpdmhlK0NPMXV4RlVvcWdYYjZyUjcxYTNPZ2hZSVdjSkpR?= =?utf-8?Q?=3D?= X-Forefront-PRVS: 03468CBA43 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39410400002)(39830400002)(39400400002)(39450400003)(74482002)(6486002)(64126003)(50466002)(36756003)(189998001)(53936002)(3260700006)(6116002)(3846002)(25786009)(4001350100001)(31696002)(7736002)(8676002)(86362001)(7416002)(2906002)(31686004)(81166006)(8666007)(38730400002)(83506001)(110136004)(77096006)(230700001)(305945005)(33646002)(42186005)(2361001)(54906002)(23676002)(5660300001)(2351001)(117156002)(2950100002)(65806001)(6666003)(66066001)(65956001)(47776003)(4326008)(50986999)(76176999)(6916009)(54356999)(478600001)(65826007)(142923001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0202MB2557;H:[192.168.0.125];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjAyMDJNQjI1NTc7MjM6b3A2SjhseDczNUpvaUIvbjdDbGVCWktZ?= =?utf-8?B?VFpwOE1DU1NHcHdyQ0dXS0RpZ3NQMElnRmJkSGlsS3Y0M1E2Z1FpVjN1VXg3?= =?utf-8?B?Y0hYeitHQnZIeHNXWmNzSFlFRE43c1BVd0hIT2RUcloyYUM2NytLM3VONkZI?= =?utf-8?B?OEpSUmtTTlNtU0czM2ZDazllbUdtT1dKd2hFdVV1cXNmUGg3cXVhWmZOYkR6?= =?utf-8?B?L0VML3NRV2ZnTlZuZnRvV2Y2MFBVOTUxQnNITXJBcWlkWFpIelVWT2Q4UzJN?= =?utf-8?B?cGFHMzFZYU4zUFB4R0tXWklMb2FLeWJES2wwa2gyUTBoajdKM1lyUGJwTWMy?= =?utf-8?B?Rm5MalpJdHJvQ0VDazFTbmgyT1JMR1o2d1FOaEVtV09tcnJpakNNZTFNYnQz?= =?utf-8?B?dEJZN05xUm1QajlzZnVLdWJhN0VVNTB2WTdkNUdtb0RramxOSFMzL2FBMTVZ?= =?utf-8?B?SVVackFiSmlydW1DMGkrU04wTEZVOXY4dXJZUkNSUnV4RXJPaFRBWndpR1B4?= =?utf-8?B?RXB0WjhBNkdSdzdOU0NSdzh5MlpNZkhEVll2WVRaSjZNOEwvSktHRVpscWQx?= =?utf-8?B?MGlKNGo4bG5TQS91cjQxdittSzQ2bHlIaCs0eGJYOHNFT2Y4ZENoTkpoNFhz?= =?utf-8?B?UXdRSmQyYVZNV1gyRHdtdGY0Ty9WQk9YRmRxVWh3SkRZeDduakl0MDhoeEZk?= =?utf-8?B?Wlh2M0ZNd1drUWtHeUNPY2ZWeGZTUlhLckhtWU96bnhERGhWMEN1Nm1GbWk1?= =?utf-8?B?NURYUlpxaUY0S1BGRjh1b2VOdjU3ZUw3T3VneFZ5T1oyOGI1SE84S3RKYmJV?= =?utf-8?B?K29tWEgwWjd1UzJjd1BTZG1YUlB2UHd5ZTBoeWlONzBsc2J5bHN6cFZoSUgz?= =?utf-8?B?QnRoOVJ2dlNhL1lYTEtpOTJrdm5IMlUvSzljUDdGaUlRUERMdC92UzVtYVJy?= =?utf-8?B?RDRzclNlTmlycmZSQndteFVBVTB1VlVTSGJZUXdWeEtHQWdrVWR1V3VNMXdn?= =?utf-8?B?eFJIQlMzcTdrU3oyQjFzZWpwQi9kNFI3NnZmTFdkZUk5Nk14Z0NaOS8wd2N2?= =?utf-8?B?dHJIbjlOTG9UTFRaNHVFZ2t2bitZZEw0cE5tNUNTYWdQVkpmQ1JNK29OUUVW?= =?utf-8?B?Y3pLaEh5WjFvZkFnT1p6REh4WmJNK3BzU0x3N1BFKzFocUVUZTVzckNBMlRx?= =?utf-8?B?R1hwdERrRXlDNDRtVmxoZlVoSW4wS2RucTNoMW5naFJDM3loMzY2YnE2dzY2?= =?utf-8?B?eHZRTkY2L0IrZEF1OEozaDJMVHZFTmVRZllDWjZOSmRrNEpqUWhYSHFRWElF?= =?utf-8?B?b1dFdFdSNWR5UUVZTEJROCtwNU5FZDNhcDdHS1ZMVzlZTHg4cnFuZ24vN1g0?= =?utf-8?B?Y2V4VEpUZlJoZCtBZDZsNnRmelBkQUtEdDBMZ1VDOXJJZ1hDSmkrL3NBcVow?= =?utf-8?B?eHBzWXZTbW9xb3d1N3NIeFBTeXlTaDRWdjU1YllLVVIrM01wTEpSazFjTUt4?= =?utf-8?B?VHF5QnhicWR1RVNMWUthWjl4Qm5oazlLblh0RmlkaHh1U2xOTnBZcmh0cDJY?= =?utf-8?B?ZUhDamZoSldsWFgveXV4Nzk4ZTBQby9JWG5rSWE0cVpaWXZXVEh3aWl6SXVl?= =?utf-8?B?SCtXTmZnamVsZTVvUHU2R2VTblBVWXRLdGQ2aTNNOVUzSFpLUnd0dlJ3b0dM?= =?utf-8?B?dmpVaE5yOUNPb0ZNWnRxQmJlQWxONzVMem1sNWZCVVQzRkllVEVROFFDWmox?= =?utf-8?B?cXpJSXZvRm0ycGE0M3N1bDNYZGFNWjByREI0L0ZveWptRmZaaHRqandVWnkr?= =?utf-8?B?bTV5SHp3R3hmY2d5K0wrYWJqZ2xPOU9ZYUI1L2lTZ2hRVGpqNkhBdUt4bmxK?= =?utf-8?Q?BvcbYTJaU7MEA=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjAyMDJNQjI1NTc7NjpTZDRlSy8zS2VZc09tSEh0SWZ6S2NwRDBm?= =?utf-8?B?MVVwWnJaVUkzVEU5WWFWSXNUVTJmQWxRNUdRM0t1ZDN0VThueVluekJ5cEs0?= =?utf-8?B?OHVlWCtRWTlMNFdldTRhNXJmNVRzNFl4d1JGS3M0T01aakZmUGVVQ1llT2N5?= =?utf-8?B?QkpFbXVzM1F4VGg0NVB1UDhPNVBQaU40Wkxmc3gvOG9CTkl1cFpmSDRJV0Q5?= =?utf-8?B?MjdDNnE3dUR4Rk5zWmxyajBQK2trcHJxM2FsdDBWYjVJWEI5cUN3dEM1TWds?= =?utf-8?B?aWRBdGxNSW5GQTVrTXJRbEJtbXVTNlg1bVdEVThHY2F6MHhZNUJEb1VFVmNO?= =?utf-8?B?Y2JYNCtSVFFoOXZxUkVkNzJqSkgvN29rQjJvNkRxT1dFeDFkTVZzSTZZS2FE?= =?utf-8?B?WGVOdXNEZzBMb2ZmODJjVkFpeWdwbDBYUWUvMDdKK0YvUzNwM3owbEZYcjRT?= =?utf-8?B?M3FkN0dGRXJzZnFkMGF6SUFsa1BjWlVnN2dobVRTQzdwb3drV1JPNVJwdUs3?= =?utf-8?B?N08yM2dSclZ3b0JkdnNiWTkwTnNQY1NRbEdMU0QwTnZqNE0zd1NLdGtYcEZI?= =?utf-8?B?QlJjSVZETm16SVZYVkFXWEErQ0RQQXNIejc2OEVaTWRURjBkWld4dFphdVBM?= =?utf-8?B?ZUwyWHIrT2dRRVE5UWNuS1liRVRxMVJsd0pKRlIvaXJ0QXJMdDBhOTV4VllU?= =?utf-8?B?YnBNNnJEWnhseXUyZ0hodHY4UTVSNGJzS0YwSnFuSCtILzN1bm8ycTRnT1Iy?= =?utf-8?B?VEhvTVRPejY0L3Y1Nm9TRW1jSzRYRWpRNS9wSTZqV1lWYnZ4cGpTM3dUbkk1?= =?utf-8?B?RU5QRGlMRjhrZzZObGhHWlhKNjBPS1llNXZxSFYyT3dNSVBpRzlBdG1UMGVn?= =?utf-8?B?N1pZdS9DcXdUOFU1MWxkMm5aVXRVZVM0OHpRM0ZBemRTWURiOUJaeE5aWmJr?= =?utf-8?B?cjB3SWo2bkxsUDNxYWpibldLaUlvS3RzVmt1WlBMUGRwdFRKWGNGZkZtS3NE?= =?utf-8?B?Q25kNmtHdjRXaEh6b29IdHdxZHhVdkRvSFF3cis5d1ZYcm5qNlJRazFzRWQy?= =?utf-8?B?blVYdktoTDVxSGJYRWlLdVlXLzR0UGdSaWlkck4wUjdBQ1ArT3lHMFFoNU05?= =?utf-8?B?Q28zUytwL2VaNjcyU0h5ejUrTHN2TndsSnJDOXk5WEtvRHJudU1tYlA2Z01M?= =?utf-8?B?Rmo0VnppSnptOWlkZGVSR2N1UUliOE1qRHR4Y1lQdzBUYzBQT203Q0hCSVFB?= =?utf-8?B?dS9MZGNnYThJanUvc3Z3d3pveEQvSHROZUREaEU3QjlodFR1YlFhSHRXdWZS?= =?utf-8?Q?KiLmpYx6S3GhvDs7fxKMUVO5V05SkwnFk=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2557;5:BP8OlKf0fF02RFydlmFo/4IvrzN82O0+T2ZWGaUAjfrGTnA4/htVDFAEBCuXBSAd1lcHztRsESFYZZlQbOAxKCogdlW4RjSLdF2T7gEwnfhEdXHjuqvWlRnXmsX888xyiCdGi7y/KKXUcynsqyj60M3AN2zbpKRxplDOtaAryt0BtFxaM80EOqiA9U2pqBhjSKQD7IXesQAGr/JKKGi8XAAK0plpMEtH32qzmXElQ5chX4NvQdakz3VQ6ww8zruIiMdx12gizTZ3iyh7U+yiNK/fj7LlmxsQ2ZHpB/M8u++P0BDg1gjAXteA0al7kpyLD3QI2hINh2Mo7XsaAAfY/SJ+ZB7piSrU0mSWx53wKfcayq41VjKjRMpSvR2hOpzZah1l8Q3dEJgg1f8k3DpD1rvF4nrmJEPcPhuF9qLbbD4PVgvPFFQyNnyYZlfLypANWWMkN/jKMLHhhwf+zSpkME6TBTHkf4Pc4JS30TYatl1WcGAC7rJDr08vqGea1QmE;24:v31BITRVMym4q2OH6s5A2vqT8TeMV5o1KWnpzlhKggfLeTbWUZPEvNY7KfokddE8fxNOhTY5fL4cUpVi8ZJTjk3Yj+SLBWFOFhtLKdTXjH4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2557;7:JB6M0/z/a4+EjEctLyNMWKkYJCts2Pj1WWvmbFs6XjjYLI//kmM+LtsdEwXj4dbqN2qdjBeBzkz7ih/68LN8p6T8qS1byrUCDXNAJmzBVOsGHba3yyfGdow7g8SeSnw+TwI1MJhBDqlqhaNRWn2MnnmoRW9uTl6D/zHVhZeHXUr7Y/wnLDTXdqMOmnR/XxmRsA/Y9EHCL2JMfboAnGaMcTC2fgrN7VTCdHrfpcwt8ClimjALlMpu6w2/6VEyef4s29uO4SBXOtKdLP9LKMMJMgJLiYncuJU2Hbf4i/WtiGFgnqisPCPqrL42ErOcfC3HH/d0ZBqtNI/k1Fsq83xu4BCWxuo+3DxCX9C/bhj8N71Fx/lqOINaa1Smx9+v0XwjG3J9b16rwNseSe5rd81D3Xs+Ex+jcr9vU8U6+X8Dm62FAPTX+NDTjqUMGu4khRclSvyn2oGNGeiHNIx3W1R+3hOwqVMXkb4yvoTIe135/pZBg2YSYcabEs7sPcBak6n6xBSn5+8iG4IHSA8fe2KMvooI8IX7Lo7e5PgOkxEMe5reKOIyi+giTWDk1Z3UCmF1Ir41w5kl7RTcOvEAudOSktGHVsR5jhjFEwzwiu85p1HN6Vo6NByyNd3SWYB/JdNQM6jLpdZCioZDTx+EjvUFrdQudMrJFpVnnMZZnKi8+x40qsTouiOluwP3rgoM8lnPw0BJLMHHiazPgTwkPs1t3pJAYr7r0xESxnzxJ0ugL80fFrIqBdTfVUHTi+vFvlfq66GXHUWdrMuHHrsXVyk9LRJ6CFiwR3yFVri8boFZfa8= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2017 10:17:06.0170 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0202MB2557 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I think the gamma_store can end up invalid on error. But the way I read it, that can happen in drm_mode_gamma_set_ioctl as well, so why should this pesky legacy fbdev stuff be any better? Signed-off-by: Peter Rosin --- drivers/gpu/drm/drm_fb_helper.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) This is an alternative version rebased on top of Daniels "fbdev helper locking rework and deferred setup" series. Cheers, peda diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index a4cfef9..c7122c9 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -1330,12 +1330,16 @@ int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info) const struct drm_crtc_helper_funcs *crtc_funcs; u16 *red, *green, *blue, *transp; struct drm_crtc *crtc; + u16 *r, *g, *b; int i, j, rc = 0; int start; if (oops_in_progress) return -EBUSY; + if (cmap->start + cmap->len < cmap->start) + return -EINVAL; + mutex_lock(&fb_helper->lock); if (!drm_fb_helper_is_bound(fb_helper)) { mutex_unlock(&fb_helper->lock); @@ -1353,6 +1357,29 @@ int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info) transp = cmap->transp; start = cmap->start; + if (info->fix.visual != FB_VISUAL_TRUECOLOR) { + if (!crtc->gamma_size) { + rc = -EINVAL; + goto out; + } + + if (cmap->start + cmap->len > crtc->gamma_size) { + rc = -EINVAL; + goto out; + } + + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; + + memcpy(r + cmap->start, cmap->red, + cmap->len * sizeof(u16)); + memcpy(g + cmap->start, cmap->green, + cmap->len * sizeof(u16)); + memcpy(b + cmap->start, cmap->blue, + cmap->len * sizeof(u16)); + } + for (j = 0; j < cmap->len; j++) { u16 hred, hgreen, hblue, htransp = 0xffff; -- 2.1.4