On Mon, 24 Aug 2020 16:46:22 +0000
Mikolaj Kucharski <[email protected]> wrote:

> On Fri, Aug 21, 2020 at 01:21:28PM +0200, Marcus Glocker wrote:
> > On Tue, 18 Aug 2020 15:46:03 +0000
> > Mikolaj Kucharski <[email protected]> wrote:
> >   
> > > On Tue, Aug 18, 2020 at 06:41:13AM +0200, Marcus Glocker wrote:  
> > > > Could you please also send an lsusb -v of the device?    
> > > 
> > > Sure, no problem.  
> > 
> > Thanks.
> > 
> > So 55 bytes for your configuration descriptor seems to be the
> > correct length.  Question is now whether/where/why we did only
> > malloc() 32 bytes before for the configuration descriptor ...
> > 
> > Can you please run it again with the following diff applied and
> > send me the output?  The panic shouldn't happen anymore if we catch
> > the right free().  
> 
> I ran following command and it didn't panic the kernel:
> 
> # scanimage -L
> device `xerox_mfp:libusb:000:002' is a Samsung M2070 Series
> multi-function peripheral
> 
> I think this is part when the problem happens, from dmesg:
> 
> usbd_get_cdesc: index=0, len=32
> wTotalLength free = 55

Ok, as expected.  We're allocating 32 bytes from somewhere, and then
try to free 55 bytes, which causes the panic finally.  Can you please
send me a full 'lsusb -v' for all the USB devices on that machine?  I
would like to understand whether we're mixing up configuration
descriptors by any chance ...

> and below is full dmesg. System had problably about 5 minutes of
> uptime, when I executed above scanimage command.
> 
> 6.7-current (GENERIC.MP) #54: Sun Aug 23 22:21:17 UTC 2020
>     
> [email protected]:/home/mkucharski/openbsd/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 4259872768 (4062MB)
> avail mem = 4115705856 (3925MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xcfe8b020 (13 entries)
> bios0: vendor coreboot version "v4.12.0.3" date 07/30/2020
> bios0: PC Engines apu2
> acpi0 at bios0: ACPI 6.0
> acpi0: sleep states S0 S1 S4 S5
> acpi0: tables DSDT FACP SSDT MCFG TPM2 APIC HEST SSDT SSDT DRTM HPET
> acpi0: wakeup devices PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4) PBR8(S4)
> UOH1(S3) UOH2(S3) UOH3(S3) UOH4(S3) UOH5(S3) UOH6(S3) XHC0(S4)
> acpitimer0 at acpi0: 3579545 Hz, 32 bits acpimcfg0 at acpi0
> acpimcfg0: addr 0xf8000000, bus 0-64
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: AMD GX-412TC SOC, 998.26 MHz, 16-30-01
> cpu0:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
> cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
> 64b/line 16-way L2 cache cpu0: ITLB 32 4KB entries fully associative,
> 8 4MB entries fully associative cpu0: DTLB 40 4KB entries fully
> associative, 8 4MB entries fully associative cpu0: smt 0, core 0,
> package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed
> ranges cpu0: apic clock running at 99MHz cpu0: mwait min=64, max=64,
> IBE cpu1 at mainbus0: apid 1 (application processor)
> cpu1: AMD GX-412TC SOC, 998.14 MHz, 16-30-01
> cpu1:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
> cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
> 64b/line 16-way L2 cache cpu1: ITLB 32 4KB entries fully associative,
> 8 4MB entries fully associative cpu1: DTLB 40 4KB entries fully
> associative, 8 4MB entries fully associative cpu1: smt 0, core 1,
> package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: AMD
> GX-412TC SOC, 998.14 MHz, 16-30-01 cpu2:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
> cpu2: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
> 64b/line 16-way L2 cache cpu2: ITLB 32 4KB entries fully associative,
> 8 4MB entries fully associative cpu2: DTLB 40 4KB entries fully
> associative, 8 4MB entries fully associative cpu2: smt 0, core 2,
> package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: AMD
> GX-412TC SOC, 998.14 MHz, 16-30-01 cpu3:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,SKINIT,TOPEXT,DBKP,PERFTSC,PCTRL3,ITSC,BMI1,XSAVEOPT
> cpu3: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 2MB
> 64b/line 16-way L2 cache cpu3: ITLB 32 4KB entries fully associative,
> 8 4MB entries fully associative cpu3: DTLB 40 4KB entries fully
> associative, 8 4MB entries fully associative cpu3: smt 0, core 3,
> package 0 ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24
> pins ioapic1 at mainbus0: apid 5 pa 0xfec20000, version 21, 32 pins
> acpihpet0 at acpi0: 14318180 Hz acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus -1 (PBR4)
> acpiprt2 at acpi0: bus 1 (PBR5)
> acpiprt3 at acpi0: bus 2 (PBR6)
> acpiprt4 at acpi0: bus 3 (PBR7)
> acpiprt5 at acpi0: bus 4 (PBR8)
> acpicpu0 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
> acpicpu1 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
> acpicpu2 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
> acpicpu3 at acpi0: C2(0@400 io@0x1771), C1(@1 halt!), PSS
> acpitz0 at acpi0: critical temperature is 115 degC
> acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
> extent `acpipci0 pcibus' (0x0 - 0xff), flags=0
> extent `acpipci0 pciio' (0x0 - 0xffffffff), flags=0
>      0xcf8 - 0xcff
>      0x10000 - 0xffffffff
> extent `acpipci0 pcimem' (0x0 - 0xffffffffffffffff), flags=0
>      0x0 - 0x9ffff
>      0xe0000 - 0xcfffffff
>      0x100000000 - 0xffffffffffffffff
> acpicmos0 at acpi0
> amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x300 irq 7, 184 pins
> "PRP0001" at acpi0 not configured
> "PRP0001" at acpi0 not configured
> "PRP0001" at acpi0 not configured
> "PRP0001" at acpi0 not configured
> "PRP0001" at acpi0 not configured
> "PRP0001" at acpi0 not configured
> "BOOT0000" at acpi0 not configured
> cpu0: 998 MHz: speeds: 1000 800 600 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "AMD 16h Root Complex" rev 0x00
> vendor "AMD", unknown product 0x1567 (class system subclass IOMMU,
> rev 0x00) at pci0 dev 0 function 2 not configured pchb1 at pci0 dev 2
> function 0 "AMD 16h Host" rev 0x00 ppb0 at pci0 dev 2 function 2 "AMD
> 16h PCIE" rev 0x00: msi pci1 at ppb0 bus 1
> em0 at pci1 dev 0 function 0 "Intel I210" rev 0x03: msi, address
> 00:0d:b9:55:96:04 ppb1 at pci0 dev 2 function 3 "AMD 16h PCIE" rev
> 0x00: msi pci2 at ppb1 bus 2
> em1 at pci2 dev 0 function 0 "Intel I210" rev 0x03: msi, address
> 00:0d:b9:55:96:05 ppb2 at pci0 dev 2 function 4 "AMD 16h PCIE" rev
> 0x00: msi pci3 at ppb2 bus 3
> em2 at pci3 dev 0 function 0 "Intel I210" rev 0x03: msi, address
> 00:0d:b9:55:96:06 ppb3 at pci0 dev 2 function 5 "AMD 16h PCIE" rev
> 0x00: msi pci4 at ppb3 bus 4
> athn0 at pci4 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 5 int
> 16 athn0: AR9280 rev 2 (2T2R), ROM rev 22, address 04:f0:21:45:6a:c4
> ccp0 at pci0 dev 8 function 0 "AMD 16h Crypto" rev 0x00
> xhci0 at pci0 dev 16 function 0 "AMD Bolton xHCI" rev 0x11: msi, xHCI
> 1.0 usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev
> 3.00/1.00 addr 1 ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA"
> rev 0x40: apic 4 int 19, AHCI 1.3 ahci0: port 0: 6.0Gb/s
> scsibus1 at ahci0: 32 targets
> sd0 at scsibus1 targ 0 lun 0: <ATA, TS128GMSA370, P122>
> naa.57c35481856c8911 sd0: 122104MB, 512 bytes/sector, 250069680
> sectors, thin ehci0 at pci0 dev 19 function 0 "AMD Hudson-2 USB2" rev
> 0x39 XXX reg=0xfe02e401 offset=0xc0 pme_d0=1 pme_d1=1 pme_d2=1
> pme_d3hot=1 pme_d3cold=1 * val=0x3e02e401 pme_d0=1 pme_d1=1 pme_d2=1
> pme_d3hot=0 pme_d3cold=0 !! reg=0xfe02e401 reg=0xfe02e401: apic 4 int
> 18 usb1 at ehci0: USB revision 2.0 uhub1 at usb1 configuration 1
> interface 0 "AMD EHCI root hub" rev 2.00/1.00 addr 1 piixpm0 at pci0
> dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x42: SMI iic0 at piixpm0
> iic1 at piixpm0 iic1: addr 0x4c 3e=00 48=00 4a=00 4e=00 fc=00 fe=00
> words 00=ffff 01=ffff 02=ffff 03=ffff 04=ffff 05=ffff 06=ffff 07=ffff
> pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11 sdhc0 at
> pci0 dev 20 function 7 "AMD Bolton SD/MMC" rev 0x01: apic 4 int 16
> sdhc0: SDHC 2.0, 50 MHz base clock sdmmc0 at sdhc0: 4-bit, sd
> high-speed, mmc high-speed, dma pchb2 at pci0 dev 24 function 0 "AMD
> 16h Link Cfg" rev 0x00 pchb3 at pci0 dev 24 function 1 "AMD 16h
> Address Map" rev 0x00 pchb4 at pci0 dev 24 function 2 "AMD 16h DRAM
> Cfg" rev 0x00 km0 at pci0 dev 24 function 3 "AMD 16h Misc Cfg" rev
> 0x00 pchb5 at pci0 dev 24 function 4 "AMD 16h CPU Power" rev 0x00
> pchb6 at pci0 dev 24 function 5 "AMD 16h Misc Cfg" rev 0x00 isa0 at
> pcib0 isadma0 at isa0
> com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
> com0: console
> com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
> com2 at isa0 port 0x3e8/8 irq 5: ns16550a, 16 byte fifo
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> lpt0 at isa0 port 0x378/4 irq 7
> intr_establish: pic ioapic0 pin 7: can't share type 3 with 2
> wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x53
> vmm0 at mainbus0: SVM/RVI
> ulpt0 at uhub0 port 4 configuration 1 interface 1 "Samsung
> Electronics Co., Ltd. M2070 Series" rev 2.00/1.00 addr 2 ulpt0: using
> bi-directional mode ugen0 at uhub0 port 4 configuration 1 "Samsung
> Electronics Co., Ltd. M2070 Series" rev 2.00/1.00 addr 2 uhub2 at
> uhub1 port 1 configuration 1 interface 0 "Advanced Micro Devices Hub"
> rev 2.00/0.18 addr 2 umb0 at uhub2 port 3 configuration 1 interface
> 12 "Sierra Wireless, Incorporated Sierra Wireless MC7455 Qualcomm\M-.
> Snapdragon? X7 LTE-A" rev 2.10/0.06 addr 3 ugen1 at uhub2 port 3
> configuration 1 "Sierra Wireless, Incorporated Sierra Wireless MC7455
> Qualcomm\M-. Snapdragon? X7 LTE-A" rev 2.10/0.06 addr 3 vscsi0 at
> root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at
> softraid0: 256 targets root on sd0a (f4c61a8acb9563fd.a) swap on sd0b
> dump on sd0b Process (pid 1) got signal 31 usbd_get_cdesc: current,
> len=25 usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=55
> usbd_get_cdesc: current, len=55
> wTotalLength free = 55
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=216
> usbd_get_cdesc: current, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=32
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: current, len=25
> usbd_get_cdesc: current, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=55
> wTotalLength free = 55
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=25
> wTotalLength free = 25
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> usbd_get_cdesc: index=0, len=216
> wTotalLength free = 216
> 
> 
> > > > pkg_add usbutils
> > > > lsusb
> > > > lsusb -d <vendor_id>:<product_id> -v    
> > > 
> > > # lsusb -v -d 04e8:3469
> > > Bus 000 Device 002: ID 04e8:3469 Samsung Electronics Co., Ltd 
> > > Device Descriptor:
> > >   bLength                18
> > >   bDescriptorType         1
> > >   bcdUSB               2.00
> > >   bDeviceClass            0 (Defined at Interface level)
> > >   bDeviceSubClass         0 
> > >   bDeviceProtocol         0 
> > >   bMaxPacketSize0        64
> > >   idVendor           0x04e8 Samsung Electronics Co., Ltd
> > >   idProduct          0x3469 
> > >   bcdDevice            1.00
> > >   iManufacturer           1 Samsung Electronics Co., Ltd.
> > >   iProduct                2 M2070 Series
> > >   iSerial                 3 ZF46B8KM2D02Z1A
> > >   bNumConfigurations      1
> > >   Configuration Descriptor:
> > >     bLength                 9
> > >     bDescriptorType         2
> > >     wTotalLength           55
> > >     bNumInterfaces          2
> > >     bConfigurationValue     1
> > >     iConfiguration          0 
> > >     bmAttributes         0xc0
> > >       Self Powered
> > >     MaxPower                2mA
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        0
> > >       bAlternateSetting       0
> > >       bNumEndpoints           2
> > >       bInterfaceClass       255 Vendor Specific Class
> > >       bInterfaceSubClass    255 Vendor Specific Subclass
> > >       bInterfaceProtocol    255 Vendor Specific Protocol
> > >       iInterface              0 
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x04  EP 4 OUT
> > >         bmAttributes            2
> > >           Transfer Type            Bulk
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0200  1x 512 bytes
> > >         bInterval              10
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x83  EP 3 IN
> > >         bmAttributes            2
> > >           Transfer Type            Bulk
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0200  1x 512 bytes
> > >         bInterval              10
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        1
> > >       bAlternateSetting       0
> > >       bNumEndpoints           2
> > >       bInterfaceClass         7 Printer
> > >       bInterfaceSubClass      1 Printer
> > >       bInterfaceProtocol      2 Bidirectional
> > >       iInterface              0 
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x02  EP 2 OUT
> > >         bmAttributes            2
> > >           Transfer Type            Bulk
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0200  1x 512 bytes
> > >         bInterval              10
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x81  EP 1 IN
> > >         bmAttributes            2
> > >           Transfer Type            Bulk
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0200  1x 512 bytes
> > >         bInterval              10
> > > Device Qualifier (for other device speed):
> > >   bLength                10
> > >   bDescriptorType         6
> > >   bcdUSB               2.00
> > >   bDeviceClass            0 (Defined at Interface level)
> > >   bDeviceSubClass         0 
> > >   bDeviceProtocol         0 
> > >   bMaxPacketSize0        64
> > >   bNumConfigurations      1
> > > Device Status:     0x0001
> > >   Self Powered
> > >   
> > 
> > 
> > Index: sys/dev/usb/usb.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/usb/usb.c,v
> > retrieving revision 1.124
> > diff -u -p -u -p -r1.124 usb.c
> > --- sys/dev/usb/usb.c       6 Oct 2019 17:11:51 -0000       1.124
> > +++ sys/dev/usb/usb.c       21 Aug 2020 10:53:12 -0000
> > @@ -772,7 +772,8 @@ usbioctl(dev_t devt, u_long cmd, caddr_t
> >             uio.uio_rw = UIO_READ;
> >             uio.uio_procp = p;
> >             error = uiomove((void *)cdesc, len, &uio);
> > -           free(cdesc, M_TEMP, UGETW(cdesc->wTotalLength));
> > +           printf("wTotalLength free = %d\n",
> > UGETW(cdesc->wTotalLength));
> > +           free(cdesc, M_TEMP, 0);
> >             return (error);
> >     }
> >  
> > Index: sys/dev/usb/usb_subr.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/usb/usb_subr.c,v
> > retrieving revision 1.151
> > diff -u -p -u -p -r1.151 usb_subr.c
> > --- sys/dev/usb/usb_subr.c  31 Jul 2020 10:49:33 -0000
> > 1.151 +++ sys/dev/usb/usb_subr.c    21 Aug 2020 10:53:12 -0000
> > @@ -1376,14 +1376,14 @@ usbd_get_cdesc(struct usbd_device *dev, 
> >                     *lenp = len;
> >             cdesc = malloc(len, M_TEMP, M_WAITOK);
> >             memcpy(cdesc, tdesc, len);
> > -           DPRINTFN(5,("%s: current, len=%u\n", __func__,
> > len));
> > +           printf("%s: current, len=%u\n", __func__, len);
> >     } else {
> >             err = usbd_get_desc(dev, UDESC_CONFIG, index,
> >                 USB_CONFIG_DESCRIPTOR_SIZE, &cdescr);
> >             if (err || cdescr.bDescriptorType != UDESC_CONFIG)
> >                     return (0);
> >             len = UGETW(cdescr.wTotalLength);
> > -           DPRINTFN(5,("%s: index=%d, len=%u\n", __func__,
> > index, len));
> > +           printf("%s: index=%d, len=%u\n", __func__, index,
> > len); if (lenp)
> >                     *lenp = len;
> >             cdesc = malloc(len, M_TEMP, M_WAITOK);  
> 



-- 
[ Marcus Glocker, [email protected], http://nazgul.ch                   ]

Reply via email to