Received: from milmhbs1.lsil.com (147.145.21.209) by coscas01.lsi.com
 (172.21.36.60) with Microsoft SMTP Server id 8.1.393.1; Thu, 5 Nov 2009
 10:56:32 -0700
Received: from mail1.lsil.com (mail1.lsil.com [147.145.40.21])	by
 milmhbs1.lsil.com (8.12.11/8.12.11) with ESMTP id nA5HuVi5024425	for
 <andy.sharp@lsi.com>; Thu, 5 Nov 2009 09:56:31 -0800
Received: from psmtp.com (na3sys009amx207.postini.com [74.125.149.47])	by
 mail1.lsil.com (8.12.11/8.12.11) with SMTP id nA5HuTrI015856	for
 <andy.sharp@lsi.com>; Thu, 5 Nov 2009 09:56:30 -0800 (PST)
Received: from source ([78.24.191.182]) by na3sys009amx207.postini.com
 ([74.125.148.14]) with SMTP;	Thu, 05 Nov 2009 11:56:30 CST
Received: from localhost.localdomain ([127.0.0.1]:45927 "EHLO
	eddie.linux-mips.org" rhost-flags-OK-OK-OK-FAIL) by ftp.linux-mips.org	with
 ESMTP id S1492753AbZKER40 (ORCPT <rfc822;andy.sharp@lsi.com>);	Thu, 5 Nov
 2009 18:56:26 +0100
Received: with ECARTIS (v1.0.0; list linux-mips); Thu, 05 Nov 2009 18:56:08
 +0100 (CET)
Received: from localhost.localdomain ([127.0.0.1]:58908 "EHLO h5.dl5rb.org.uk"
	rhost-flags-OK-OK-OK-FAIL) by ftp.linux-mips.org with ESMTP	id
 S1492952AbZKERzm (ORCPT <rfc822;linux-mips@linux-mips.org>);	Thu, 5 Nov 2009
 18:55:42 +0100
Received: from h5.dl5rb.org.uk (localhost.localdomain [127.0.0.1])	by
 h5.dl5rb.org.uk (8.14.3/8.14.3) with ESMTP id nA5Hv3MU024929;	Thu, 5 Nov 2009
 18:57:03 +0100
Received: (from ralf@localhost)	by h5.dl5rb.org.uk (8.14.3/8.14.3/Submit) id
 nA5Hv20x024928;	Thu, 5 Nov 2009 18:57:02 +0100
From: Ralf Baechle <ralf@linux-mips.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
CC: Julia Lawall <julia@diku.dk>, "linux-mips@linux-mips.org"
	<linux-mips@linux-mips.org>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>
Sender: "linux-mips-bounce@linux-mips.org" <linux-mips-bounce@linux-mips.org>
Date: Thu, 5 Nov 2009 08:26:01 -0700
Subject: [PATCH 5/6] VIDEO: Correct use of request_region/request_mem_region
Thread-Topic: [PATCH 5/6] VIDEO: Correct use of
 request_region/request_mem_region
Thread-Index: AcpeQU9Yi/SQkKYXT1Kb9VaoihpfhQ==
Message-ID: <20091105152702.365281887@linux-mips.org>
References: <20091105152555.227009519@linux-mips.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-AuthSource: coscas01.lsi.com
X-MS-Has-Attach:
X-Auto-Response-Suppress: All
X-MS-TNEF-Correlator:
x-scanned-by: MIMEDefang 2.39
errors-to: linux-mips-bounce@linux-mips.org
x-pstn-levels: (S:79.90672/99.90000 CV:99.9000 FC:95.5390 LC:95.5390
 R:95.9108 P:95.9108 M:97.0282 C:98.6951 )
x-pstn-settings: 3 (1.0000:1.0000) s cv gt3 gt2 gt1 r p m c 
x-pstn-addresses: from <ralf@linux-mips.org> [22/1] 
x-pstn-neptune: 0/0/0.00/0
user-agent: quilt/0.47-1
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

From: Julia Lawall <julia@diku.dk>

Geert Uytterhoeven pointed out that in the case of drivers/video/gbefb.c,
the problem is actually the other way around; request_mem_region should be
used instead of request_region.

The semantic patch that finds/fixes this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r1@
expression start;
@@

request_region(start,...)

@b1@
expression r1.start;
@@

request_mem_region(start,...)

@depends on !b1@
expression r1.start;
expression E;
@@

- release_mem_region
+ release_region
  (start,E)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

 drivers/video/gbefb.c  |    2 +-
 drivers/video/tdfxfb.c |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Index: upstream-linus/drivers/video/gbefb.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- upstream-linus.orig/drivers/video/gbefb.c
+++ upstream-linus/drivers/video/gbefb.c
@@ -1147,7 +1147,7 @@ static int __init gbefb_probe(struct pla
 	gbefb_setup(options);
 #endif
=20
-	if (!request_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) {
+	if (!request_mem_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) {
 		printk(KERN_ERR "gbefb: couldn't reserve mmio region\n");
 		ret =3D -EBUSY;
 		goto out_release_framebuffer;
Index: upstream-linus/drivers/video/tdfxfb.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- upstream-linus.orig/drivers/video/tdfxfb.c
+++ upstream-linus/drivers/video/tdfxfb.c
@@ -1571,8 +1571,8 @@ out_err_iobase:
 	if (default_par->mtrr_handle >=3D 0)
 		mtrr_del(default_par->mtrr_handle, info->fix.smem_start,
 			 info->fix.smem_len);
-	release_mem_region(pci_resource_start(pdev, 2),
-			   pci_resource_len(pdev, 2));
+	release_region(pci_resource_start(pdev, 2),
+		       pci_resource_len(pdev, 2));
 out_err_screenbase:
 	if (info->screen_base)
 		iounmap(info->screen_base);



