Re: another panic (mix ppp and usb to taste)

2001-08-30 Thread Nick Hibma


What you are doing doesn't work for sure. You are piping in and out of
the control enpoint which won't work. Perhaps

/usr/sbin/ppp -quiet -direct -nat  /dev/ugen0.1

would work, if there is an endpoint 1-in and an endpoint 1-out and they
are both related to data transfer. Normally this is  not the case. See
the 3Com 5605 modem.

USB is NOT a serial protocol. It has nothing in common with a serial
port.

Nick

P.S.: The reason why it crashes is that it looks for an endpoint
descriptor for endpoint 0 which doesn't exist. i'll fix that.


On Fri, 24 Aug 2001, Mikhail Teterin wrote:

 As I was trying to let the Palm Pilot connect to my desktop
 through usb using PPP, I tried to run

   /usr/sbin/ppp -quiet -direct -nat  /dev/ugen0

 While, perhaps, not the right way to do what I want (what is? aren't
 serial devices the simplest?), it should not panic (nothing should
 really). But it does, and quite repeatedly (some more comments after
 the trace):

 IdlePTD 4984832
 initial pcb at 3db040
 panicstr: bwrite: buffer is not busy???
 panic messages:
 ---
 Fatal trap 12: page fault while in kernel mode
 cpuid = 0; lapic.id = 0100
 fault virtual address   = 0x3
 fault code  = supervisor read, page not present
 instruction pointer = 0x8:0xc01d5a0b
 stack pointer   = 0x10:0xce7f1c4c
 frame pointer   = 0x10:0xce7f1c58
 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 = 442 (ppp)
 trap number = 12
 panic: page fault
 cpuid = 0; lapic.id = 0100
 boot() called on cpu#0

 syncing disks... panic: bwrite: buffer is not busy???
 cpuid = 0; lapic.id = 0100
 boot() called on cpu#0
 Uptime: 10m14s

 dumping to dev da0b, offset 131200
 dump ... 2 1 0
 ---
 [...]
 #12 0xc030b0bc in trap (frame={tf_fs = -1071644648, tf_es = -830734320,
   tf_ds = 16777232, tf_edi = 64, tf_esi = 0, tf_ebp = -830530472,
   tf_isp = -830530504, tf_ebx = -1049243648, tf_edx = -1049243428,
   tf_ecx = 34, tf_eax = 0, tf_trapno = 12, tf_err = 0,
   tf_eip = -1071818229, tf_cs = 8, tf_eflags = 66178,
   tf_esp = -830530412, tf_ss = -1049288448})
 at ../../../i386/i386/trap.c:405
 #13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
 at ../../../dev/usb/ugen.c:1369
 #14 0xc01ed604 in spec_poll (ap=0xce7f1c94)
 at ../../../fs/specfs/spec_vnops.c:333
 #15 0xc01ed27d in spec_vnoperate (ap=0xce7f1c94)
 at ../../../fs/specfs/spec_vnops.c:119
 #16 0xc0252333 in vn_poll (fp=0xc17328c0, events=64, cred=0xc1734700,
 p=0xce7abb80) at vnode_if.h:381
 #17 0xc0228b8b in selscan (p=0xce7abb80, ibits=0xce7f1d48,
 obits=0xce7f1d3c, nfd=1) at ../../../sys/file.h:192
 #18 0xc02286b5 in select (p=0xce7abb80, uap=0xce7f1f80)
 at ../../../kern/sys_generic.c:772
 #19 0xc030bf2d in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
   tf_edi = 134842880, tf_esi = 134842880, tf_ebp = 0,
   tf_isp = -830529580, tf_ebx = 3, tf_edx = 134996480,
   tf_ecx = 134996352, tf_eax = 93, tf_trapno = 12, tf_err = 2,
   tf_eip = 673178596, tf_cs = 31, tf_eflags = 643,
   tf_esp = -1077937708, tf_ss = 47}) at ../../../i386/i386/trap.c:1129
 (kgdb) up 13
 #13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
 at ../../../dev/usb/ugen.c:1369
 1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
 (kgdb) p sce
 $1 = (struct ugen_endpoint *) 0x0
 (kgdb) l
 1364printf(ugenpoll: no pipe\n);
 1365return (EIO);
 1366}
 1367#endif
 1368s = splusb();
 1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
 1370case UE_INTERRUPT:
 1371if (events  (POLLIN | POLLRDNORM)) {
 1372if (sce-q.c_cc  0)
 1373revents |= events  (POLLIN | POLLRDNORM);
 (kgdb) p events
 $3 = 64
 (kgdb) p s
 No symbol s in current context.
 (kgdb) p revents
 $5 = 0

 What I don't understand, is -- there is a check, just a few lines
 above:
 if (sce == NULL)
 return (EINVAL);

 How come it is not being caught there? Thanks,

 --
  |\__-__/|
 _/ :  :::\_
'__--( ..::)--__`  -mi
 If you have a  /  _- \/  :::\/ -_
 serious knowledge/   / :.   .\   \
 about computers --  | |   Ok, let's say you broke
 keep it in a secret!   _|/ ::\|_  the wall with your head
 Rules of dating,   /  /:/:_::\::\:.\  What are you going to
 'Playboy', ? 1994   | :|  ..:(_/ \::|::|::|   do in the next cell?
 | :|:. ::|: |::|.:| Stanislaw J. Lec
  \ |::  :::_/::/: :|:/
((___\\/___/___))



To Unsubscribe: send 

Re: another panic (mix ppp and usb to taste)

2001-08-30 Thread mi

On 30 Aug, Nick Hibma wrote:
   /usr/sbin/ppp -quiet -direct -nat  /dev/ugen0.1
 

I was confused by the following from ppp's man-page:
-direct
 This is used for receiving incoming connections.  ppp ignores
 the ``set device'' line and uses descriptor 0 as the link.

which seems to imply, I don't need to care the descriptor 1 :-)

 USB is NOT a  serial protocol. It has nothing in  common with a serial
 port.

The reason I tried this, was finding a Linux how-to guide for making the
ppp  over USB  work between  a PDA  (Palm or  Handsrping) and  the Linux
machine.  It mentioned  having  to install  the  Handspring module  or
something to work with /dev/ttyUSB (sp?).  I figured, I'll try it with a
ugen-device...

Could  we have  such a  device-module too,  BTW? Similar  to the  serial
modems we  already have? Or  will you just I  suggest I write  it myself
:-)?

 P.S.:  The reason  why it  crashes is  that it  looks for  an endpoint
 descriptor for endpoint 0 which doesn't exist. I'll fix that.

Yeah, but it seems, that just a few lines above the crash, it checks for
the sce being non-NULL... Or is it an optimization artifact?

Thanks,

-mi

 On Fri, 24 Aug 2001, Mikhail Teterin wrote:
 
 As I was trying to let the Palm Pilot connect to my desktop
 through usb using PPP, I tried to run

  /usr/sbin/ppp -quiet -direct -nat  /dev/ugen0

 While, perhaps, not the right way to do what I want (what is? aren't
 serial devices the simplest?), it should not panic (nothing should
 really). But it does, and quite repeatedly (some more comments after
 the trace):

 IdlePTD 4984832
 initial pcb at 3db040
 panicstr: bwrite: buffer is not busy???
 panic messages:
 ---
 Fatal trap 12: page fault while in kernel mode
 cpuid = 0; lapic.id = 0100
 fault virtual address   = 0x3
 fault code  = supervisor read, page not present
 instruction pointer = 0x8:0xc01d5a0b
 stack pointer   = 0x10:0xce7f1c4c
 frame pointer   = 0x10:0xce7f1c58
 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 = 442 (ppp)
 trap number = 12
 panic: page fault
 cpuid = 0; lapic.id = 0100
 boot() called on cpu#0

 syncing disks... panic: bwrite: buffer is not busy???
 cpuid = 0; lapic.id = 0100
 boot() called on cpu#0
 Uptime: 10m14s

 dumping to dev da0b, offset 131200
 dump ... 2 1 0
 ---
 [...]
 #12 0xc030b0bc in trap (frame={tf_fs = -1071644648, tf_es = -830734320,
   tf_ds = 16777232, tf_edi = 64, tf_esi = 0, tf_ebp = -830530472,
   tf_isp = -830530504, tf_ebx = -1049243648, tf_edx = -1049243428,
   tf_ecx = 34, tf_eax = 0, tf_trapno = 12, tf_err = 0,
   tf_eip = -1071818229, tf_cs = 8, tf_eflags = 66178,
   tf_esp = -830530412, tf_ss = -1049288448})
 at ../../../i386/i386/trap.c:405
 #13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
 at ../../../dev/usb/ugen.c:1369
 #14 0xc01ed604 in spec_poll (ap=0xce7f1c94)
 at ../../../fs/specfs/spec_vnops.c:333
 #15 0xc01ed27d in spec_vnoperate (ap=0xce7f1c94)
 at ../../../fs/specfs/spec_vnops.c:119
 #16 0xc0252333 in vn_poll (fp=0xc17328c0, events=64, cred=0xc1734700,
 p=0xce7abb80) at vnode_if.h:381
 #17 0xc0228b8b in selscan (p=0xce7abb80, ibits=0xce7f1d48,
 obits=0xce7f1d3c, nfd=1) at ../../../sys/file.h:192
 #18 0xc02286b5 in select (p=0xce7abb80, uap=0xce7f1f80)
 at ../../../kern/sys_generic.c:772
 #19 0xc030bf2d in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
   tf_edi = 134842880, tf_esi = 134842880, tf_ebp = 0,
   tf_isp = -830529580, tf_ebx = 3, tf_edx = 134996480,
   tf_ecx = 134996352, tf_eax = 93, tf_trapno = 12, tf_err = 2,
   tf_eip = 673178596, tf_cs = 31, tf_eflags = 643,
   tf_esp = -1077937708, tf_ss = 47}) at ../../../i386/i386/trap.c:1129
 (kgdb) up 13
 #13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
 at ../../../dev/usb/ugen.c:1369
 1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
 (kgdb) p sce
 $1 = (struct ugen_endpoint *) 0x0
 (kgdb) l
 1364printf(ugenpoll: no pipe\n);
 1365return (EIO);
 1366}
 1367#endif
 1368s = splusb();
 1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
 1370case UE_INTERRUPT:
 1371if (events  (POLLIN | POLLRDNORM)) {
 1372if (sce-q.c_cc  0)
 1373revents |= events  (POLLIN | POLLRDNORM);
 (kgdb) p events
 $3 = 64
 (kgdb) p s
 No symbol s in current context.
 (kgdb) p revents
 $5 = 0

 What I don't understand, is -- there is a check, just a few lines
 above:
 if (sce == NULL)
 return (EINVAL);

 How come it is not being caught there?


To Unsubscribe: send mail to [EMAIL PROTECTED]

Re: another panic (mix ppp and usb to taste)

2001-08-25 Thread Brian Somers

 As I was trying to let the Palm Pilot connect to my desktop
 through usb using PPP, I tried to run
 
   /usr/sbin/ppp -quiet -direct -nat  /dev/ugen0

FWIW, that should be:

/usr/sbin/ppp -quiet -direct -nat /dev/ugen0

as ppp -direct needs to be able to write to descriptor 0 too.  I'll 
leave Nick to comment on the USB side of things :*)

