From patchwork Wed Sep 30 18:21:09 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Jezak X-Patchwork-Id: 57965 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bilbo.ozlabs.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.5 X-Original-To: tony@bakeyournoodle.com Delivered-To: tony@bilbo.ozlabs.org Received: from bilbo.ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id C10EDB7C08 for ; Thu, 1 Oct 2009 04:29:39 +1000 (EST) X-Greylist: delayed 496 seconds by postgrey-1.32 at bilbo; Thu, 01 Oct 2009 04:29:37 EST Received: from QMTA08.westchester.pa.mail.comcast.net (qmta08.westchester.pa.mail.comcast.net [76.96.62.80]) by ozlabs.org (Postfix) with ESMTP id 1D2F5B7BD6 for ; Thu, 1 Oct 2009 04:29:36 +1000 (EST) Received: from OMTA15.westchester.pa.mail.comcast.net ([76.96.62.87]) by QMTA08.westchester.pa.mail.comcast.net with comcast id mzm71c0021swQuc586LqHa; Wed, 30 Sep 2009 18:20:50 +0000 Received: from [192.168.1.101] ([98.219.163.182]) by OMTA15.westchester.pa.mail.comcast.net with comcast id n6Th1c00D3wS4Q23b6Thh7; Wed, 30 Sep 2009 18:27:42 +0000 Message-ID: <4AC3A195.20302@gentoo.org> Date: Wed, 30 Sep 2009 14:21:09 -0400 From: Joseph Jezak User-Agent: Thunderbird 2.0.0.22 (X11/20090701) MIME-Version: 1.0 To: Roman Rakus Subject: Re: Possible ofpath bug? References: <4A9683B3.8060502@redhat.com> In-Reply-To: <4A9683B3.8060502@redhat.com> Cc: yaboot-devel@lists.ozlabs.org X-BeenThere: yaboot-devel@lists.ozlabs.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Technical and development discussion regarding yaboot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: yaboot-devel-bounces+tony=bakeyournoodle.com@lists.ozlabs.org Errors-To: yaboot-devel-bounces+tony=bakeyournoodle.com@lists.ozlabs.org Status: RO X-Status: A Content-Length: 4308 Lines: 136 Does this patch help? I wrote this for a Gentoo user who was having trouble with ofpath as seen in this bug: http://bugs.gentoo.org/show_bug.cgi?id=253614 -Joe --- /usr/sbin/ofpath 2008-08-03 04:00:35.000000000 -0400 +++ ofpath 2009-01-09 13:46:12.000000000 -0500 @@ -337,15 +337,18 @@ ide_ofpath() { - if [ ! -L "/proc/ide/$DEVNODE" ] ; then + if [ ! -L "/proc/ide/$DEVNODE" ] && [ ! -e "/sys/block/$DEVNODE" ] ; then echo 1>&2 "$PRG: /dev/$DEVNODE: Device not configured" return 1 fi - local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )" - if [ -z "$IDEBUS" ] ; then - echo 1>&2 "$PRG: BUG: IDEBUS == NULL" - return 1 + if [ -L "/proc/ide/$DEVNODE" ] ; then + local USE_OLD_PROC=1 + local IDEBUS="$(v=`readlink /proc/ide/$DEVNODE` ; echo ${v%%/*} )" + if [ -z "$IDEBUS" ] ; then + echo 1>&2 "$PRG: BUG: IDEBUS == NULL" + return 1 + fi fi case "$(uname -r)" in @@ -363,7 +366,8 @@ echo 1>&2 "$PRG: Unable to determine sysfs mountpoint" return 1 fi - local OF1275IDE="${SYS}/block/${DEVNODE}/device/../../devspec" + local OF1275IDE=$(cd -P "${SYS}/block/${DEVNODE}/device" && pwd) + OF1275IDE="${OF1275IDE}/../../devspec" ;; *) local OF1275IDE="/proc/ide/$IDEBUS/devspec" @@ -402,34 +406,41 @@ return 1 fi - if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then - echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist" - return 1 - fi - - case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in - ide|ata) - local MASTER="/disk@0" - local SLAVE="/disk@1" - ;; - pci-ide|pci-ata) - local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0" - local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1" - ;; - scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal. - local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))" - local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))" - ;; - spi) - local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0" - local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1" - ;; - *) - echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\"" - return 1 - ;; - esac + + if [ "${USE_OLD_PROC}" = "1" ] ; then + if [ ! -f "/proc/ide/${IDEBUS}/channel" ] ; then + echo 1>&2 "$PRG: KERNEL BUG: /proc/ide/${IDEBUS}/channel does not exist" + return 1 + fi + case "$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)" in + ide|ata) + local MASTER="/disk@0" + local SLAVE="/disk@1" + ;; + pci-ide|pci-ata) + local MASTER="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@0" + local SLAVE="/@$(cat /proc/ide/${IDEBUS}/channel)/disk@1" + ;; + scsi) ## some lame controllers pretend they are scsi, hopefully all kludges are created equal. + local MASTER="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 0))" + local SLAVE="/@$(($(cat /proc/ide/${IDEBUS}/channel) * 2 + 1))" + ;; + spi) + local MASTER="/disk@$(cat /proc/ide/${IDEBUS}/channel),0" + local SLAVE="/disk@$(cat /proc/ide/${IDEBUS}/channel),1" + ;; + *) + echo 1>&2 "$PRG: Unsupported IDE device type: \"$(cat /proc/device-tree${DEVSPEC}/device_type 2> /dev/null)\"" + return 1 + ;; + esac + else + ### I don't know what other disks would look like... FIXME + local MASTER="/disk@0" + local SLAVE="/disk@1" + fi + case "$DEVNODE" in hda|hdc|hde|hdg|hdi|hdk|hdm|hdo) echo "${DEVSPEC}${MASTER}:$PARTITION"