[openfirmware] r1655 - cpu/x86/pc/olpc/via
svn at openfirmware.info
svn at openfirmware.info
Sat Jan 9 01:35:42 CET 2010
Author: wmb
Date: 2010-01-09 01:35:42 +0100 (Sat, 09 Jan 2010)
New Revision: 1655
Modified:
cpu/x86/pc/olpc/via/devices.fth
Log:
Avoid memory leakage from "probe-usb" by creating the int and ext devaliases only once.
Modified: cpu/x86/pc/olpc/via/devices.fth
===================================================================
--- cpu/x86/pc/olpc/via/devices.fth 2010-01-09 00:20:44 UTC (rev 1654)
+++ cpu/x86/pc/olpc/via/devices.fth 2010-01-09 00:35:42 UTC (rev 1655)
@@ -338,6 +338,21 @@
devalias sd /sd/disk at 2
devalias net /wlan
+stand-init: Standard aliases
+ atest? if
+ " int" " /ide at 0/disk" $devalias
+ " ext" " /sd/disk at 2" $devalias
+ else
+ board-revision h# d28 < if \ B2 and earlier
+ " int" " /sd/disk at 1" $devalias
+ " ext" " /sd/disk at 2" $devalias
+ else
+ " ext" " /sd/disk at 1" $devalias
+ " int" " /sd/disk at 3" $devalias
+ then
+ then
+;
+
\ The "int" devalias is defined in report-disk at runtime, since it
\ varies between A-test and later boards.
@@ -360,19 +375,6 @@
" disk" " /usb at 10,2/disk" ?report-device \ USB 1.1
" disk" " /usb at 10,1/disk" ?report-device \ USB 1.1
" disk" " /usb at 10,0/disk" ?report-device \ USB 1.1
-
- atest? if
- " int" " /ide at 0/disk" $devalias
- " ext" " /sd/disk at 2" $devalias
- else
- board-revision h# d28 < if \ B2 and earlier
- " int" " /sd/disk at 1" $devalias
- " ext" " /sd/disk at 2" $devalias
- else
- " ext" " /sd/disk at 1" $devalias
- " int" " /sd/disk at 3" $devalias
- then
- then
;
: report-keyboard ( -- )
@@ -389,7 +391,15 @@
: report-net ( -- )
" /usb/ethernet" 2dup locate-device 0= if ( name$ phandle )
drop ( name$ )
- " net" 2swap $devalias ( )
+
+ \ Don't recreate the alias if it is already correct
+ " net" aliased? if ( name$ existing-name$ )
+ 2over $= if ( name$ )
+ 2drop exit ( -- )
+ then ( name$ )
+ then ( name$ )
+
+ " net" 2swap $devalias ( )
else ( name$ )
2drop ( )
then
More information about the openfirmware
mailing list