From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by canuck.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1PnVDU-0003Ti-Bk for barebox@lists.infradead.org; Thu, 10 Feb 2011 12:01:45 +0000 Date: Thu, 10 Feb 2011 13:01:41 +0100 From: Sascha Hauer Message-ID: <20110210120141.GS9041@pengutronix.de> References: <1297308720-26390-1-git-send-email-plagnioj@jcrosoft.com> <1297308720-26390-3-git-send-email-plagnioj@jcrosoft.com> <20110210071225.GP9041@pengutronix.de> <20110210115014.GD11255@game.jcrosoft.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20110210115014.GD11255@game.jcrosoft.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 3/4] driver/memmap: fix generic_memmap_rw and generic_memmap_ro To: Jean-Christophe PLAGNIOL-VILLARD Cc: barebox@lists.infradead.org On Thu, Feb 10, 2011 at 12:50:14PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote: > On 08:12 Thu 10 Feb , Sascha Hauer wrote: > > On Thu, Feb 10, 2011 at 04:31:59AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote: > > > we check before the RW access for generic_memmap_ro instead of > > > generic_memmap_rw > > > > > > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD > > > --- > > > drivers/base/driver.c | 5 +++-- > > > 1 files changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/base/driver.c b/drivers/base/driver.c > > > index ff92e44..bd7464e 100644 > > > --- a/drivers/base/driver.c > > > +++ b/drivers/base/driver.c > > > @@ -223,8 +223,6 @@ int generic_memmap_ro(struct cdev *cdev, void **map, int flags) > > > if (!cdev->dev) > > > return -EINVAL; > > > > > > - if (flags & PROT_WRITE) > > > - return -EACCES; > > > *map = (void *)cdev->dev->map_base; > > > return 0; > > > } > > > @@ -234,6 +232,9 @@ int generic_memmap_rw(struct cdev *cdev, void **map, int flags) > > > if (!cdev->dev) > > > return -EINVAL; > > > > > > + if (flags & PROT_WRITE) > > > + return -EACCES; > > > + > > > > So instead of allowing write access in the read/write function we now > > allow it in the readonly function? I'm afraid I don't understand this. > PROT_WRITE means ro no? No. The semantics are from mmap(2): PROT_EXEC Pages may be executed. PROT_READ Pages may be read. PROT_WRITE Pages may be written. PROT_NONE Pages may not be accessed. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox