From owner-freebsd-bugs@FreeBSD.ORG Fri Nov 11 17:50:05 2011 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA212106564A for ; Fri, 11 Nov 2011 17:50:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id AF32A8FC18 for ; Fri, 11 Nov 2011 17:50:05 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id pABHo40K029187 for ; Fri, 11 Nov 2011 17:50:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id pABHo43b029186; Fri, 11 Nov 2011 17:50:04 GMT (envelope-from gnats) Resent-Date: Fri, 11 Nov 2011 17:50:04 GMT Resent-Message-Id: <201111111750.pABHo43b029186@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Ian Lepore Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 968FF106566B for ; Fri, 11 Nov 2011 17:46:31 +0000 (UTC) (envelope-from ilepore@damnhippie.dyndns.org) Received: from qmta13.emeryville.ca.mail.comcast.net (qmta13.emeryville.ca.mail.comcast.net [76.96.27.243]) by mx1.freebsd.org (Postfix) with ESMTP id 7BFBF8FC15 for ; Fri, 11 Nov 2011 17:46:31 +0000 (UTC) Received: from omta04.emeryville.ca.mail.comcast.net ([76.96.30.35]) by qmta13.emeryville.ca.mail.comcast.net with comcast id vtkc1h0020lTkoCADtmPkR; Fri, 11 Nov 2011 17:46:23 +0000 Received: from damnhippie.dyndns.org ([24.8.232.202]) by omta04.emeryville.ca.mail.comcast.net with comcast id vthf1h0194NgCEG8Qthg5i; Fri, 11 Nov 2011 17:41:40 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id pABHkSKg063627 for ; Fri, 11 Nov 2011 10:46:28 -0700 (MST) (envelope-from ilepore@damnhippie.dyndns.org) Received: (from ilepore@localhost) by revolution.hippie.lan (8.14.5/8.14.4/Submit) id pABHkSjM021719; Fri, 11 Nov 2011 10:46:28 -0700 (MST) (envelope-from ilepore) Message-Id: <201111111746.pABHkSjM021719@revolution.hippie.lan> Date: Fri, 11 Nov 2011 10:46:28 -0700 (MST) From: Ian Lepore To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/162486: [patch] Cannot mount filesystem formatted by newfs_msdos on ARM X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Ian Lepore List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Nov 2011 17:50:06 -0000 >Number: 162486 >Category: bin >Synopsis: [patch] Cannot mount filesystem formatted by newfs_msdos on ARM >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Nov 11 17:50:04 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Ian Lepore >Release: FreeBSD 8.2-STABLE arm >Organization: Symmetricom, Inc. >Environment: FreeBSD tflex 8.2-STABLE FreeBSD 8.2-STABLE #29: Tue Oct 11 13:32:35 UTC 2011 root@revolution.hippie.lan:/usr/obj/arm/usr/src/sys/TFLEX arm >Description: A filesystem formated with newfs_msdos on an ARM system cannot be mounted on ARM or other architectures. The problem turned out to be ARM ABI structure packing. More information is available in this mail thread: http://lists.freebsd.org/pipermail/freebsd-arm/2011-October/003106.html >How-To-Repeat: >Fix: --- newfs_msdos.diff begins here --- Index: sbin/newfs_msdos/newfs_msdos.c =================================================================== RCS file: /local/base/FreeBSD-CVS/src/sbin/newfs_msdos/newfs_msdos.c,v retrieving revision 1.37 diff -u -p -r1.37 newfs_msdos.c --- sbin/newfs_msdos/newfs_msdos.c 12 Jul 2011 10:07:07 -0000 1.37 +++ sbin/newfs_msdos/newfs_msdos.c 11 Nov 2011 17:31:11 -0000 @@ -99,7 +99,7 @@ static const char rcsid[] = struct bs { u_int8_t bsJump[3]; /* bootstrap entry point */ u_int8_t bsOemName[8]; /* OEM name and version */ -}; +} __packed; struct bsbpb { u_int8_t bpbBytesPerSec[2]; /* bytes per sector */ @@ -114,7 +114,7 @@ struct bsbpb { u_int8_t bpbHeads[2]; /* drive heads */ u_int8_t bpbHiddenSecs[4]; /* hidden sectors */ u_int8_t bpbHugeSectors[4]; /* big total sectors */ -}; +} __packed; struct bsxbpb { u_int8_t bpbBigFATsecs[4]; /* big sectors per FAT */ @@ -124,7 +124,7 @@ struct bsxbpb { u_int8_t bpbFSInfo[2]; /* file system info sector */ u_int8_t bpbBackup[2]; /* backup boot sector */ u_int8_t bpbReserved[12]; /* reserved */ -}; +} __packed; struct bsx { u_int8_t exDriveNumber; /* drive number */ @@ -133,7 +133,7 @@ struct bsx { u_int8_t exVolumeID[4]; /* volume ID number */ u_int8_t exVolumeLabel[11]; /* volume label */ u_int8_t exFileSysType[8]; /* file system type */ -}; +} __packed; struct de { u_int8_t deName[11]; /* name and extension */ @@ -143,7 +143,7 @@ struct de { u_int8_t deMDate[2]; /* creation date */ u_int8_t deStartCluster[2]; /* starting cluster */ u_int8_t deFileSize[4]; /* size */ -}; +} __packed; struct bpb { u_int bpbBytesPerSec; /* bytes per sector */ --- newfs_msdos.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: