A tiny Perl bug?

2000-11-22 Thread Stephen McKay

I was trying to get FreeBSD 4.2-BETA to compile under FreeBSD 3.4 when
I found that the use of the new setresgid() and setresuid() system
calls were causing the perl5 compile to fail.  I got around this using
NOPERL=yup but while investigating I noticed an apparent bug in the use
of setresgid() and propose this patch:

Index: mg.c
===
RCS file: /cvs/src/contrib/perl5/mg.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 mg.c
--- mg.c2000/08/20 08:42:14 1.1.1.4
+++ mg.c2000/11/22 12:01:32
@@ -1926,7 +1926,7 @@
(void)setregid((Gid_t)PL_gid, (Gid_t)-1);
 #else
 #ifdef HAS_SETRESGID
-  (void)setresgid((Gid_t)PL_gid, (Gid_t)-1, (Gid_t) 1);
+  (void)setresgid((Gid_t)PL_gid, (Gid_t)-1, (Gid_t)-1);
 #else
if (PL_gid == PL_egid)  /* special case $( = $) */
(void)PerlProc_setgid(PL_gid);

I assume this was just a typo.  I can't think of any reason to try to
set the saved uid to daemon.  I'd whip in and commit this myself, but
I'm sure there are "vendor branch considerations", and I've never
found out what's involved with that.

And piggybacking a slightly wider issue:  The cross-tools section of
Makefile.inc1 is supposed to address the use of new system calls and
such in build tools, right?  Can we forget about the old "try to use
the new syscall and do something else if it isn't there" code?  And all
we need to do to fix my migration problem is to MFC marcel's miniperl
cross-build fix?  Right?

Otherwise I have all this blather I was going to say about using fancy
new syscalls in perl just to emulate old syscalls we already have, and
the way that makes upgrading harder.  But I don't have to go on about
that, it seems. :-)

Stephen.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: No console on AlphaServer 2000 4/233 4.2-RC2

2000-11-22 Thread Andrew Gallatin


John W. De Boskey writes:
  
  Hi,
  
 Console, console, where's the console?

The SRM console is using a TGA video card as the console output
device.  TGA is not supported by syscons.  So FreeBSD is forced to use
the serial console instead...  You can "fix" this by using just about
any $10 pci vga card you happen to have laying around in place of the
TGA card.  Or hook up a 9600 8,n,1 connection to the 1st serial port
and tell the srm to use it as a console ( set console serial)

  
  and dmesg: (Yes, the 1st 2 lines are from dmesg, and I cannot
  find where they are coming from yet).

  Unrecognized boot flag '0'.
  Unrecognized boot flag ','.

They're coming from the kernel, I think.  You probably have
'boot_osflags' set to something like '0,a' in the srm console.
Clear that variable, or set it to "a" and those messages will go
away. 


  pci0: unknown card (vendor=0x1011, dev=0x0004) at 6.0 irq 32

FWIW, this is the TGA card.

Drew


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Laptops and sc0/vt0 consoles

2000-11-22 Thread Steve Horan

Hi,

Apologies upfront if anything I ask/say has already been covered, I'm
somwhat limited in my resources at present.

In my past experience, FreeBSD hasn't agreed very well with IBM
thinkpad laptops, unless you were using the vt0 console driver.

This makes me ask a couple of questions:

1) Does vt0 work for everything? Or only laptops? (my understanding
   is that it works for "everything"
2) If 1) is true, why doesn't the kernel on install floppies/cd's use
   vt0 instead of sc0.

I haven't been able to test with anything post 3.4, so again,
apologies if sc0 has been fixed to work with thinkpads etc.

Just thought this could be worth raising, would be curious of peoples
thoughts.

Regards,

sjh.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Laptops and sc0/vt0 consoles

2000-11-22 Thread Nate Williams

 
 Apologies upfront if anything I ask/say has already been covered, I'm
 somwhat limited in my resources at present.
 
 In my past experience, FreeBSD hasn't agreed very well with IBM
 thinkpad laptops, unless you were using the vt0 console driver.

This is *VERY* old information.  When Pentium's were introduced
(755/560) series, it has no longer been a necessity.

The old 486 laptops need vt0, but anything newer works fine with sc0.

