Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Aug 2005 14:40:16 GMT
From:      Mohacsi Janos <mohacsi@niif.hu>
To:        freebsd-usb@FreeBSD.org
Subject:   Re: usb/83863: Communication problem between opensc/openct via USB with e-gate smart-card.
Message-ID:  <200508041440.j74EeGe8094499@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/83863; it has been noted by GNATS.

From: Mohacsi Janos <mohacsi@niif.hu>
To: Hans Petter Selasky <hselasky@c2i.net>
Cc: bug-followup@freebsd.org, janos.mohacsi@bsd.hu
Subject: Re: usb/83863: Communication problem between opensc/openct via USB
 with e-gate smart-card.
Date: Thu, 4 Aug 2005 16:39:39 +0200 (CEST)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
 
 --0-318097300-1123166379=:86134
 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
 
 Hi Hans,
  	Here it is: - (Sorry, it is large... - should I omit 
 bug-followup  next time?)
 
 1. debug output of ifdhandler
 Aug  4 15:47:23 scone ifdhandler[808]: ifd_open: trying to open egate@/dev/ugen0
 Aug  4 15:47:23 scone ifdhandler[808]: eg_open: device=/dev/ugen0
 Aug  4 15:47:23 scone ifdhandler[808]: ifd_sysdep_device_type: BSD: ifd_sysdep_device_type(/dev/ugen0)
 Aug  4 15:47:23 scone ifdhandler[808]: ifd_sysdep_device_type: BSD: returning IFD_DEVICE_TYPE_USB
 Aug  4 15:47:23 scone ifdhandler[808]: eg_activate: called.
 Aug  4 15:47:23 scone ifdhandler[808]: eg_card_status: slot=0
 Aug  4 15:47:23 scone ifdhandler[808]: ifdhandler_poll_presence: card status change: 0 -> 1
 Aug  4 15:47:24 scone ifdhandler[808]: eg_card_status: slot=0
 Aug  4 15:47:55 scone last message repeated 31 times
 Aug  4 15:48:10 scone last message repeated 15 times
 Aug  4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_RESET, unit=0)
 Aug  4 15:48:10 scone ifdhandler[808]: eg_card_reset: called.
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=x40 req=x90 val=x0000 ind=x0000 len=0
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x90)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0x40 bRequest 0x90 wValue 0x0 wIndex 0x0 wLength 0x0
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ctrl.ucr_data == NULL 
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0xa0)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0xa0 wValue 0x0 wIndex 0x0 wLength 0x1
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data  80
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data  00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=xa0 val=x0000 ind=x0000 len=1
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv  00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x83)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0x83 wValue 0x0 wIndex 0x0 wLength 0x23
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data  05 00 00 00 05 00 00 00 00 01 07 28 00 00 00 01 64 ca 56 0d 66 84 07 28 00 01 07 28 a0 ab bf bf 05 00 00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data  3b 95 18 40 ff 62 01 02 01 04
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=x83 val=x0000 ind=x0000 len=10
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv  3b 95 18 40 ff 62 01 02 01 04
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_protocol_select: atr= 3b 95 18 40 ff 62 01 02 01 04
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_protocol_select: default T=0, supported protocols=0x1
 Aug  4 15:48:10 scone ifdhandler[808]: eg_set_protocol: proto=0
 Aug  4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_LOCK, unit=0)
 Aug  4 15:48:10 scone ifdhandler[808]: ifdhandler_lock: granted excl lock 0 for slot 0 by uid=4294967294
 Aug  4 15:48:10 scone ifdhandler[808]: ifdhandler_process: ifdhandler_process(cmd=CT_CMD_TRANSACT, unit=0)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_protocol_transceive: cmd:  c0 a4 00 00 02 3f 00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0xa0)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0xc0 bRequest 0xa0 wValue 0x0 wIndex 0x0 wLength 0x1
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data  28
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL RECV data  00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=xc0 req=xa0 val=x0000 ind=x0000 len=1
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: recv  00
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: usb req type=x40 req=x80 val=x0000 ind=x0000 len=5
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_usb_control: send  c0 a4 00 00 02
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: ifd_sysdep_usb_control(0x80)
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL bmRequestType 0x40 bRequest 0x80 wValue 0x0 wIndex 0x0 wLength 0x5
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: BSD: CTRL SEND data  c0 a4 00 00 02
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_sysdep_usb_control: USB_DO_REQUEST failed: -1
 Aug  4 15:48:10 scone ifdhandler[808]: ifd_protocol_transceive: transceive error: Communication error
 Aug  4 15:48:10 scone ifdhandler[808]: ifdhandler_unlock_all: released excl lock 0 for slot 0 by uid=4294967294
 Aug  4 15:48:11 scone ifdhandler[808]: eg_card_status: slot=0
 
 2. The trimmed down uhci debug output
 Aug  4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0x40, request=0x90, wValue=0x0000, wIndex=0x0000 len=0, addr=126, endpt=0
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=8 speed=1
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer:
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb1e0) at 1f06f1e4 = link=0x1f06f204 status=0x1c8003ff token=0x00e07e2d buffer=0x1f06f1d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f204<VF> 1c8003ff<ACTIVE,LS>,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bdb260 to 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bdb000 pipe=0xc1ca3004 transfer done
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb1e0) at 1f06f1e4 = link=0x1f06f204 status=0x1c000007 token=0x00e07e2d buffer=0x1f06f1d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f204<VF> 1c000007<LS>,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x00000001 status=0x3d0007ff token=0xffe87e69 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d0007ff<IOC,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=8
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=8 error=0
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb260 from 0xc1bdb260
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=8 error=5
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb260 from 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0xa0, wValue=0x0000, wIndex=0x0000 len=1, addr=126, endpt=0
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=9 speed=1
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer:
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c809e0) at 003749e4 = link=0x00374a04 status=0x1c8003ff token=0x00e07e2d buffer=0x003749d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 374a04<VF> 1c8003ff<ACTIVE,LS>,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a00) at 00374a04 = link=0x00374a24 status=0x3c8003ff token=0x00087e69 buffer=0x003749dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 374a24<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=1
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a20) at 00374a24 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: _uhci_append_qh: 0xc1c80a60 to 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1c80800 pipe=0xc1ca3004 transfer done
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c809e0) at 003749e4 = link=0x00374a04 status=0x1c000007 token=0x00e07e2d buffer=0x003749d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 374a04<VF> 1c000007<LS>,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a00) at 00374a04 = link=0x00374a24 status=0x3c000000 token=0x00087e69 buffer=0x003749dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 374a24<VF> 3c000000<LS,SPD>,errcnt=3,actlen=1 pid=69,addr=126,endpt=0,D=1,maxlen=1
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1c80a20) at 00374a24 = link=0x00000001 status=0x3d0007ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d0007ff<IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=9
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1c80800, pipe=0xc1ca3004 length=9 error=0
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1c80a60 from 0xc1c80a60
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1c80800, pipe=0xc1ca3004 length=9 error=5
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1c80a60 from 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0x83, wValue=0x0000, wIndex=0x0000 len=35, addr=126, endpt=0
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=43 speed=1
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer:
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x1f06f224 status=0x1c8003ff token=0x00e07e2d buffer=0x1f06f1d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f224<VF> 1c8003ff<ACTIVE,LS>,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb220) at 1f06f224 = link=0x1f06f244 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f244<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb240) at 1f06f244 = link=0x1f06f264 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1e4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f264<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb260) at 1f06f264 = link=0x1f06f284 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1ec
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f284<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb280) at 1f06f284 = link=0x1f06f2a4 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1f4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f2a4<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2a0) at 1f06f2a4 = link=0x1f06f2c4 status=0x3c8003ff token=0x00487e69 buffer=0x1f06f1fc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f2c4<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=3
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2c0) at 1f06f2c4 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bdb300 to 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_check_transfer: xfer=0xc1bdb000 active
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bdb000 pipe=0xc1ca3004 transfer done
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb200) at 1f06f204 = link=0x1f06f224 status=0x1c000007 token=0x00e07e2d buffer=0x1f06f1d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f224<VF> 1c000007<LS>,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb220) at 1f06f224 = link=0x1f06f244 status=0x3c000007 token=0x00e87e69 buffer=0x1f06f1dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f244<VF> 3c000007<LS,SPD>,errcnt=3,actlen=8 pid=69,addr=126,endpt=0,D=1,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb240) at 1f06f244 = link=0x1f06f264 status=0x3c000001 token=0x00e07e69 buffer=0x1f06f1e4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f264<VF> 3c000001<LS,SPD>,errcnt=3,actlen=2 pid=69,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb260) at 1f06f264 = link=0x1f06f284 status=0x3c8003ff token=0x00e87e69 buffer=0x1f06f1ec
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f284<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb280) at 1f06f284 = link=0x1f06f2a4 status=0x3c8003ff token=0x00e07e69 buffer=0x1f06f1f4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f2a4<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2a0) at 1f06f2a4 = link=0x1f06f2c4 status=0x3c8003ff token=0x00487e69 buffer=0x1f06f1fc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1f06f2c4<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=3
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bdb2c0) at 1f06f2c4 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=18
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=18 error=0
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb300 from 0xc1bdb300
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bdb000, pipe=0xc1ca3004 length=18 error=5
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bdb300 from 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1be6c00 len=32
 Aug  4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1beac00 len=32
 Aug  4 15:48:10 scone kernel: uhci_root_intr_start: xfer=0xc1c7e800 len=32
 Aug  4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0xc0, request=0xa0, wValue=0x0000, wIndex=0x0000 len=1, addr=126, endpt=0
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=9 speed=1
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer:
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bea9e0) at 0033e9e4 = link=0x0033ea04 status=0x1c8003ff token=0x00e07e2d buffer=0x0033e9d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 33ea04<VF> 1c8003ff<ACTIVE,LS>,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa00) at 0033ea04 = link=0x0033ea24 status=0x3c8003ff token=0x00087e69 buffer=0x0033e9dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 33ea24<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=1
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa20) at 0033ea24 = link=0x00000001 status=0x3d8003ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: _uhci_append_qh: 0xc1beaa60 to 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bea800 pipe=0xc1ca3004 transfer done
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bea9e0) at 0033e9e4 = link=0x0033ea04 status=0x1c000007 token=0x00e07e2d buffer=0x0033e9d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 33ea04<VF> 1c000007<LS>,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa00) at 0033ea04 = link=0x0033ea24 status=0x3c000000 token=0x00087e69 buffer=0x0033e9dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 33ea24<VF> 3c000000<LS,SPD>,errcnt=3,actlen=1 pid=69,addr=126,endpt=0,D=1,maxlen=1
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1beaa20) at 0033ea24 = link=0x00000001 status=0x3d0007ff token=0xffe87ee1 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d0007ff<IOC,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=9
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bea800, pipe=0xc1ca3004 length=9 error=0
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1beaa60 from 0xc1beaa60
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bea800, pipe=0xc1ca3004 length=9 error=5
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1beaa60 from 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_device_ctrl_start: type=0x40, request=0x80, wValue=0x0000, wIndex=0x0000 len=5, addr=126, endpt=0
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: addr=126 endpt=0 len=13 speed=1
 Aug  4 15:48:10 scone kernel: uhci_setup_standard_chain: nexttog=1; data before transfer:
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb31f0) at 002071f4 = link=0x00207214 status=0x1c8003ff token=0x00e07e2d buffer=0x002071d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 207214<VF> 1c8003ff<ACTIVE,LS>,errcnt=3,actlen=0 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3210) at 00207214 = link=0x00207234 status=0x3c8003ff token=0x00887ee1 buffer=0x002071dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 207234<VF> 3c8003ff<ACTIVE,LS,SPD>,errcnt=3,actlen=0 pid=e1,addr=126,endpt=0,D=1,maxlen=5
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3230) at 00207234 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: _uhci_append_qh: 0xc1bb3270 to 0xdd6c5000
 Aug  4 15:48:10 scone kernel: uhci_check_transfer: xfer=0xc1bb3000 active
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: xfer=0xc1bb3000 pipe=0xc1ca3004 transfer done
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb31f0) at 002071f4 = link=0x00207214 status=0x1c000007 token=0x00e07e2d buffer=0x002071d4
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 207214<VF> 1c000007<LS>,errcnt=3,actlen=8 pid=2d,addr=126,endpt=0,D=0,maxlen=8
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3210) at 00207214 = link=0x00207234 status=0x3c400004 token=0x00887ee1 buffer=0x002071dc
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 207234<VF> 3c400004<STALLED,LS,SPD>,errcnt=3,actlen=5 pid=e1,addr=126,endpt=0,D=1,maxlen=5
 Aug  4 15:48:10 scone kernel: uhci_dump_td: TD(0xc1bb3230) at 00207234 = link=0x00000001 status=0x3d8003ff token=0xffe87e69 buffer=0x00000000
 Aug  4 15:48:10 scone kernel: uhci_dump_td: 1<T> 3d8003ff<ACTIVE,IOC,LS,SPD>,errcnt=3,actlen=0 pid=69,addr=126,endpt=0,D=1,maxlen=0
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: actlen=13
 Aug  4 15:48:10 scone kernel: uhci_non_isoc_done: error, addr=126, endpt=0x00, status 400000<STALLED>
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bb3000, pipe=0xc1ca3004 length=13 error=22
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bb3270 from 0xc1bb3270
 Aug  4 15:48:10 scone kernel: uhci_device_done: xfer=0xc1bb3000, pipe=0xc1ca3004 length=13 error=5
 Aug  4 15:48:10 scone kernel: _uhci_remove_qh: 0xc1bb3270 from 0xdd6c5000
 Aug  4 15:48:10 scone ifdhandler[808]: usb_do_request failed: Input/output error (5)
 Aug  4 15:48:11 scone kernel: uhci_root_intr_start: xfer=0xc1be6c00 len=32
 
 
 3. the usb handler routine  is attached sys-bsd.c. You will find the 
 usb_do_request ioctl in the function ifd_sysdep_usb_control() - I am not 
 sure usb device handled properly there - timeout? USBD_SHORT_XFER_OK 
 option?
 
 4. The relevant part of the egate driver also included. For some reason 
 it does not like the EGATE_CMD_SEND_APDU (0x80):
 ifd_usb_control() actually after some debug printing and setting timeout 
 to 10000 if <0, invokes ifd_sysdep_usb_control()
 
 I can include that one if you want
 
 Janos Mohacsi
 Network Engineer, Research Associate
 NIIF/HUNGARNET, HUNGARY
 Key 00F9AF98: 8645 1312 D249 471B DBAE  21A2 9F52 0D1F 00F9 AF98
 
 
 On Thu, 4 Aug 2005, Hans Petter Selasky wrote:
 
 > On Thursday 04 August 2005 03:40, Janos Mohacsi wrote:
 >> I tried new usb subsystem with similar results:
 >> Aug  4 02:58:14 scone kernel: usbd_transfer_done: xfer=0xc1b7ec00
 >> pipe=0xc1b7e004 status=22 actlen=13
 >
 > status=22 means that the transfer stalled.
 >
 >> Aug  4 02:58:14 scone ifdhandler[677]: usb_do_request failed:
 >> Input/output error (5)
 >>
 >> Next?
 >
 > Control endpoints shouldn't stall.
 >
 > Maybe you could turn on some more debugging:
 >
 > sysctl hw.usb.uhci.debug=15
 >
 > This will show which of the transfers in the control transfer, that stalled.
 >
 > Could you have posted the code from "ifdhandler" where "usb_do_request" is
 > called from?
 >
 > --HPS
 >
 --0-318097300-1123166379=:86134
 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=egate_driver.c_snippet
 Content-Transfer-Encoding: BASE64
 Content-ID: <20050804163939.Q86134@mignon.ki.iif.hu>
 Content-Description: 
 Content-Disposition: attachment; filename=egate_driver.c_snippet
 
 LyoNCiAqIFNlbmQvcmVjZWl2ZSByb3V0aW5lcw0KICovDQpzdGF0aWMgaW50
 DQplZ190cmFuc3BhcmVudChpZmRfcmVhZGVyX3QgKnJlYWRlciwgaW50IGRh
 ZCwgY29uc3Qgdm9pZCAqaW5idWZmZXIsIHNpemVfdCBpbmxlbiwNCiAgICAg
 ICAgICAgICAgdm9pZCAqb3V0YnVmZmVyLCBzaXplX3Qgb3V0bGVuKQ0Kew0K
 ICAgICBpbnQgcmM7DQogICAgIHVuc2lnbmVkIGNoYXIgc3RhdDsNCiAgICAg
 aWZkX2lzb19hcGR1X3QgaXNvOw0KICAgICB1bnNpZ25lZCBjaGFyIGNtZGJ1
 Zls1XTsNCg0KICAgICBzdGF0PWVnX3N0YXR1cyhyZWFkZXIpOw0KICAgICBp
 ZiAoc3RhdCAhPSBFR0FURV9TVEFUVVNfUkVBRFkpIHsNCglpZmRfZGVidWco
 MiwgImRldmljZSBub3QgcmVhZHksIGF0dGVtcHRpbmcgcmVzZXQiKTsNCgly
 YyA9IGlmZF91c2JfY29udHJvbChyZWFkZXItPmRldmljZSwgRUdBVEVfRElS
 X09VVCwgRUdBVEVfQ01EX1JFU0VULA0KCQkJICAgICAwLCAwLCBOVUxMLCAw
 LCBFR19USU1FT1VUKTsNCglpZiAocmMgPCAwKQ0KCQlyZXR1cm4gSUZEX0VS
 Uk9SX0NPTU1fRVJST1I7DQogICAgIH0NCiAgICAgaWYgKGlmZF9pc29fYXBk
 dV9wYXJzZShpbmJ1ZmZlciwgaW5sZW4sICZpc28pIDwgMCkgDQogICAgICAg
 ICByZXR1cm4gSUZEX0VSUk9SX0lOVkFMSURfQVJHOw0KICAgICBpZiAoaW5s
 ZW4gPj0gNSAmJiBpbmxlbiA8IDUgKyBpc28ubGMpDQoJIHJldHVybiBJRkRf
 RVJST1JfQlVGRkVSX1RPT19TTUFMTDsNCiAgICAgaWYgKG91dGxlbiA8IDIg
 KyBpc28ubGUpDQoJIHJldHVybiBJRkRfRVJST1JfQlVGRkVSX1RPT19TTUFM
 TDsNCiAgICAgbWVtc2V0KGNtZGJ1ZiwwLDUpOw0KICAgICBtZW1tb3ZlKGNt
 ZGJ1ZiwgaW5idWZmZXIsIGlubGVuIDwgNSA/IGlubGVuIDogNSk7DQogICAg
 IHJjPWlmZF91c2JfY29udHJvbChyZWFkZXItPmRldmljZSwgRUdBVEVfRElS
 X09VVCwgRUdBVEVfQ01EX1NFTkRfQVBEVSwNCgkJICAgICAgICAwLCAwLCAo
 dm9pZCAqKSBjbWRidWYsIDUsIC0xKTsNCiAgICAgaWYgKHJjICE9IDUpDQog
 ICAgICAgICAgcmV0dXJuIElGRF9FUlJPUl9DT01NX0VSUk9SOw0KICAgICBz
 dGF0PWVnX3N0YXR1cyhyZWFkZXIpOw0KICAgICBpZiAoaW5sZW4gPiA1ICYm
 IHN0YXQgPT0gRUdBVEVfU1RBVFVTX0RBVEEpIHsNCiAgICAgICAgICByYz1p
 ZmRfdXNiX2NvbnRyb2wocmVhZGVyLT5kZXZpY2UsIEVHQVRFX0RJUl9PVVQs
 IEVHQVRFX0NNRF9XUklURSwNCgkJCSAgMCwgMCwgKHZvaWQgKikgKCgodW5z
 aWduZWQgY2hhciAqKWluYnVmZmVyKSs1KSwgaXNvLmxjLCAtMSk7DQoJICBp
 ZiAocmMgPCAwKQ0KCSAgICAgICByZXR1cm4gSUZEX0VSUk9SX0NPTU1fRVJS
 T1I7DQogICAgICAgICAgaWYgKHJjICE9IGlzby5sYykgew0KCSAgICAgICBp
 ZmRfZGVidWcoMSwgInNob3J0IFVTQiB3cml0ZSAoJXUgb2YgJXUgYnl0ZXMp
 IiwgcmMsIGlzby5sYyk7DQogICAgICAgICAgICAgICByZXR1cm4gSUZEX0VS
 Uk9SX0NPTU1fRVJST1I7DQoJICB9DQogICAgICAgICAgaWZkX2RlYnVnKDMs
 ICJzZW50ICVkIGJ5dGVzIG9mIGRhdGEiLCBpc28ubGMpOw0KICAgICAgICAg
 IHN0YXQ9ZWdfc3RhdHVzKHJlYWRlcik7DQogICAgIH0NCiAgICAgaWYgKHN0
 YXQgPT0gRUdBVEVfU1RBVFVTX0RBVEEpIHsNCiAgICAgICAgICByYz1pZmRf
 dXNiX2NvbnRyb2wocmVhZGVyLT5kZXZpY2UsIEVHQVRFX0RJUl9JTiwgRUdB
 VEVfQ01EX1JFQUQsIDAsIDAsDQogICAgICAgICAgICAgICAgICAgICAgICAg
 KHZvaWQgKikgb3V0YnVmZmVyLCBpc28ubGUsIEVHX1RJTUVPVVQpOw0KCSAg
 aWYgKHJjIDwgMCkNCgkgICAgICAgcmV0dXJuIElGRF9FUlJPUl9DT01NX0VS
 Uk9SOw0KICAgICAgICAgIGlmIChyYyAhPSBpc28ubGUpIHsNCgkgICAgICAg
 aWZkX2RlYnVnKDEsICJzaG9ydCBVU0IgcmVhZCAoJXUgb2YgJXUgYnl0ZXMp
 IiwgcmMsIGlzby5sZSk7DQogICAgICAgICAgICAgICByZXR1cm4gSUZEX0VS
 Uk9SX0NPTU1fRVJST1I7DQogICAgICAgICAgfQ0KICAgICAgICAgIGlmZF9k
 ZWJ1ZygzLCAicmVjZWl2ZWQgJWQgYnl0ZXMgb2YgZGF0YSIsIGlzby5sZSk7
 DQogICAgICAgICAgc3RhdD1lZ19zdGF0dXMocmVhZGVyKTsNCiAgICAgfSBl
 bHNlDQogICAgICAgaXNvLmxlPTA7DQogICAgIGlmIChzdGF0ICE9IEVHQVRF
 X1NUQVRVU19TVykNCiAgICAgICAgICByZXR1cm4gSUZEX0VSUk9SX0RFVklD
 RV9ESVNDT05ORUNURUQ7DQogICAgIHJjPWlmZF91c2JfY29udHJvbChyZWFk
 ZXItPmRldmljZSwgRUdBVEVfRElSX0lOLCBFR0FURV9DTURfUkVBRCwgMCwg
 MCwNCiAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgKCgodW5zaWduZWQg
 Y2hhciAqKW91dGJ1ZmZlcikraXNvLmxlKSwgMiwgRUdfVElNRU9VVCk7DQog
 ICAgIGlmIChyYyAhPSAyKQ0KICAgICAgICAgIHJldHVybiBJRkRfRVJST1Jf
 Q09NTV9FUlJPUjsNCiAgICAgaWZkX2RlYnVnKDIsICJyZXR1cm5pbmcgYSAl
 ZCBieXRlIHJlc3BvbnNlIiwgaXNvLmxlICsgMik7DQogICAgIHJldHVybiBp
 c28ubGUrMjsNCn0NCg==
 
 --0-318097300-1123166379=:86134
 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=sys-bsd.c
 Content-Transfer-Encoding: BASE64
 Content-ID: <20050804163939.Y86134@mignon.ki.iif.hu>
 Content-Description: 
 Content-Disposition: attachment; filename=sys-bsd.c
 
 LyoNCiAqICpCU0Qgc3BlY2lmaWMgZnVuY3Rpb25zDQogKg0KICogQ29weXJp
 Z2h0IChDKSAyMDAzIE9sYWYgS2lyY2ggPG9raXJAc3VzZS5kZT4NCiAqIENv
 cHlyaWdodCAoQykgMjAwMyBBbmRyZWFzIEplbGxpbmdoYXVzIDxhakBkdW5n
 ZW9uLmlua2EuZGU+DQogKiBDb3B5cmlnaHQgKEMpIDIwMDMgTWFya3VzIEZy
 aWVkbCA8bWFya3VzQG9wZW5ic2Qub3JnPg0KICogQ29weXJpZ2h0IChDKSAy
 MDA0LTIwMDUgV2lsbGlhbSBXYW5kZXJzIDx3aWxsaWFtQHdhbmRlcnMub3Jn
 Pg0KICoNCiAqIFRoZXNlIGZ1bmN0aW9ucyBuZWVkIHRvIGJlIHJlLWltcGxl
 bWVudGVkIGZvciBldmVyeQ0KICogbmV3IHBsYXRmb3JtLg0KICovDQoNCiNp
 bmNsdWRlICJpbnRlcm5hbC5oIg0KI2lmIGRlZmluZWQoX19OZXRCU0RfXykg
 fHwgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0Rf
 XykNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxkZXYvdXNi
 L3VzYi5oPg0KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQojaW5jbHVkZSA8c3lz
 L2lvY3RsLmg+DQojaW5jbHVkZSA8c3lzL3BvbGwuaD4NCiNpbmNsdWRlIDxz
 dHJpbmcuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHNpZ25h
 bC5oPg0KI2luY2x1ZGUgPGZjbnRsLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+
 DQojaW5jbHVkZSA8ZXJybm8uaD4NCiNpbmNsdWRlIDxvcGVuY3QvZHJpdmVy
 Lmg+DQoNCiNpbmNsdWRlICJ1c2ItZGVzY3JpcHRvcnMuaCINCg0KaW50DQpp
 ZmRfc3lzZGVwX2RldmljZV90eXBlKGNvbnN0IGNoYXIgKm5hbWUpDQp7DQoJ
 c3RydWN0IHN0YXQgc3RiOw0KDQoJaWZkX2RlYnVnKDEsICJCU0Q6IGlmZF9z
 eXNkZXBfZGV2aWNlX3R5cGUoJXMpIiwgbmFtZSk7DQoJaWYgKCFuYW1lIHx8
 IG5hbWVbMF0gIT0gJy8nKQ0KCQlyZXR1cm4gLTE7DQoNCglpZiAoIXN0cm5j
 bXAobmFtZSwgIi9kZXYvdWdlbiIsIDkpKSB7DQoJCWlmZF9kZWJ1ZygxLCAi
 QlNEOiByZXR1cm5pbmcgSUZEX0RFVklDRV9UWVBFX1VTQiIpOw0KCQlpZiAo
 c3RhdChuYW1lLCAmc3RiKSA8IDApDQoJCQlyZXR1cm4gLTE7DQoJCXJldHVy
 biBJRkRfREVWSUNFX1RZUEVfVVNCOw0KCX0NCg0KCXJldHVybiAtMTsNCn0N
 Cg0KLyoNCiAqIFBvbGwgZm9yIHByZXNlbmNlIG9mIFVTQiBkZXZpY2UNCiAq
 Lw0KaW50DQppZmRfc3lzZGVwX3VzYl9wb2xsX3ByZXNlbmNlKGlmZF9kZXZp
 Y2VfdCAqZGV2LCBzdHJ1Y3QgcG9sbGZkICpwZmQpDQp7DQoJaWYgKHBmZC0+
 cmV2ZW50cyAmIFBPTExIVVApDQoJCXJldHVybiAwOw0KCXBmZC0+ZmQgPSBk
 ZXYtPmZkOw0KCXBmZC0+ZXZlbnRzID0gUE9MTEhVUDsNCglyZXR1cm4gMTsN
 Cn0NCg0KdHlwZWRlZiBzdHJ1Y3QgZXAgew0KICAgIGludCBlcF9mZDsNCn0g
 ZXBfdDsNCg0KdHlwZWRlZiBlcF90IGludGVyZmFjZV90WzEyOF07DQoNCnN0
 YXRpYyBpbnRlcmZhY2VfdCBpbnRlcmZhY2VzWzFdOw0KDQojZGVmaW5lIFVT
 Ql9SRVFVRVNUX1NJWkUJOA0KDQovKg0KICogT3BlbiBpbnRlcmZhY2UgZW5k
 cG9pbnQNCiAqLw0KaW50DQpvcGVuX2VwKGNoYXIgKm5hbWUsIGludCBpbnRl
 cmZhY2UsIGludCBlbmRwb2ludCwgaW50IGZsYWdzKQ0Kew0KICAgIGNoYXIg
 ZmlsZW5hbWVbMjU2XTsNCg0KICAgIGlmKGludGVyZmFjZXNbaW50ZXJmYWNl
 XVtlbmRwb2ludF0uZXBfZmQpIHsNCglpZmRfZGVidWcoNiwgIm9wZW5fZXA6
 IGVuZHBvaW50IGFscmVhZHkgb3BlbmVkIik7DQoJcmV0dXJuIDA7DQogICAg
 fQ0KDQogICAgc3ByaW50ZigoY2hhciAqKSZmaWxlbmFtZSwiJXMuJWQiLCBu
 YW1lLCBlbmRwb2ludCk7DQoJDQogICAgaWYoKGludGVyZmFjZXNbaW50ZXJm
 YWNlXVtlbmRwb2ludF0uZXBfZmQ9b3BlbigNCglmaWxlbmFtZSwgZmxhZ3Mp
 KSA8IDApIHsNCglpZmRfZGVidWcoNiwgIm9wZW5fZXA6IGVycm9yIG9wZW5p
 bmcgXCIlc1wiOiAlcyIsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOw0K
 ICAgICAgICBpbnRlcmZhY2VzW2ludGVyZmFjZV1bZW5kcG9pbnRdLmVwX2Zk
 PTA7DQoJcmV0dXJuIC0xOw0KICAgIH0NCiAgICByZXR1cm4gMDsNCn0NCg0K
 Y2xvc2VfZXAoaW50IGludGVyZmFjZSwgaW50IGVuZHBvaW50KQ0Kew0KICAg
 IGlmKGludGVyZmFjZXNbaW50ZXJmYWNlXVtlbmRwb2ludF0uZXBfZmQpIHsN
 CiAgICAgICAgY2xvc2UoaW50ZXJmYWNlc1tpbnRlcmZhY2VdW2VuZHBvaW50
 XS5lcF9mZCk7DQogICAgICAgIGludGVyZmFjZXNbaW50ZXJmYWNlXVtlbmRw
 b2ludF0uZXBfZmQ9MDsNCiAgICB9DQp9DQoNCmludA0KaWZkX3N5c2RlcF91
 c2JfYnVsayhpZmRfZGV2aWNlX3QgKmRldiwgaW50IGVwLCB2b2lkICpidWZm
 ZXIsIHNpemVfdCBsZW4sIGxvbmcgdGltZW91dCkNCnsNCiAgICBpbnQJYnl0
 ZXNfdG9fcHJvY2VzczsNCiAgICBpbnQJYnl0ZXNfcHJvY2Vzc2VkOw0KICAg
 IGludCBkaXJlY3Rpb24gPSAoZXAgJiBJRkRfVVNCX0VORFBPSU5UX0RJUl9N
 QVNLKSA9PSBJRkRfVVNCX0VORFBPSU5UX0lOID8gMSA6IDA7DQogICAgaW50
 IGVuZHBvaW50ID0gKGVwICYgfklGRF9VU0JfRU5EUE9JTlRfRElSX01BU0sp
 Ow0KDQogICAgY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6IGVuZHBv
 aW50PSVkIGRpcmVjdGlvbj0lZCIsIGVuZHBvaW50LCBkaXJlY3Rpb24pOw0K
 ICAgIGlmKG9wZW5fZXAoZGV2LT5uYW1lLDAsZW5kcG9pbnQsT19SRFdSfE9f
 Tk9OQkxPQ0spKSB7DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6
 IG9wZW5pbmcgZW5kcG9pbnQgZmFpbGVkIik7DQoJcmV0dXJuIC0xOw0KICAg
 IH0NCiAgICBpZihkaXJlY3Rpb24pIHsNCglpZigoYnl0ZXNfdG9fcHJvY2Vz
 cz1yZWFkKGludGVyZmFjZXNbMF1bZW5kcG9pbnRdLmVwX2ZkLGJ1ZmZlcixs
 ZW4pKTwwKSB7DQoJICAgIGlmZF9kZWJ1Zyg2LCAiaWZkX3N5c2RlcF91c2Jf
 YnVsazogcmVhZCBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCgkg
 ICAgY3RfZXJyb3IoInVzYl9idWxrIHJlYWQgZmFpbGVkOiAlcyIsIHN0cmVy
 cm9yKGVycm5vKSk7DQoJICAgIHJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJP
 UjsNCgl9DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNiX2J1bGs6IHJlYWQg
 JWQgYnl0ZXMiLCBieXRlc190b19wcm9jZXNzKTsNCglyZXR1cm4gYnl0ZXNf
 dG9fcHJvY2VzczsNCiAgICB9IGVsc2Ugew0KCWJ5dGVzX3RvX3Byb2Nlc3M9
 bGVuOw0KCWlmKChieXRlc19wcm9jZXNzZWQ9d3JpdGUoaW50ZXJmYWNlc1sw
 XVtlbmRwb2ludF0uZXBfZmQsYnVmZmVyLGJ5dGVzX3RvX3Byb2Nlc3MpKSE9
 Ynl0ZXNfdG9fcHJvY2Vzcykgew0KCSAgICBpZmRfZGVidWcoNiwgImlmZF9z
 eXNkZXBfdXNiX2J1bGs6IHdyaXRlIGZhaWxlZDogJXMiLCBzdHJlcnJvcihl
 cnJubykpOw0KCSAgICBjdF9lcnJvcigidXNiX2J1bGsgd3JpdGUgZmFpbGVk
 OiAlcyIsIHN0cmVycm9yKGVycm5vKSk7DQoJICAgIHJldHVybiBJRkRfRVJS
 T1JfQ09NTV9FUlJPUjsNCgl9DQoJY3RfZGVidWcoImlmZF9zeXNkZXBfdXNi
 X2J1bGs6IHdyb3RlIGJ1ZmZlclslZF09JXMiLCBieXRlc19wcm9jZXNzZWQs
 IGN0X2hleGR1bXAoYnVmZmVyLGxlbikpOw0KCXJldHVybiBieXRlc19wcm9j
 ZXNzZWQ7DQogICAgfQ0KfQ0KDQovKg0KICogVVNCIFVSQiBjYXB0dXJlDQog
 Ki8NCnN0cnVjdCBpZmRfdXNiX2NhcHR1cmUgew0KICAgIGludAkJCXR5cGU7
 DQogICAgaW50CQkJZW5kcG9pbnQ7DQogICAgc2l6ZV90CQltYXhwYWNrZXQ7
 DQogICAgdW5zaWduZWQgaW50CWludGVyZmFjZTsNCn07DQoNCmludA0KaWZk
 X3N5c2RlcF91c2JfYmVnaW5fY2FwdHVyZShpZmRfZGV2aWNlX3QgKmRldiwN
 CglpbnQgdHlwZSwgaW50IGVwLCBzaXplX3QgbWF4cGFja2V0LA0KCWlmZF91
 c2JfY2FwdHVyZV90ICoqY2FwcmV0KQ0Kew0KICAgIGlmZF91c2JfY2FwdHVy
 ZV90CSpjYXA7DQogICAgaW50CQkJIGRpcmVjdGlvbiA9IChlcCAmIElGRF9V
 U0JfRU5EUE9JTlRfRElSX01BU0spID09IElGRF9VU0JfRU5EUE9JTlRfSU4g
 PyAxIDogMDsNCiAgICBpbnQJCQkgZW5kcG9pbnQgPSAoZXAgJiB+SUZEX1VT
 Ql9FTkRQT0lOVF9ESVJfTUFTSyk7DQoNCiAgICBpZighKGNhcCA9IChpZmRf
 dXNiX2NhcHR1cmVfdCAqKSBjYWxsb2MoMSwgc2l6ZW9mKCpjYXApICsgbWF4
 cGFja2V0KSkpIHsNCgljdF9kZWJ1ZygiaWZkX3N5c2RlcF91c2JfYmVnaW5f
 Y2FwdHVyZTogY2FsbG9jIGZhaWxlZCIpOw0KCXJldHVybiAtMTsNCiAgICB9
 DQogICAgY2FwLT50eXBlID0gdHlwZTsNCiAgICBjYXAtPmVuZHBvaW50ID0g
 ZXA7DQogICAgY2FwLT5tYXhwYWNrZXQgPSBtYXhwYWNrZXQ7DQoNCiAgICBp
 ZighaW50ZXJmYWNlc1swXVtlbmRwb2ludF0uZXBfZmQpIHsNCglpZihvcGVu
 X2VwKGRldi0+bmFtZSwwLGVuZHBvaW50LE9fUkRPTkxZfE9fTk9OQkxPQ0sp
 KSB7DQoJICAgIGN0X2RlYnVnKCJpZmRfc3lzZGVwX3VzYl9iZWdpbl9jYXB0
 dXJlOiBvcGVuaW5nIGVuZHBvaW50IGZhaWxlZCIpOw0KCSAgICByZXR1cm4g
 LTE7DQoJfQ0KICAgIH0NCiAgICAqY2FwcmV0ID0gY2FwOw0KICAgIHJldHVy
 biAwOw0KfQ0KDQppbnQNCmlmZF9zeXNkZXBfdXNiX2NhcHR1cmUoaWZkX2Rl
 dmljZV90ICpkZXYsDQoJaWZkX3VzYl9jYXB0dXJlX3QgKmNhcCwNCgl2b2lk
 ICpidWZmZXIsIHNpemVfdCBsZW4sDQoJbG9uZyB0aW1lb3V0KQ0Kew0KICAg
 IHN0cnVjdCB0aW1ldmFsCWJlZ2luOw0KICAgIGludAkJCWJ5dGVzX3RvX3By
 b2Nlc3M9MDsNCiAgICBpbnQJCQlkaXJlY3Rpb24gPSAoY2FwLT5lbmRwb2lu
 dCAmIElGRF9VU0JfRU5EUE9JTlRfRElSX01BU0spID09IElGRF9VU0JfRU5E
 UE9JTlRfSU4gPyAxIDogMDsNCiAgICBpbnQJCQllbmRwb2ludCA9IChjYXAt
 PmVuZHBvaW50ICYgfklGRF9VU0JfRU5EUE9JTlRfRElSX01BU0spOw0KDQog
 ICAgZ2V0dGltZW9mZGF5KCZiZWdpbixOVUxMKTsNCiAgICBkbyB7DQoJc3Ry
 dWN0IHBvbGxmZAlwZmQ7DQoJbG9uZwkJd2FpdDsNCg0KCWlmICgod2FpdCA9
 ICh0aW1lb3V0IC0gaWZkX3RpbWVfZWxhcHNlZCgmYmVnaW4pKSkgPD0gMCkN
 CgkgICAgcmV0dXJuIElGRF9FUlJPUl9USU1FT1VUOw0KDQoJcGZkLmZkID0g
 aW50ZXJmYWNlc1swXVtlbmRwb2ludF0uZXBfZmQ7DQoJcGZkLmV2ZW50cyA9
 IFBPTExJTjsNCglpZihwb2xsKCZwZmQsMSx3YWl0KSE9MSkNCgkgICAgY29u
 dGludWU7DQoNCglpZigoYnl0ZXNfdG9fcHJvY2Vzcz1yZWFkKGludGVyZmFj
 ZXNbMF1bZW5kcG9pbnRdLmVwX2ZkLGJ1ZmZlcixsZW4pKTwwKSB7DQoJICAg
 IGlmZF9kZWJ1Zyg2LCAiaWZkX3N5c2RlcF91c2JfYnVsazogcmVhZCBmYWls
 ZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCgkgICAgY3RfZXJyb3IoInVz
 Yl9idWxrIHJlYWQgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7DQoJ
 ICAgIHJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCgl9DQogICAgfSB3
 aGlsZSAoIWJ5dGVzX3RvX3Byb2Nlc3MpOw0KICAgIGN0X2RlYnVnKCJpZmRf
 c3lzZGVwX3VzYl9jYXB0dXJlOiByZWFkIGJ1ZmZlclslZF09JXMiLCBieXRl
 c190b19wcm9jZXNzLCBjdF9oZXhkdW1wKGJ1ZmZlcixieXRlc190b19wcm9j
 ZXNzKSk7DQogICAgcmV0dXJuIGJ5dGVzX3RvX3Byb2Nlc3M7DQp9DQoNCmlu
 dA0KaWZkX3N5c2RlcF91c2JfZW5kX2NhcHR1cmUoaWZkX2RldmljZV90ICpk
 ZXYsIGlmZF91c2JfY2FwdHVyZV90ICpjYXApDQp7DQogICAgaW50CWRpcmVj
 dGlvbiA9IChjYXAtPmVuZHBvaW50ICYgSUZEX1VTQl9FTkRQT0lOVF9ESVJf
 TUFTSykgPT0gSUZEX1VTQl9FTkRQT0lOVF9JTiA/IDEgOiAwOw0KICAgIGlu
 dAllbmRwb2ludCA9IChjYXAtPmVuZHBvaW50ICYgfklGRF9VU0JfRU5EUE9J
 TlRfRElSX01BU0spOw0KICAgIGNsb3NlX2VwKDAsZW5kcG9pbnQpOw0KICAg
 IGlmKGNhcCkgZnJlZShjYXApOw0KICAgIHJldHVybiAwOw0KfQ0KDQovKg0K
 ICogVVNCIGNvbnRyb2wgY29tbWFuZA0KICovDQppbnQNCmlmZF9zeXNkZXBf
 dXNiX2NvbnRyb2woaWZkX2RldmljZV90ICpkZXYsDQoJCXVuc2lnbmVkIGlu
 dCByZXF1ZXN0dHlwZSwNCgkJdW5zaWduZWQgaW50IHJlcXVlc3QsDQoJCXVu
 c2lnbmVkIGludCB2YWx1ZSwNCgkJdW5zaWduZWQgaW50IGluZGV4LA0KCQl2
 b2lkICpkYXRhLCBzaXplX3QgbGVuLCBsb25nIHRpbWVvdXQpDQp7DQoJc3Ry
 dWN0IHVzYl9jdGxfcmVxdWVzdCBjdHJsOw0KCWludAkJcmMsdmFsOw0KDQoJ
 aWZkX2RlYnVnKDEsICJCU0Q6IGlmZF9zeXNkZXBfdXNiX2NvbnRyb2woMHgl
 eCkiLCByZXF1ZXN0KTsNCgltZW1zZXQoJmN0cmwsIDAsIHNpemVvZihjdHJs
 KSk7DQoJDQoJY3RybC51Y3JfcmVxdWVzdC5ibVJlcXVlc3RUeXBlID0gcmVx
 dWVzdHR5cGU7DQoJY3RybC51Y3JfcmVxdWVzdC5iUmVxdWVzdCA9IHJlcXVl
 c3Q7DQoJVVNFVFcoY3RybC51Y3JfcmVxdWVzdC53VmFsdWUsIHZhbHVlKTsN
 CglVU0VUVyhjdHJsLnVjcl9yZXF1ZXN0LndJbmRleCwgaW5kZXgpOw0KCVVT
 RVRXKGN0cmwudWNyX3JlcXVlc3Qud0xlbmd0aCwgbGVuKTsNCg0KCWN0cmwu
 dWNyX2RhdGEgPSBkYXRhOw0KCWN0cmwudWNyX2ZsYWdzID0gVVNCRF9TSE9S
 VF9YRkVSX09LOw0KDQoJaWZkX2RlYnVnKDEsICJCU0Q6IENUUkwgYm1SZXF1
 ZXN0VHlwZSAweCV4IGJSZXF1ZXN0IDB4JXggIg0KCQkgICAgICJ3VmFsdWUg
 MHgleCB3SW5kZXggMHgleCB3TGVuZ3RoIDB4JXgiLA0KCQkgICAgIHJlcXVl
 c3R0eXBlLCByZXF1ZXN0LCB2YWx1ZSwgaW5kZXgsIGxlbik7DQoJaWYobGVu
 KQ0KCQlpZmRfZGVidWcoNSwgIkJTRDogQ1RSTCBTRU5EIGRhdGEgJXMiLCBj
 dF9oZXhkdW1wKGRhdGEsbGVuKSk7DQoNCgl2YWwgPSB0aW1lb3V0Ow0KCWlm
 ICgocmMgPSBpb2N0bChkZXYtPmZkLCBVU0JfU0VUX1RJTUVPVVQsICZ2YWwp
 KSA8IDApIHsNCgkJaWZkX2RlYnVnKDEsIlVTQl9TRVRfVElNRU9VVCBmYWls
 ZWQ6ICVkIiwgcmMpOw0KCQljdF9lcnJvcigidXNiX3NldF90aW1lb3V0IGZh
 aWxlZDogJXMoJWQpIiwNCgkJCQlzdHJlcnJvcihlcnJubyksIGVycm5vKTsN
 CiAgICAgICAgCXJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCgl9DQog
 DQoJaWYgKChyYyA9IGlvY3RsKGRldi0+ZmQsIFVTQl9ET19SRVFVRVNULCAm
 Y3RybCkpIDwgMCkgew0KCQlpZmRfZGVidWcoMSwgIlVTQl9ET19SRVFVRVNU
 IGZhaWxlZDogJWQiLCByYyk7DQoJCWN0X2Vycm9yKCJ1c2JfZG9fcmVxdWVz
 dCBmYWlsZWQ6ICVzICglZCkiLA0KCQkJCXN0cmVycm9yKGVycm5vKSwgZXJy
 bm8pOw0KCQlyZXR1cm4gSUZEX0VSUk9SX0NPTU1fRVJST1I7DQogICAgICAg
 IH0NCg0KCWlmKGN0cmwudWNyX2RhdGE9PU5VTEwpDQoJCWlmZF9kZWJ1Zygx
 LCAiQlNEOiBjdHJsLnVjcl9kYXRhID09IE5VTEwgIik7DQoJaWYoY3RybC51
 Y3JfZGF0YSAmJiBjdHJsLnVjcl9hY3RsZW4pDQoJCWlmZF9kZWJ1ZygxLCAi
 QlNEOiBDVFJMIFJFQ1YgZGF0YSAlcyIsDQoJCQljdF9oZXhkdW1wKGN0cmwu
 dWNyX2RhdGEsY3RybC51Y3JfYWN0bGVuKSk7DQoJcmV0dXJuIGN0cmwudWNy
 X2FjdGxlbjsNCn0NCg0KaW50DQppZmRfc3lzZGVwX3VzYl9zZXRfY29uZmln
 dXJhdGlvbihpZmRfZGV2aWNlX3QgKmRldiwgaW50IGNvbmZpZykgDQp7DQog
 ICAgaW50IHZhbHVlLCByYzsNCiAgICB2YWx1ZSA9IGNvbmZpZzsNCiAgICBp
 ZiAoKHJjID0gaW9jdGwoZGV2LT5mZCwgVVNCX1NFVF9DT05GSUcsICZ2YWx1
 ZSkpIDwgMCkgew0KCWlmZF9kZWJ1ZygxLCJVU0JfU0VUX0NPTkZJRyBmYWls
 ZWQ6ICVkIiwgcmMpOw0KCWN0X2Vycm9yKCJ1c2Jfc2V0X2NvbmZpZ3VyYXRp
 b24gZmFpbGVkOiAlcyglZCkiLA0KCQkJc3RyZXJyb3IoZXJybm8pLCBlcnJu
 byk7DQogICAgICAgCXJldHVybiBJRkRfRVJST1JfQ09NTV9FUlJPUjsNCiAg
 ICB9DQogICAgcmV0dXJuIDA7DQp9DQoNCg0KaW50DQppZmRfc3lzZGVwX3Vz
 Yl9zZXRfaW50ZXJmYWNlKGlmZF9kZXZpY2VfdCAqZGV2LCBpbnQgaWZjLCBp
 bnQgYWx0KSANCnsNCiAgICBpbnQgcmM7DQogICAgc3RydWN0IHVzYl9hbHRf
 aW50ZXJmYWNlIHsNCglpbnQgdWFpX2NvbmZpZ19pbmRleDsNCglpbnQgdWFp
 X2ludGVyZmFjZV9pbmRleDsNCglpbnQgdWFpX2FsdF9ubzsNCiAgICB9IHZh
 bHVlOw0KDQogICAgdmFsdWUudWFpX2NvbmZpZ19pbmRleD1pZmM7DQogICAg
 dmFsdWUudWFpX2ludGVyZmFjZV9pbmRleD0wOw0KICAgIHZhbHVlLnVhaV9h
 bHRfbm89YWx0Ow0KICAgIGlmICgocmMgPSBpb2N0bChkZXYtPmZkLCBVU0Jf
 U0VUX0FMVElOVEVSRkFDRSwgJnZhbHVlKSkgPCAwKSB7DQoJaWZkX2RlYnVn
 KDEsIlVTQl9TRVRfQUxUSU5URVJGQUNFIGZhaWxlZDogJWQiLCByYyk7DQoJ
 Y3RfZXJyb3IoInVzYl9zZXRfaW50ZXJmYWNlIGZhaWxlZDogJXMoJWQpIiwN
 CgkJCXN0cmVycm9yKGVycm5vKSwgZXJybm8pOw0KICAgICAgIAlyZXR1cm4g
 SUZEX0VSUk9SX0NPTU1fRVJST1I7DQogICAgfQ0KICAgIHJldHVybiAwOw0K
 fQ0KDQppbnQNCmlmZF9zeXNkZXBfdXNiX2NsYWltX2ludGVyZmFjZShpZmRf
 ZGV2aWNlX3QgKmRldiwgaW50IGludGVyZmFjZSkgDQp7DQogICAgY3RfZGVi
 dWcoImlmZF9zeXNkZXBfdXNiX2NsYWltX2ludGVyZmFjZTogaW50ZXJmYWNl
 PSVkIChub3QgeWV0IGltcGxlbWVudGVkKSIsIGludGVyZmFjZSk7DQogICAg
 cmV0dXJuIDA7DQp9DQoNCmludA0KaWZkX3N5c2RlcF91c2JfcmVsZWFzZV9p
 bnRlcmZhY2UoaWZkX2RldmljZV90ICpkZXYsIGludCBpbnRlcmZhY2UpIA0K
 ew0KICAgIGN0X2RlYnVnKCJpZmRfc3lzZGVwX3VzYl9yZWxlYXNlX2ludGVy
 ZmFjZTogaW50ZXJmYWNlPSVkIChub3QgeWV0IGltcGxlbWVudGVkKSIsIGlu
 dGVyZmFjZSk7DQogICAgcmV0dXJuIDA7DQp9DQoNCmludA0KaWZkX3N5c2Rl
 cF91c2Jfb3BlbihjaGFyICpkZXZpY2UsIGludCBmbGFncykNCnsNCiAgICBy
 ZXR1cm4gb3BlbihkZXZpY2UsIE9fRVhDTCB8IE9fUkRXUik7DQp9DQoNCi8q
 DQogKiBTY2FuIGFsbCB1c2IgZGV2aWNlcyB0byBzZWUgaWYgdGhlcmUgaXMg
 b25lIHdlIHN1cHBvcnQNCiAqLw0KaW50DQppZmRfc2Nhbl91c2Iodm9pZCkN
 CnsNCiAgICBpbnQgaSwgY29udHJvbGxlcl9mZDsNCiAgICBjaGFyIGNvbnRy
 b2xsZXJfZGV2bmFtZVsxMF07DQoNCiAgICBpZmRfZGVidWcoMSwgIkJTRDog
 aWZkX3NjYW5fdXNiIik7DQogICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKysp
 IHsNCglzbnByaW50Zihjb250cm9sbGVyX2Rldm5hbWUsIDEwLCAiL2Rldi91
 c2IlZCIsIGkpOw0KCWlmKChjb250cm9sbGVyX2ZkID0gb3Blbihjb250cm9s
 bGVyX2Rldm5hbWUsIE9fUkRPTkxZKSk8MCkNCgkgICAgY29udGludWU7DQoN
 CglpZiAoY29udHJvbGxlcl9mZCA+PSAwKSB7DQoJICAgIGludCBhZGRyZXNz
 Ow0KCSAgICBmb3IgKGFkZHJlc3MgPSAxOyBhZGRyZXNzIDwgVVNCX01BWF9E
 RVZJQ0VTOyBhZGRyZXNzKyspIHsNCgkJc3RydWN0IHVzYl9kZXZpY2VfaW5m
 bwkgZGV2aWNlX2luZm87DQoJCWlmZF9kZXZpZF90CQkgaWQ7DQoJCWNvbnN0
 IGNoYXIJCSpkcml2ZXI7DQoJCWNoYXIJCQlkZXZpY2VbMjU2XTsNCg0KCQlk
 ZXZpY2VfaW5mby51ZGlfYWRkciA9IGFkZHJlc3M7DQoNCgkJaWYoaW9jdGwo
 Y29udHJvbGxlcl9mZCwgVVNCX0RFVklDRUlORk8sICZkZXZpY2VfaW5mbykp
 IHsNCgkJICAgIGlmIChlcnJubyAhPSBFTlhJTykNCgkJCWZwcmludGYoc3Rk
 ZXJyLCAiYWRkciAlZDogSS9PIGVycm9yXG4iLCBhZGRyZXNzKTsNCgkJICAg
 IGNvbnRpbnVlOw0KCQl9DQoNCgkJaWYoc3RybmNtcChkZXZpY2VfaW5mby51
 ZGlfZGV2bmFtZXNbMF0sInVnZW4iLDQpIT0wKQ0KCQkgICAgY29udGludWU7
 DQoNCgkJaWQudHlwZSA9IElGRF9ERVZJQ0VfVFlQRV9VU0I7DQoJCWlkLm51
 bSAgPSAyOw0KDQoJCWlkLnZhbFswXSA9IGRldmljZV9pbmZvLnVkaV92ZW5k
 b3JObzsNCgkJaWQudmFsWzFdID0gZGV2aWNlX2luZm8udWRpX3Byb2R1Y3RO
 bzsNCg0KCQlpZmRfZGVidWcoMSwgIkJTRDogaWZkX3NjYW5fdXNiOiAiDQoJ
 CQkgICAgICJpZmRfZHJpdmVyX2Zvciglc1sweCUwNHhdLiVzWzB4JTA0eCki
 LA0KCQkJICAgICBkZXZpY2VfaW5mby51ZGlfdmVuZG9yLA0KCQkJICAgICBk
 ZXZpY2VfaW5mby51ZGlfdmVuZG9yTm8sDQoJCQkgICAgIGRldmljZV9pbmZv
 LnVkaV9wcm9kdWN0LA0KCQkJICAgICBkZXZpY2VfaW5mby51ZGlfcHJvZHVj
 dE5vKTsNCg0KCQlpZiAoIShkcml2ZXIgPSBpZmRfZHJpdmVyX2Zvcl9pZCgm
 aWQpKSkNCgkJICAgIGNvbnRpbnVlOw0KDQoJCXNucHJpbnRmKGRldmljZSwg
 c2l6ZW9mKGRldmljZSksDQoJCQkiL2Rldi8lcyIsIGRldmljZV9pbmZvLnVk
 aV9kZXZuYW1lc1swXSk7DQoNCgkJaWZkX3NwYXduX2hhbmRsZXIoZHJpdmVy
 LCBkZXZpY2UsIC0xKTsNCgkgICAgfQ0KCSAgICBjbG9zZShjb250cm9sbGVy
 X2ZkKTsNCgl9IGVsc2Ugew0KCSAgICBpZiAoZXJybm8gPT0gRU5PRU5UIHx8
 IGVycm5vID09IEVOWElPKQ0KCQljb250aW51ZTsNCgkgICAgLyogYSBtb3Jl
 IHN1aXRhYmxlIGVycm9yIHJlY292ZXJ5IHNob3VsZCBiZSBkb25lIGhlcmUg
 Ki8NCgl9DQogICAgfQ0KICAgIHJldHVybiAwOw0KfQ0KI2VuZGlmIC8qIF9f
 TmV0L0ZyZWUvT3BlbkJTRF9fICovDQo=
 
 --0-318097300-1123166379=:86134--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508041440.j74EeGe8094499>