svn commit: r190445 - in head/sys: amd64/linux32
compat/linprocfs compat/linux conf dev/ipmi modules/ipmi
modules/linprocfs
John Baldwin
jhb at freebsd.org
Thu Mar 26 14:59:13 PDT 2009
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
More information about the svn-src-all
mailing list