(I speak from experience, having had an IBM laptop for 7-8 years, and
being responsible for writing or integrating the code in FreeBSD to
support IBM Thinkpads.)

I'm also typing on a ThinkPad right now, which is my 'main' platform,
and it's doing fine with syscons, as have my previous 3 ThinkPads.



Nate


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: No console on AlphaServer 2000 4/233 4.2-RC2

2000-11-22 Thread Wilko Bulte

On Wed, Nov 22, 2000 at 09:31:50AM -0500, Andrew Gallatin wrote:

 John W. De Boskey writes:
   

   and dmesg: (Yes, the 1st 2 lines are from dmesg, and I cannot
   find where they are coming from yet).
 
   Unrecognized boot flag '0'.
   Unrecognized boot flag ','.
 
 They're coming from the kernel, I think.  You probably have
 'boot_osflags' set to something like '0,a' in the srm console.

Probably a leftover from a previous VMS life: 0,0 is for VMS.

-- 
Wilko Bulte Arnhem, the Netherlands
[EMAIL PROTECTED]   http://www.freebsd.org  http://www.nlfug.nl



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Poul-Henning Kamp


The attached patch is a "proof-of-concept" on which I would like
to get some comments:

It bugs me big time that the output from /etc/rc and all other output
to /dev/console is volatile and lost once it scrolls of your console.

It particular bugs me for systems which are configured with a modem
on a serial port as console, if something choked badly in /etc/rc
I will never know.

(Don't tell me to use a SilentWriter or DecWriter as console, OK ?
Been There, Done That, Got The Piles Of Paper To Prove It. :-)

Ideally our console would be much more functional, but that is a project
which would fall sideways off my todo list if I tried to balance it there.

(If anybody is looking for a medium complex kernel task, a new console
system is a place to look.  Enquire within).

So I though about it from a "how little can we get away with" and realized
that by simply grabbing a copy of everything written to /dev/console and
feeding it to syslogd would gain us a lot of mileage.

Now, there are several issues to understand here, so please read on before
you apply paint to this bikeshed:

By "/dev/console" output I mean just and only that.  Characters
which arrive by write(2)/writev(2) on a fd opened to "/dev/console".

Kernel printfs are not /dev/console output in this context.

Characters written directly to your console device ("/dev/ttyd0",
"/dev/ttyv0" or "/dev/cuaa0") are *not* /dev/console output either.

Input from /dev/console are not part of this.  You will not be able
to see the answers people give fsck.

The output do of course still also arrive on your console device.

Obviously, if syslogd were to write these messages back to /dev/console
bad things would happen.  Syslogd may need to gain a tabu there.

The formatting cannot be preserved.  If somebody were to:
echo -n "You're screwed now --- "  /dev/console
we would never see the message in syslogd if the code waited
for the final '\n' to arrive.  (I guess a timeout based solution
could be feasible, what do people think ?)

In this patch I have deliberatly output a '"' in front of all
messages, this is merely for debugging right now.

The patch probably has all sorts of issues, style, locking, you name
it.  It is only intended as a proof-of-concept patch.

Sample output from /var/log/messages attached below.

Comments, volounteers, ideas most welcome...

Poul-Henning

Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "swapon: adding /dev/ad1s1b as 
swap device
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "swapon: adding /dev/ad0s1b as 
swap device
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "Automatic boot in progress...
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad0s1a: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "FILESYSTEM CLEAN; SKIPPING 
CHECKS
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad0s1a: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "clean, 134807 free 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "(823 frags, 16748 blocks, 
0.4% fragmentation)
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad1s1e: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "FILESYSTEM CLEAN; SKIPPING 
CHECKS
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad1s1e: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "clean, 184706 free 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "(138 frags, 23071 blocks, 
0.1% fragmentation)
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad1s1f: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "FILESYSTEM CLEAN; SKIPPING 
CHECKS
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad1s1f: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "clean, 1775231 free 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "(13343 frags, 220236 blocks, 
0.7% fragmentation)
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad0s1e: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "FILESYSTEM CLEAN; SKIPPING 
CHECKS
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ad0s1e: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "clean, 2032838 free 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "(14 frags, 254103 blocks, 
0.0% fragmentation)
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ccd0c: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "FILESYSTEM CLEAN; SKIPPING 
CHECKS
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "/dev/ccd0c: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "clean, 3464429 free 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "(3245 frags, 865296 blocks, 
0.1% fragmentation)
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "Can't use /entropy as an 
entropy file, trying other sources
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "cat: 
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: "malloc.conf
Nov 22 21:16:38 console.info syv /boot/kernel/kernel: ": 
Nov 22 

Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Ashley Penney

On Wed, Nov 22, 2000 at 09:40:41PM +0100, Poul-Henning Kamp said:
 
 The attached patch is a "proof-of-concept" on which I would like
 to get some comments:
 
I'm only a moronic user, but this would make my life easier.  My machine
switches into 132x43 on startup, and I always lose the output.  So this
is just me saying "Yay for phk."

-- 
Pine vs Mutt :  trolld It's like the difference between playing with
yourself and getting head from a hot girl.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Dan Nelson

In the last episode (Nov 22), Poul-Henning Kamp said:
 The attached patch is a "proof-of-concept" on which I would like to
 get some comments:
 
 It bugs me big time that the output from /etc/rc and all other output
 to /dev/console is volatile and lost once it scrolls of your console.

SCO logs its startup by simply piping the output of its rc scripts
through "21 | tee -a /usr/adm/rc#.log".  We could do something
similar by wrapping everything after the "mount -a -t nonfs" command on
like 174 with

{


} 21 | tee -a /var/log/boot.log

-- 
Dan Nelson
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Poul-Henning Kamp

In message [EMAIL PROTECTED], Dan Nelson writes:
In the last episode (Nov 22), Poul-Henning Kamp said:
 The attached patch is a "proof-of-concept" on which I would like to
 get some comments:
 
 It bugs me big time that the output from /etc/rc and all other output
 to /dev/console is volatile and lost once it scrolls of your console.

SCO logs its startup by simply piping the output of its rc scripts
through "21 | tee -a /usr/adm/rc#.log".  We could do something
similar by wrapping everything after the "mount -a -t nonfs" command on
like 174 with

I've tried stuff like that and I didn't particularly like the result,
for one thing many programs (or maybe it was tee(1) itself) changed
buffering because of the pipe, which meant that the partial lines
like 
"starting standard daemons: inetd cron sendmail sshd."

would only arrive on the real console when the final \n arrived.

Another particular thing I remember was that some syslog-challenged 
daemons whine on /dev/console long after /etc/rc has finished.

Dump(8) will do something similar if you don't flip the tapes in
finite time.

So while it goes a long way, I think we need to provide more coverage
of "/dev/console" as a concept.

Poul-Henning

PS: As I said, a decently functional console subsystem would be a nice 
thing.  At the very least I would want to be able to specify:
console output to /dev/ttyd0, /dev/ttyv0 and /var/log/console
console input from /dev/ttyd0 or /dev/ttyv0.
and preferably with a scrollback buffer too.  Network consoles would
be nice as well.

--
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



sound card errors in -current ?

2000-11-22 Thread Poul-Henning Kamp


This is on a -current system when loading snd_maestro some time after boot.

pcm0: ESS Technology Maestro-2E port 0x1400-0x14ff irq 5 at device 8.0 on pci0
pcm0: chn_init() for (play:0) failed
pcm0: offset 0xfef7a000 exceeds limit. pcm0: chn_init() for (play:1) failed
pcm0: offset 0xfefa9000 exceeds limit. pcm0: chn_init() for (play:2) failed
pcm0: offset 0xfefb5000 exceeds limit. pcm0: chn_init() for (play:3) failed


--
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Garrett Wollman

On Wed, 22 Nov 2000 22:22:39 +0100, Poul-Henning Kamp [EMAIL PROTECTED] said:

 Another particular thing I remember was that some syslog-challenged 
 daemons whine on /dev/console long after /etc/rc has finished.

They can try, but by the time they do the console has already been
revoke()d, so they no longer have access to the real console.

I've thought about writing daemon(8) which will put these turkeys in
their place.  Just a Small Matter of Programming

-GAWollman



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Poul-Henning Kamp

