miibus, ed0, and the realpath security advisory

Darren Henderson darren at nighttide.net
Tue Aug 5 06:52:15 PDT 2003

I cvsup'd on 7/3 after this week's realpath advisory, Rebuilt several
4.8-STABLE systems - most went fine. One system, an old 133Mhz machine
that acts as a firewall had several problems that weren't present with a
cvsup from 6/23. dmesg and kernel config below.


I assume this one is harmless but it is new:
bios32: Bad BIOS32 Service Directory

Same for this:
pcibios: No call entry point

This is the one causing problems:

module_register: module miibus/ukphy already exists!
linker_file_sysinit "miibus.ko" failed to register! 17
module_register: module pci/ed already exists!
linker_file_sysinit "if_ed.ko" failed to register! 17

miibus and ed0 are statically linked yet these still show up.  kldstat
shows that if_ed and miibus have been dynamically loaded even though they
are already in the kernel.

I see numerous mentions of this in recent mails but no explanation or work
around. Difficult to pin down but we begin to see network aberations
(traffic stops flowing through dc1) in the system after its run for
awhile (20 minutes) and the system has to be rebooted.

Remove ed0 from the kernel everything works fine except ed0 is missing,
(not dynamically loaded this time). miibus no longer shows up in kldstat
so the statically linked version is running.

Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 4.8-STABLE #0: Mon Aug  4 21:48:23 EDT 2003
    darren at olmec.nighttide.net:/usr/obj/usr/src/sys/JASPER
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 132632337 Hz
CPU: Pentium/P54C (132.63-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x52b  Stepping = 11
real memory  = 83886080 (81920K bytes)
avail memory = 78401536 (76564K bytes)
bios32: Bad BIOS32 Service Directory
Preloaded elf kernel "kernel" at 0xc031b000.
Intel Pentium detected, installing workaround for F00F bug
md0: Malloc disk
pcibios: No call entry point
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
isab0: <Intel 82371FB PCI to ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
pci0: <Intel PIIX ATA controller> at 7.1
bt0: <Buslogic Multi-Master SCSI Host Adapter> port 0xfcec-0xfcef irq 9 at device 17.0 on pci0
bt0: BT-946C FW Rev. 4.25J Narrow SCSI Host Adapter, SCSI ID 7, 100 CCBs
pci0: <S3 Trio graphics accelerator> at 18.0 irq 11
dc0: <ADMtek AN985 10/100BaseTX> port 0xf800-0xf8ff mem 0xf0dffc00-0xf0dfffff irq 11 at device 19.0 on pci0
dc0: Ethernet address: 00:20:78:11:ac:82
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <ADMtek AN985 10/100BaseTX> port 0xf400-0xf4ff mem 0xf0dff800-0xf0dffbff irq 11 at device 20.0 on pci0
dc1: Ethernet address: 00:20:78:11:ac:8f
miibus1: <MII bus> on dc1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xcbfff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse Explorer, device ID 4
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
ed0 at port 0x340-0x35f iomem 0xd8000 irq 10 on isa0
ed0: address 00:40:05:1f:13:a0, type NE2000 (16 bit)
sbc0: <SoundBlaster 16> at port 0x220-0x22f irq 5 drq 1 flags 0x15 on isa0
pcm0: <SB16 DSP 4.13> on sbc0
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 100 packets/entry by default
Waiting 15 seconds for SCSI devices to settle
sa0 at bt0 bus 0 target 3 lun 0
sa0: <HP C1533A 9503> Removable Sequential Access SCSI-2 device
sa0: 10.000MB/s transfers (10.000MHz, offset 8)
da0 at bt0 bus 0 target 0 lun 0
da0: <SEAGATE ST39216N 0010> Fixed Direct Access SCSI-3 device
da0: 10.000MB/s transfers (10.000MHz, offset 15), Tagged Queueing Enabled
da0: 8761MB (17942584 512 byte sectors: 255H 63S/T 1116C)
cd0 at bt0 bus 0 target 6 lun 0
cd0: <PLEXTOR CD-ROM PX-20TS 1.00> Removable CD-ROM SCSI-2 device
cd0: 10.000MB/s transfers (10.000MHz, offset 15)
cd0: cd present [326227 x 2048 byte records]
Mounting root from ufs:/dev/da0s1a
module_register: module miibus/ukphy already exists!
linker_file_sysinit "miibus.ko" failed to register! 17
module_register: module pci/ed already exists!
linker_file_sysinit "if_ed.ko" failed to register! 17

machine		i386
cpu		I586_CPU
ident		JASPER

# should calc this its own now
#maxusers	32
maxusers        0

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPDIVERT
options		ICMP_BANDLIM		#Rate limit bad replies

options         MAXMEM="(80*1024)"
options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	MFS			#Memory Filesystem
#options 	NFS_ROOT		#NFS usable as root device, NFS required
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=15000	#Delay (in ms) before probing SCSI
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	P1003_1B		#Posix P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev

device		isa
device		pci

# Floppy drives
device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0

device bt0 at isa? #device aha0 at isa? #device aic0 at isa?

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1 flags 0x1
device		psm0	at atkbdc? irq 12

device		vga0	at isa?

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
#device		sc0	at isa? flags 0x100
device		sc0	at isa?

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server on a vt console
#options 	FAT_CURSOR		# start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options 	PCVT_SCANSET=2		# IBM keyboards are non-std

# Floating point support - do not disable.
device		npx0	at nexus? port IO_NPX irq 13

# PCCARD (PCMCIA) support
#device   	pcic0   at isa?
#device		card
#device		pcic0	at isa? irq 0 port 0x3e0 iomem 0xd0000
#device          ray

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
#device		sio1	at isa? port IO_COM2 irq 3
#device		sio2	at isa? disable port IO_COM3 irq 5
#device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
#device		ppc0	at isa? irq 7
#device		ppbus		# Parallel port bus (required)
#device		lpt		# Printer

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
device		dc		# DEC/Intel 21143 and various workalikes

# ISA Ethernet NICs.
device		ed0	at isa? port 0x340 irq 10 iomem 0xd8000

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
#pseudo-device	ppp	1	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	md		# Memory "disks"

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device	bpf		#Berkeley packet filter

#device		pcm0	at isa? irq 5 drq 1 flags 0x0
device		pcm
device		sbc0	at isa? port 0x220 irq 5 drq 1 flags 0x15

Darren Henderson                                  darren at nighttide.net

                   Help fight junk e-mail, visit http://www.cauce.org/

More information about the freebsd-questions mailing list