[.]
-- 
Brian [EMAIL PROTECTED][EMAIL PROTECTED]
  http://www.freebsd-services.com/brian@[uk.]FreeBSD.org
Don't _EVER_ lose your sense of humour !  brian@[uk.]OpenBSD.org



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



another panic (mix ppp and usb to taste)

2001-08-24 Thread Mikhail Teterin

As I was trying to let the Palm Pilot connect to my desktop
through usb using PPP, I tried to run

/usr/sbin/ppp -quiet -direct -nat  /dev/ugen0

While, perhaps, not the right way to do what I want (what is? aren't
serial devices the simplest?), it should not panic (nothing should
really). But it does, and quite repeatedly (some more comments after
the trace):

IdlePTD 4984832
initial pcb at 3db040
panicstr: bwrite: buffer is not busy???
panic messages:
---
Fatal trap 12: page fault while in kernel mode
cpuid = 0; lapic.id = 0100
fault virtual address   = 0x3
fault code  = supervisor read, page not present
instruction pointer = 0x8:0xc01d5a0b
stack pointer   = 0x10:0xce7f1c4c
frame pointer   = 0x10:0xce7f1c58
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 = 442 (ppp)
trap number = 12
panic: page fault
cpuid = 0; lapic.id = 0100
boot() called on cpu#0