In message [EMAIL PROTECTED], Garrett Wollman write
s:
On Wed, 22 Nov 2000 22:22:39 +0100, Poul-Henning Kamp [EMAIL PROTECTED] said:

 Another particular thing I remember was that some syslog-challenged 
 daemons whine on /dev/console long after /etc/rc has finished.

They can try, but by the time they do the console has already been
revoke()d, so they no longer have access to the real console.

I don't know what you consider "the real console", but opening
"/dev/console" and barfing on it works all the time.  (Well,
*almost* all the time, not if you have foobar'ed your serial
console but...)

--
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Kernel panic with ipfw pipes

2000-11-22 Thread Russell Vincent

The attached kernel panic occurs when a connection is made that
would pass through an ipfw pipe configured as:

ipfw add 1000 pipe 1 tcp from any 119 to any out
ipfw add 1001 pipe 2 tcp from any to any 119 in
ipfw pipe 1 config bw 64Kbit/s
ipfw pipe 2 config bw 64Kbit/s

I can reproduce this at will (and have the vmcore), so if anyone needs
more details, just let me know.

This is -current of a few days ago (18th Nov 2000, if I recall correctly).

 -Russell



GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
IdlePTD 4771840
initial pcb at 3de1e0
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x7f7b1028
fault code  = supervisor write, page not present
instruction pointer = 0x8:0xc0248899
stack pointer   = 0x10:0xc7098be4
frame pointer   = 0x10:0xc7098c30
code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags= interrupt enabled, resume, IOPL = 0
current process = 12 (swi6: clock)
trap number = 12
panic: page fault

syncing disks... 5 5 
done
Uptime: 1m27s

dumping to dev #ad/1, offset 131072
dump ata0: resetting devices .. done
64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 
5 4 3 2 1 
---
#0  dumpsys () at /b/src/sys/kern/kern_shutdown.c:477
477 if (dumping++) {
(kgdb) where
#0  dumpsys () at /b/src/sys/kern/kern_shutdown.c:477
#1  0xc01e26b3 in boot (howto=256) at /b/src/sys/kern/kern_shutdown.c:320
#2  0xc01e2ad8 in poweroff_wait (junk=0xc039e68f, howto=-966215744)
at /b/src/sys/kern/kern_shutdown.c:568
#3  0xc03386b8 in trap_fatal (frame=0xc7098ba4, eva=2138771496)
at /b/src/sys/i386/i386/trap.c:941
#4  0xc033843d in trap_pfault (frame=0xc7098ba4, usermode=0, eva=2138771496)
at /b/src/sys/i386/i386/trap.c:855
#5  0xc0337ef7 in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, tf_edi = 0, 
  tf_esi = 0, tf_ebp = -955675600, tf_isp = -955675696, tf_ebx = 1, 
  tf_edx = 2138771456, tf_ecx = -24083, tf_eax = -1063531204, 
  tf_trapno = 12, tf_err = 2, tf_eip = -1071347559, tf_cs = 8, 
  tf_eflags = 66118, tf_esp = -1054004288, tf_ss = -1054027776})
at /b/src/sys/i386/i386/trap.c:438
#6  0xc0248899 in ip_output (m0=0xc09bcd00, opt=0x0, ro=0xc12d2be4, flags=0, 
imo=0x0) at /b/src/sys/netinet/ip_output.c:806
#7  0xc023e526 in transmit_event (pipe=0xc12cd000)
at /b/src/sys/netinet/ip_dummynet.c:394
#8  0xc023e72b in ready_event (q=0xc12c2100)
at /b/src/sys/netinet/ip_dummynet.c:525
#9  0xc023f467 in dummynet_io (pipe_nr=1, dir=1, m=0xc09bcd00, ifp=0xc09ae400, 
ro=0xc7098d98, dst=0xc12729d0, rule=0xc123a3a0, flags=0)
at /b/src/sys/netinet/ip_dummynet.c:1062
#10 0xc024858b in ip_output (m0=0xc09bcd00, opt=0x0, ro=0xc7098d98, flags=0, 
imo=0x0) at /b/src/sys/netinet/ip_output.c:497
#11 0xc024f00c in tcp_respond (tp=0x0, ipgen=0xc09bcd3c, th=0xc09bcd50, 
m=0xc09bcd00, ack=2736966641, seq=0, flags=20)
at /b/src/sys/netinet/tcp_subr.c:458
#12 0xc024cfc3 in tcp_input (m=0xc09bcd00, off0=20, proto=6)
at /b/src/sys/netinet/tcp_input.c:2303
#13 0xc0244dd8 in ip_input (m=0xc09bcd00) at /b/src/sys/netinet/ip_input.c:729
#14 0xc023e53a in transmit_event (pipe=0xc12cef00)
at /b/src/sys/netinet/ip_dummynet.c:399
#15 0xc023e72b in ready_event (q=0xc12c2180)
at /b/src/sys/netinet/ip_dummynet.c:525
#16 0xc023eb63 in dummynet (unused=0x0) at /b/src/sys/netinet/ip_dummynet.c:660
#17 0xc01e9ad4 in softclock (dummy=0x0) at /b/src/sys/kern/kern_timeout.c:134
#18 0xc01d95cd in sithd_loop (dummy=0x0) at /b/src/sys/kern/kern_intr.c:227
(kgdb) quit


