Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 May 2003 10:30:29 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Alan Robinson <alan.robinson@fujitsu-siemens.com>
Cc:        freebsd-ia64@freebsd.org
Subject:   Re: /dev/kmem read return value is double requested value
Message-ID:  <20030530173029.GB568@dhcp01.pn.xcllnt.net>
In-Reply-To: <20030530132408.A3690@fujitsu-siemens.com>
References:  <20030530132408.A3690@fujitsu-siemens.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, May 30, 2003 at 01:24:08PM +0200, Alan Robinson wrote:
> 
> I was playing with a user-land program that read some data out
> of the kernel memory and noticed that the read() return value was
> twice what I was expecting. I think the error is in the mmrw() function
> in file sys/ia64/ia64/mem.c, removing the following lines seems to 
> fix the problem.
> 
>                 iov->iov_base = (char *)iov->iov_base + c;
>                 iov->iov_len -= c;
>                 uio->uio_offset += c;
>                 uio->uio_resid -= c;
> 
> I had a little look at some of the other sys/ARCH/ARCH/mem.c and some others
> seem to contain the same code so I might be wrong, then again so might the
> ARCHs.

If you see behaviour that's not particular to ia64, it's probably better
to post to arch@ or current@. More people hang out there, so there's a
bigger chance you get replies.

I don't think there's anything wrong with the lines you think we need to
remove.

> Note that the actual data transfered is OK, just the read() return value
> and the /dev/kmem file offset are wrong after returning from the read().

It helps if you demonstrate the behaviour with some trivial test program
that people can run too.

> PS is this the reason there is no gdb ?

No. There's currenty no gdb because it hasn't been ported yet.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030530173029.GB568>