All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
To: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org>
Cc: Greg Kroah-Hartman
	<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
	akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports
Date: Fri, 09 May 2014 13:54:05 -0700	[thread overview]
Message-ID: <536D406D.2080508@zytor.com> (raw)
In-Reply-To: <9233735.5FfZoZovqP@wuerfel>

On 05/09/2014 12:58 PM, Arnd Bergmann wrote:
> On Friday 09 May 2014 12:19:16 Josh Triplett wrote:
> 
>> +	if (!access_ok(VERIFY_WRITE, buf, count))
>> +		return -EFAULT;
>> +	if (port > 65535)
>> +		return 0;
> 
> This should probably test against IO_SPACE_LIMIT, which may be zero,
> something larger than 65536 or even ULONG_MAX, depending on the
> architecture.
> 
> In cases where this IO_SPACE_LIMIT is zero or ULONG_MAX, we should
> probably disallow access completely. The former case is for architectures
> that don't have any I/O ports, the other is either a mistake, or is
> used when inb is defined as readb, and the port numbers are just virtual
> addresses.
> 

PCI supports a 32-bit I/O address space, so if the architecture permits
it, having a 32-bit I/O space is perfectly legitimate.

It is worth noting that /dev/port has the same problem.

However, if we're going to have these devices I'm wondering if having
/dev/portw and /dev/portl (or something like that) might not make sense,
rather than requiring a system call per transaction.

Also, x86 supports unaligned I/O port references, but not all
architectures do.  On the other hand, x86 also supports ioperm().

	-hpa

WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com>
To: Arnd Bergmann <arnd@arndb.de>, Josh Triplett <josh@joshtriplett.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	linux-api@vger.kernel.org
Subject: Re: [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports
Date: Fri, 09 May 2014 13:54:05 -0700	[thread overview]
Message-ID: <536D406D.2080508@zytor.com> (raw)
In-Reply-To: <9233735.5FfZoZovqP@wuerfel>

On 05/09/2014 12:58 PM, Arnd Bergmann wrote:
> On Friday 09 May 2014 12:19:16 Josh Triplett wrote:
> 
>> +	if (!access_ok(VERIFY_WRITE, buf, count))
>> +		return -EFAULT;
>> +	if (port > 65535)
>> +		return 0;
> 
> This should probably test against IO_SPACE_LIMIT, which may be zero,
> something larger than 65536 or even ULONG_MAX, depending on the
> architecture.
> 
> In cases where this IO_SPACE_LIMIT is zero or ULONG_MAX, we should
> probably disallow access completely. The former case is for architectures
> that don't have any I/O ports, the other is either a mistake, or is
> used when inb is defined as readb, and the port numbers are just virtual
> addresses.
> 

PCI supports a 32-bit I/O address space, so if the architecture permits
it, having a 32-bit I/O space is perfectly legitimate.

It is worth noting that /dev/port has the same problem.

However, if we're going to have these devices I'm wondering if having
/dev/portw and /dev/portl (or something like that) might not make sense,
rather than requiring a system call per transaction.

Also, x86 supports unaligned I/O port references, but not all
architectures do.  On the other hand, x86 also supports ioperm().

	-hpa




  reply	other threads:[~2014-05-09 20:54 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-09 19:19 [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports Josh Triplett
2014-05-09 19:19 ` Josh Triplett
2014-05-09 19:21 ` [PATCH] mem.4, ioports.4: Document /dev/ioports Josh Triplett
2014-05-09 19:21   ` Josh Triplett
2014-05-13  8:27   ` Michael Kerrisk (man-pages)
2014-05-09 19:58 ` [PATCH] drivers/char/mem.c: Add /dev/ioports, supporting 16-bit and 32-bit ports Arnd Bergmann
2014-05-09 19:58   ` Arnd Bergmann
2014-05-09 20:54   ` H. Peter Anvin [this message]
2014-05-09 20:54     ` H. Peter Anvin
2014-05-09 21:12     ` Arnd Bergmann
2014-05-09 21:20       ` H. Peter Anvin
2014-05-09 21:20         ` H. Peter Anvin
     [not found]         ` <536D46AD.3070608-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-09 22:38           ` Josh Triplett
2014-05-09 22:38             ` Josh Triplett
2014-05-13 22:10             ` H. Peter Anvin
     [not found]               ` <53729873.2030805-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-15 21:56                 ` josh-iaAMLnmF4UmaiuxdJuQwMA
2014-05-15 21:56                   ` josh
2014-05-19 12:36                   ` Arnd Bergmann
2014-05-19 12:36                     ` Arnd Bergmann
2014-05-28 21:41                     ` H. Peter Anvin
2014-05-28 21:41                       ` H. Peter Anvin
     [not found]                       ` <53865820.7010309-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-29  9:26                         ` Arnd Bergmann
2014-05-29  9:26                           ` Arnd Bergmann
2014-05-29 13:38                           ` H. Peter Anvin
2014-05-29 13:38                             ` H. Peter Anvin
     [not found]                             ` <5387385B.1030203-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-05-30 11:32                               ` Arnd Bergmann
2014-05-30 11:32                                 ` Arnd Bergmann
2015-12-22 10:52                                 ` Santosh Shukla
2015-12-22 10:52                                   ` Santosh Shukla
     [not found]                                   ` <CA+iXiiN8xFaiz6DwyLfWRFZ81pJZf=Fv1E60VZC-iSNPswaGEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-22 21:56                                     ` Arnd Bergmann
2015-12-22 21:56                                       ` Arnd Bergmann
2015-12-22 22:02                                       ` H. Peter Anvin
     [not found]                                         ` <1592CC7D-B2F2-4E8B-BB90-4A20682B1FEE-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2015-12-22 22:11                                           ` Arnd Bergmann
2015-12-22 22:11                                             ` Arnd Bergmann
2015-12-23 11:34                                       ` Santosh Shukla
     [not found]                                         ` <CA+iXiiOsbC0MBaRwc5JgaTVRpdxHub5t2T=LrGaVN1AjKpiJgA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 13:28                                           ` Arnd Bergmann
2015-12-29 13:28                                             ` Arnd Bergmann
2015-12-29 15:53                                             ` Santosh Shukla
2015-12-29 15:53                                               ` Santosh Shukla
     [not found]                                               ` <CA+iXiiNKiMz=9BJgu3g=LggXjTv61Uwu+ibNfKeih3rK328LSQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 15:55                                                 ` Santosh Shukla
2015-12-29 15:55                                                   ` Santosh Shukla
     [not found]                                                   ` <CA+iXiiM+TrciHROfgTcN01mfGEYuUCvpNRU0Qqgrt56VdCcR8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 16:20                                                     ` Arnd Bergmann
2015-12-29 16:20                                                       ` Arnd Bergmann
2015-12-29 16:30                                                       ` Santosh Shukla
2015-12-29 16:30                                                         ` Santosh Shukla
     [not found]                                                         ` <CAAyOgsYuMWudLgbSNM+QAkSXpU_fp6Ue01r=Ufmf5MXUHMs4UQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-29 17:31                                                           ` Alex Williamson
2015-12-29 17:31                                                             ` Alex Williamson
     [not found]                                                             ` <1451410269.18084.15.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-12-31  9:33                                                               ` Santosh Shukla
2015-12-31  9:33                                                                 ` Santosh Shukla
     [not found]                                                                 ` <CAAyOgsaxEaQ5+BW6Rwmz4cEuzVUdswZAWyF0OrbdPpXduwESYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-31 15:41                                                                   ` Alex Williamson
2015-12-31 15:41                                                                     ` Alex Williamson
2016-01-07  9:31                                                                     ` Santosh Shukla
2014-05-10  7:07 ` Jann Horn
2014-05-10  7:07   ` Jann Horn
     [not found]   ` <20140510070742.GE6099-7cfQGs147y6a6lf8Wg2v7Z5kstrrjoWp@public.gmane.org>
2014-05-10 19:32     ` Josh Triplett
2014-05-10 19:32       ` Josh Triplett
2014-05-11 12:50       ` Jann Horn
     [not found]         ` <20140511125006.GA16197-7cfQGs147y6a6lf8Wg2v7Z5kstrrjoWp@public.gmane.org>
2014-05-11 21:05           ` Josh Triplett
2014-05-11 21:05             ` Josh Triplett
2014-06-01 10:35             ` Maciej W. Rozycki
2014-06-01 10:35               ` Maciej W. Rozycki
2014-06-04 22:59               ` H. Peter Anvin
     [not found]                 ` <538FA4C7.2050206-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-06-06  9:02                   ` Maciej W. Rozycki
2014-06-06  9:02                     ` Maciej W. Rozycki
2014-05-10 17:18 ` Greg Kroah-Hartman
2014-05-10 17:18   ` Greg Kroah-Hartman
     [not found]   ` <20140510171845.GA799-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-05-10 19:36     ` Josh Triplett
2014-05-10 19:36       ` Josh Triplett

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=536D406D.2080508@zytor.com \
    --to=hpa-ymnouzjc4hwavxtiumwx3w@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.