#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the NOTES configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.278 2000/09/20 17:30:20 wpaul Exp $

machine i386
cpu I586_CPU
cpu I686_CPU
ident   RV

how to mutex'ify a device driver

2000-11-22 Thread Archie Cobbs

As a relatively simple exercise in -current kernel programming,
I'm planning to mutex'ify the ichsmb(4) device driver (this is
a relatively simple driver that currently uses splhigh()). I'd
appreciate some feedback if what I'm doing is the right thing.

The plan is to give each instance of the device a mutex. This
mutex will be grabbed by both the top level code (when programming
the chip to do something or reading the results) and the interrupt
code (when servicing an interrupt).

So far so good.. but what I don't understand is what happens if
the interrupt thread has to block on the mutex? It seems like all
other devices sharing the same interrupt (and therefore thread)
could be indefinitely blocked from servicing their IRQ's. Or is
it just assumed that the top half will never hold the mutex for
a "long" time?

Thanks,
-Archie

__
Archie Cobbs * Packet Design * http://www.packetdesign.com


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



RE: how to mutex'ify a device driver

2000-11-22 Thread John Baldwin


On 23-Nov-00 Archie Cobbs wrote:
 As a relatively simple exercise in -current kernel programming,
 I'm planning to mutex'ify the ichsmb(4) device driver (this is
 a relatively simple driver that currently uses splhigh()). I'd
 appreciate some feedback if what I'm doing is the right thing.
 
 The plan is to give each instance of the device a mutex. This
 mutex will be grabbed by both the top level code (when programming
 the chip to do something or reading the results) and the interrupt
 code (when servicing an interrupt).

This should work.  Sort of.  You probably want to wait a bit until I commit my
cdevsw wrapper patches and an MP safe version of the psm(4) driver which will
help detail what has to happen.

 So far so good.. but what I don't understand is what happens if
 the interrupt thread has to block on the mutex? It seems like all
 other devices sharing the same interrupt (and therefore thread)
 could be indefinitely blocked from servicing their IRQ's. Or is
 it just assumed that the top half will never hold the mutex for
 a "long" time?

It the interrupt thread blocks on the mutex, then yes, that IRQ will be
blocked.  However, mutexes are intended to be held for relatively short periods
of time.  For example, you can't sleep (SSLEEP) with a mutex, so if you are
blocked, you won't be blocked for very long.  Also, since interrupt threads run
at a very high priority, it will run again as soon as the top half releases the
mutex.

 Thanks,
 -Archie

-- 

John Baldwin [EMAIL PROTECTED] -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



rtc-2000.09.22.tgz can't load on my system

2000-11-22 Thread S.W.Liu

My system is FreeBSD 5.0(src-cur.4612) , I want to run vmware2 , so I pkg_add 
rtc-2000.09.22.tgz. But when My computer starting, it say can't load rtc.ko, Execute 
error, Why?



¡Iì¹»®Þ±éݙ¨¥¶‰šŽŠÝ¢j­çH:+ƒ­†éì¹»®Þ~·žnÇ\ººÞžØ§¶›¡Ü¨~Ø^™ë,j


