From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?windows-1252?Q?Christian_K=F6nig?= Subject: Re: [PATCH] radeon: Do not directly dereference pointers to BIOS area. Date: Thu, 19 Mar 2015 09:50:58 +0100 Message-ID: <550A8DF2.1010104@amd.com> References: <20150318.231840.1263267500500914630.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0145.outbound.protection.outlook.com [157.56.111.145]) by gabe.freedesktop.org (Postfix) with ESMTP id 65FDE6E99A for ; Thu, 19 Mar 2015 02:23:27 -0700 (PDT) In-Reply-To: <20150318.231840.1263267500500914630.davem@davemloft.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Miller , alexander.deucher@amd.com Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SW4gZ2VuZXJhbCBJIHdvdWxkIHNheSB5ZXMsIGJ1dCBmb3IgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3 YXJlIGl0J3MgYSBiaXQgCnF1ZXN0aW9uYWJsZSB0byBkbyBzby4KCkZvciByYWRlb24gaGFyZHdh cmUgdG8gd29yayBjb3JyZWN0bHkgdGhlIENQVSBhY2Nlc3MgdG8gdGhlIFBDSUUgQkFScyAKc2hv dWxkIHdvcmsgZXZlbiB3aXRob3V0IHVzaW5nIHRoZSBzcGVjaWFsaXplZCBJTyBtYWNyb3MvZnVu Y3Rpb25zLCAKb3RoZXJ3aXNlIG1hcHBpbmcgVlJBTSBDUFUgYWNjZXNzaWJsZSBpc24ndCByZWFs bHkgcG9zc2libGUuCgpXaGF0J3MgdGhlIGJhY2tncm91bmQgb2YgdGhlIGNoYW5nZT8gU29tZSBw cm9ibGVtcyBvbiBhIGNlcnRhaW4gQ1BVIApwbGF0Zm9ybT8gb3IganVzdCBnZW5lcmFsIGNsZWFu dXBzPwoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKT24gMTkuMDMuMjAxNSAwNDoxOCwgRGF2aWQgTWls bGVyIHdyb3RlOgo+IFVzZSByZWFkYigpIGFuZCBtZW1jcHlfZnJvbWlvKCkgYWNjZXNzb3JzIGlu c3RlYWQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYmlv cy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYmlvcy5jCj4gaW5kZXggNjNjY2I4 Zi4uZDI3ZTRjYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9i aW9zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9iaW9zLmMKPiBAQCAt NzYsNyArNzYsNyBAQCBzdGF0aWMgYm9vbCBpZ3BfcmVhZF9iaW9zX2Zyb21fdnJhbShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKPiAgIAo+ICAgc3RhdGljIGJvb2wgcmFkZW9uX3JlYWRfYmlv cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIHsKPiAtCXVpbnQ4X3QgX19pb21lbSAq YmlvczsKPiArCXVpbnQ4X3QgX19pb21lbSAqYmlvcywgdmFsMSwgdmFsMjsKPiAgIAlzaXplX3Qg c2l6ZTsKPiAgIAo+ICAgCXJkZXYtPmJpb3MgPSBOVUxMOwo+IEBAIC04NiwxNSArODYsMTkgQEAg c3RhdGljIGJvb2wgcmFkZW9uX3JlYWRfYmlvcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK PiAgIAkJcmV0dXJuIGZhbHNlOwo+ICAgCX0KPiAgIAo+IC0JaWYgKHNpemUgPT0gMCB8fCBiaW9z WzBdICE9IDB4NTUgfHwgYmlvc1sxXSAhPSAweGFhKSB7Cj4gKwl2YWwxID0gcmVhZGIoJmJpb3Nb MF0pOwo+ICsJdmFsMiA9IHJlYWRiKCZiaW9zWzFdKTsKPiArCj4gKwlpZiAoc2l6ZSA9PSAwIHx8 IHZhbDEgIT0gMHg1NSB8fCB2YWwyICE9IDB4YWEpIHsKPiAgIAkJcGNpX3VubWFwX3JvbShyZGV2 LT5wZGV2LCBiaW9zKTsKPiAgIAkJcmV0dXJuIGZhbHNlOwo+ICAgCX0KPiAtCXJkZXYtPmJpb3Mg PSBrbWVtZHVwKGJpb3MsIHNpemUsIEdGUF9LRVJORUwpOwo+ICsJcmRldi0+YmlvcyA9IGt6YWxs b2Moc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gICAJaWYgKHJkZXYtPmJpb3MgPT0gTlVMTCkgewo+ICAg CQlwY2lfdW5tYXBfcm9tKHJkZXYtPnBkZXYsIGJpb3MpOwo+ICAgCQlyZXR1cm4gZmFsc2U7Cj4g ICAJfQo+ICsJbWVtY3B5X2Zyb21pbyhyZGV2LT5iaW9zLCBiaW9zLCBzaXplKTsKPiAgIAlwY2lf dW5tYXBfcm9tKHJkZXYtPnBkZXYsIGJpb3MpOwo+ICAgCXJldHVybiB0cnVlOwo+ICAgfQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752726AbbCSJ0B (ORCPT ); Thu, 19 Mar 2015 05:26:01 -0400 Received: from mail-bn1on0114.outbound.protection.outlook.com ([157.56.110.114]:56788 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751034AbbCSJZ5 (ORCPT ); Thu, 19 Mar 2015 05:25:57 -0400 X-WSS-ID: 0NLGB92-07-6JI-02 X-M-MSG: Message-ID: <550A8DF2.1010104@amd.com> Date: Thu, 19 Mar 2015 09:50:58 +0100 From: =?windows-1252?Q?Christian_K=F6nig?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: David Miller , CC: , Subject: Re: [PATCH] radeon: Do not directly dereference pointers to BIOS area. References: <20150318.231840.1263267500500914630.davem@davemloft.net> In-Reply-To: <20150318.231840.1263267500500914630.davem@davemloft.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.224.152.254] X-EOPAttributedMessage: 0 Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=Christian.Koenig@amd.com; davemloft.net; dkim=none (message not signed) header.d=none; X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;BMV:1;SFV:NSPM;SFS:(10019020)(6009001)(428002)(189002)(51704005)(199003)(24454002)(105586002)(47776003)(64126003)(65816999)(76176999)(54356999)(33656002)(86362001)(50986999)(101416001)(83506001)(65806001)(36756003)(2950100001)(106466001)(65956001)(77156002)(92566002)(62966003)(46102003)(87266999)(50466002)(23746002)(19580395003)(77096005)(19580405001)(80316001)(87936001)(3940600001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR02MB1307;H:atltwp01.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR02MB1307; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(5002010);SRVR:DM2PR02MB1307;BCL:0;PCL:0;RULEID:;SRVR:DM2PR02MB1307; X-Forefront-PRVS: 052017CAF1 X-OriginatorOrg: amd4.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2015 08:51:05.1922 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR02MB1307 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In general I would say yes, but for this particular hardware it's a bit questionable to do so. For radeon hardware to work correctly the CPU access to the PCIE BARs should work even without using the specialized IO macros/functions, otherwise mapping VRAM CPU accessible isn't really possible. What's the background of the change? Some problems on a certain CPU platform? or just general cleanups? Regards, Christian. On 19.03.2015 04:18, David Miller wrote: > Use readb() and memcpy_fromio() accessors instead. > > Signed-off-by: David S. Miller > > diff --git a/drivers/gpu/drm/radeon/radeon_bios.c b/drivers/gpu/drm/radeon/radeon_bios.c > index 63ccb8f..d27e4cc 100644 > --- a/drivers/gpu/drm/radeon/radeon_bios.c > +++ b/drivers/gpu/drm/radeon/radeon_bios.c > @@ -76,7 +76,7 @@ static bool igp_read_bios_from_vram(struct radeon_device *rdev) > > static bool radeon_read_bios(struct radeon_device *rdev) > { > - uint8_t __iomem *bios; > + uint8_t __iomem *bios, val1, val2; > size_t size; > > rdev->bios = NULL; > @@ -86,15 +86,19 @@ static bool radeon_read_bios(struct radeon_device *rdev) > return false; > } > > - if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) { > + val1 = readb(&bios[0]); > + val2 = readb(&bios[1]); > + > + if (size == 0 || val1 != 0x55 || val2 != 0xaa) { > pci_unmap_rom(rdev->pdev, bios); > return false; > } > - rdev->bios = kmemdup(bios, size, GFP_KERNEL); > + rdev->bios = kzalloc(size, GFP_KERNEL); > if (rdev->bios == NULL) { > pci_unmap_rom(rdev->pdev, bios); > return false; > } > + memcpy_fromio(rdev->bios, bios, size); > pci_unmap_rom(rdev->pdev, bios); > return true; > }