Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Mar 2009 17:58:27 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Doug Ambrisko <ambrisko@ambrisko.com>
Cc:        svn-src-head@freebsd.org, Doug Ambrisko <ambrisko@freebsd.org>, Roman Divacky <rdivacky@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org
Subject:   Re: svn commit: r190445 - in head/sys: amd64/linux32 compat/linprocfs compat/linux conf dev/ipmi modules/ipmi modules/linprocfs
Message-ID:  <200903261758.28547.jhb@freebsd.org>
In-Reply-To: <200903262129.n2QLTgV9076134@ambrisko.com>
References:  <200903262129.n2QLTgV9076134@ambrisko.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 26 March 2009 5:29:42 pm Doug Ambrisko wrote:
> Roman Divacky writes:
> | On Thu, Mar 26, 2009 at 05:14:23PM +0000, Doug Ambrisko wrote:
> | > Author: ambrisko
> | > Date: Thu Mar 26 17:14:22 2009
> | > New Revision: 190445
> | > URL: http://svn.freebsd.org/changeset/base/190445
> | > 
> | > Log:
> | >   Add stuff to support upcoming BMC/IPMI flashing of newer Dell machine
> | >   via the Linux tool.
> | >        -  Add Linux shim to ipmi(4)
> | >        -  Create a partitions file to linprocfs to make Linux fdisk see
> | >           disks.  This file is dynamic so we can see disks come and go.
> | >        -  Convert msdosfs to vfat in mtab since Linux uses that for
> | >           msdosfs.
> | >        -  In the Linux mount path convert vfat passed in to msdosfs
> | >           so Linux mount works on FreeBSD.  Note that tasting works
> | >           so that if da0 is a msdos file system
> | >                   /compat/linux/bin/mount /dev/da0 /mnt
> | >           works.
> | >        -  fix a 64it bug for l_off_t.
> | >   Grabing sh, mount, fdisk, df from Linux, creating a symlink of mtab to
> | >   /compat/linux/etc/mtab and then some careful unpacking of the Linux 
bmc
> | >   update tool and hacking makes it work on newer Dell boxes.  Note, 
probably
> | >   if you can't figure out how to do this, then you probably shouldn't be
> | >   doing it :-)
> | > 
> | > Added:
> | >   head/sys/dev/ipmi/ipmi_linux.c   (contents, props changed)
> | > Modified:
> | >   head/sys/amd64/linux32/linux.h
> | >   head/sys/compat/linprocfs/linprocfs.c
> | >   head/sys/compat/linux/linux_file.c
> | >   head/sys/conf/files.amd64
> | >   head/sys/conf/files.i386
> | >   head/sys/modules/ipmi/Makefile
> | >   head/sys/modules/linprocfs/Makefile
> | > 
> | > Modified: head/sys/amd64/linux32/linux.h
> | > 
==============================================================================
> | > --- head/sys/amd64/linux32/linux.h	Thu Mar 26 17:04:08 2009	(r190444)
> | > +++ head/sys/amd64/linux32/linux.h	Thu Mar 26 17:14:22 2009	(r190445)
> | > @@ -79,7 +79,7 @@ typedef l_ulong		l_ino_t;
> | >  typedef l_int		l_key_t;
> | >  typedef l_longlong	l_loff_t;
> | >  typedef l_ushort	l_mode_t;
> | > -typedef l_long		l_off_t;
> | > +typedef l_ulong		l_off_t;
> | 
> | where did you get this idea? my copy of linux 2.6.16 shows that off_t
> | is being declared as long. can you be more specific about the background
> | of this change? what does it fix?
> 
> Maybe you have another suggestion to fix this.  The problem showed up
> when doing a mmap of 0xcf79c000 into 0xffffffffcf79c000 also a mmap
> of 0xf0000 ended up the same way.  This caused it to fail.  Note this
> is only on amd64 with a Linux.  It didn't happen with a FreeBSD i386
> version on amd64.  Here is a sample test program:

I'm sure this can be easily fixed in the Linux mmap() handlers instead.  Do 
you know if your Linux binary is using mmap2() or the old mmap()?

-- 
John Baldwin



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