Re: Kernel panic with ipfw pipes

2000-11-22 Thread Bosko Milekic


  Hi,

  Please try this patch and report:

  http://people.freebsd.org/~bmilekic/ip_pipe.diff

  joe, it appears that this commit:

  Revision 1.114 / (download) - annotate - [select for diffs], Sun Oct 29
  01:05:07 2000 UTC (3 weeks, 4 days ago) by joe 
  Changes since 1.113: +7 -3 lines
  Diff to previous 1.113 (colored)

  Count per-address statistics for IP fragments.

  Requested by:   ru
  Obtained from:  BSD/OS

  is the cause of the crashes...

  joe, please verify that this is the correct fix and let me know so that I
  can commit.

On Wed, 22 Nov 2000, Russell Vincent wrote:

 The attached kernel panic occurs when a connection is made that
 would pass through an ipfw pipe configured as:
 
 ipfw add 1000 pipe 1 tcp from any 119 to any out
 ipfw add 1001 pipe 2 tcp from any to any 119 in
 ipfw pipe 1 config bw 64Kbit/s
 ipfw pipe 2 config bw 64Kbit/s
 
 I can reproduce this at will (and have the vmcore), so if anyone needs
 more details, just let me know.
 
 This is -current of a few days ago (18th Nov 2000, if I recall correctly).
 
  -Russell

  Thanks,
  Bosko Milekic
  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: RFC: /dev/console - /var/log/messages idea/patch

2000-11-22 Thread Garrett Wollman

On Wed, 22 Nov 2000 23:44:12 +0100, Poul-Henning Kamp [EMAIL PROTECTED] said:

 In message [EMAIL PROTECTED], Garrett Wollman write
 They can try, but by the time they do the console has already been
 revoke()d, so they no longer have access to the real console.

 I don't know what you consider "the real console", but opening
 "/dev/console" and barfing on it works all the time.

We are talking at cross purposes.

I am talking about programs which don't properly detach from their
controlling terminal (the console, in this case) and then periodically
warble things to standard error.  Luckily, such programs never seem to
bother to check the error returns.

-GAWollman



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



COMPAT_SVR4 broken after uipc_syscalls commit (1.77)

2000-11-22 Thread Danny J. Zerkel

The recent renaming of getsock() to holdsock() broke COMPAT_SVR4 (and
MISC_FS).

I have made a quick stab at fixing it up in
src/sys/compat/svr4/svr4_stream.c,
but I'm a little hesitent to figure out what is going on in
src/sys/miscfs/portal/portal_vfsops.c.

Note: I don't actually use COMPAT_SVR4 for anything, it just happened to
be in my
config and broke.

Any way, here is a possible fix.

-- Danny J. Zerkel
[EMAIL PROTECTED]

--- svr4_stream.c.orig  Thu Aug 31 18:54:05 2000
+++ svr4_stream.c   Wed Nov 22 22:39:00 2000
@@ -162,7 +162,7 @@
struct uio ktruio;
 #endif
 
-   error = getsock(p-p_fd, s, fp);
+   error = holdsock(p-p_fd, s, fp);
if (error)
return (error);
auio.uio_iov = mp-msg_iov;
@@ -174,13 +174,17 @@
auio.uio_resid = 0;
iov = mp-msg_iov;
for (i = 0; i  mp-msg_iovlen; i++, iov++) {
-   if ((auio.uio_resid += iov-iov_len)  0)
+   if ((auio.uio_resid += iov-iov_len)  0) {
+   fdrop(fp, p);
return (EINVAL);
+   }
}
if (mp-msg_name) {
error = getsockaddr(to, mp-msg_name, mp-msg_namelen);
-   if (error)
+   if (error) {
+   fdrop(fp, p);
return (error);
+   }
} else
to = 0;
if (mp-msg_control) {
@@ -229,6 +233,7 @@
 bad:
if (to)
FREE(to, M_SONAME);
+   fdrop(fp, p);
return (error);
 }
 
@@ -253,7 +258,7 @@
struct uio ktruio;
 #endif
 
-   error = getsock(p-p_fd, s, fp);
+   error = holdsock(p-p_fd, s, fp);


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