syncing disks... panic: bwrite: buffer is not busy???
cpuid = 0; lapic.id = 0100
boot() called on cpu#0
Uptime: 10m14s

dumping to dev da0b, offset 131200
dump ... 2 1 0
---
[...]
#12 0xc030b0bc in trap (frame={tf_fs = -1071644648, tf_es = -830734320, 
  tf_ds = 16777232, tf_edi = 64, tf_esi = 0, tf_ebp = -830530472, 
  tf_isp = -830530504, tf_ebx = -1049243648, tf_edx = -1049243428, 
  tf_ecx = 34, tf_eax = 0, tf_trapno = 12, tf_err = 0, 
  tf_eip = -1071818229, tf_cs = 8, tf_eflags = 66178, 
  tf_esp = -830530412, tf_ss = -1049288448})
at ../../../i386/i386/trap.c:405
#13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
at ../../../dev/usb/ugen.c:1369
#14 0xc01ed604 in spec_poll (ap=0xce7f1c94)
at ../../../fs/specfs/spec_vnops.c:333
#15 0xc01ed27d in spec_vnoperate (ap=0xce7f1c94)
at ../../../fs/specfs/spec_vnops.c:119
#16 0xc0252333 in vn_poll (fp=0xc17328c0, events=64, cred=0xc1734700, 
p=0xce7abb80) at vnode_if.h:381
#17 0xc0228b8b in selscan (p=0xce7abb80, ibits=0xce7f1d48, 
obits=0xce7f1d3c, nfd=1) at ../../../sys/file.h:192
#18 0xc02286b5 in select (p=0xce7abb80, uap=0xce7f1f80)
at ../../../kern/sys_generic.c:772
#19 0xc030bf2d in syscall (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, 
  tf_edi = 134842880, tf_esi = 134842880, tf_ebp = 0, 
  tf_isp = -830529580, tf_ebx = 3, tf_edx = 134996480, 
  tf_ecx = 134996352, tf_eax = 93, tf_trapno = 12, tf_err = 2, 
  tf_eip = 673178596, tf_cs = 31, tf_eflags = 643, 
  tf_esp = -1077937708, tf_ss = 47}) at ../../../i386/i386/trap.c:1129