RE: COMPAT_SVR4 broken after uipc_syscalls commit (1.77)

2000-11-22 Thread Danny J. Zerkel

Okay, this time I'll even include the entire patch...

-- Danny J. Zerkel
[EMAIL PROTECTED]

--- svr4_stream.c.orig  Thu Aug 31 18:54:05 2000
+++ svr4_stream.c   Wed Nov 22 22:39:00 2000
@@ -162,7 +162,7 @@
struct uio ktruio;
 #endif
 
-   error = getsock(p-p_fd, s, fp);
+   error = holdsock(p-p_fd, s, fp);
if (error)
return (error);
auio.uio_iov = mp-msg_iov;
@@ -174,13 +174,17 @@
auio.uio_resid = 0;
iov = mp-msg_iov;
for (i = 0; i  mp-msg_iovlen; i++, iov++) {
-   if ((auio.uio_resid += iov-iov_len)  0)
+   if ((auio.uio_resid += iov-iov_len)  0) {
+   fdrop(fp, p);
return (EINVAL);
+   }
}
if (mp-msg_name) {
error = getsockaddr(to, mp-msg_name, mp-msg_namelen);
-   if (error)
+   if (error) {
+   fdrop(fp, p);
return (error);
+   }
} else
to = 0;
if (mp-msg_control) {
@@ -229,6 +233,7 @@
 bad:
if (to)
FREE(to, M_SONAME);
+   fdrop(fp, p);
return (error);
 }
 
@@ -253,7 +258,7 @@
struct uio ktruio;
 #endif
 
-   error = getsock(p-p_fd, s, fp);
+   error = holdsock(p-p_fd, s, fp);
if (error)
return (error);
auio.uio_iov = mp-msg_iov;
@@ -265,8 +270,10 @@
auio.uio_resid = 0;
iov = mp-msg_iov;
for (i = 0; i  mp-msg_iovlen; i++, iov++) {
-   if ((auio.uio_resid += iov-iov_len)  0)
+   if ((auio.uio_resid += iov-iov_len)  0) {
+   fdrop(fp, p);
return (EINVAL);
+   }
}
 #ifdef KTRACE
if (KTRPOINT(p, KTR_GENIO)) {
@@ -352,6 +359,7 @@
FREE(fromsa, M_SONAME);
if (control)
m_freem(control);
+   fdrop(fp, p);
return (error);
 }


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: Laptops and sc0/vt0 consoles

2000-11-22 Thread Boris Popov

On Wed, 22 Nov 2000, Nate Williams wrote:

  In my past experience, FreeBSD hasn't agreed very well with IBM
  thinkpad laptops, unless you were using the vt0 console driver.
 
 This is *VERY* old information.  When Pentium's were introduced
 (755/560) series, it has no longer been a necessity.
 
 The old 486 laptops need vt0, but anything newer works fine with sc0.

Hmm, then I'm the lucky one :). There is an old ThinkPad 340
(486/4MB/120MB) which runs heavily trimmed down preSMPNG -current with sc
driver. The only caveat is that one should specify a flag which disables
keyboard reset, because without it machine will silently reboot. Besides
that this ThinkPad works as gateway (even with PCMCIA ethernet card)
without any problems.

--
Boris Popov
http://www.butya.kz/~bp/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Confusing error messages from shell image activation

2000-11-22 Thread Mike Meyer

Could I get some feedback on URL:
http://www.freebsd.org/cgi/query-pr.cgi?pr=22755 ? It's just a
one-line kernel patch with some attendant updates in the kernel and
libc, but it makes dealing with broken #! scripts *much* saner, and no
one has even seen fit to comment on it yet :-(.

Thanx,
mike



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Accept credit cards on-line THE EASY WAY!

2000-11-22 Thread turehu

No set up fees
No monthly interest
No minimum transaction fees
The only charge is a small percentage of the cost of the transaction.
You can not lose money!
You only pay fees if you sell your product.
Get in the act and launch your online bussiness which will work for you 
24hrs a day,
seven days a week and it is worldwide.
Want to find out more? Go to: http://www.cyberturf.com/creditcard

If this Email has reached you by mistake, we apologize.
To remove your Email from the mailing list please send:
[EMAIL PROTECTED] 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message