(kgdb) up 13
#13 0xc01d5a0b in ugenpoll (dev=0xc1752100, events=64, p=0xce7abb80)
at ../../../dev/usb/ugen.c:1369
1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
(kgdb) p sce
$1 = (struct ugen_endpoint *) 0x0
(kgdb) l
1364printf(ugenpoll: no pipe\n);
1365return (EIO);
1366}
1367#endif
1368s = splusb();
1369switch (sce-edesc-bmAttributes  UE_XFERTYPE) {
1370case UE_INTERRUPT:
1371if (events  (POLLIN | POLLRDNORM)) {
1372if (sce-q.c_cc  0)
1373revents |= events  (POLLIN | POLLRDNORM);
(kgdb) p events
$3 = 64
(kgdb) p s
No symbol s in current context.
(kgdb) p revents
$5 = 0

What I don't understand, is -- there is a check, just a few lines
above:
if (sce == NULL)
return (EINVAL);

How come it is not being caught there? Thanks,

-- 
 |\__-__/|
_/ :  :::\_  
   '__--( ..::)--__`-mi
If you have a  /  _- \/  :::\/ -_  
serious knowledge/   / :.   .\   \
about computers --  | | Ok, let's say you broke 
keep it in a secret!   _|/ ::\|_the wall with your head
Rules of dating,   /  /:/:_::\::\:.\  What are you going to
'Playboy', ? 1994   | :|  ..:(_/ \::|::|::| do in the next cell?
| :|:. ::|: |::|.:|   Stanislaw J. Lec
 \ |::  :::_/::/: :|:/
   ((___\\/___/___))


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