Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Feb 2012 20:45:40 +0530
From:      "Desai, Kashyap" <Kashyap.Desai@lsi.com>
To:        Johan Hendriks <joh.hendriks@gmail.com>
Cc:        freebsd-stable <freebsd-stable@freebsd.org>
Subject:   RE: LSI supported mps(4) driver in stable/9 and stable/8
Message-ID:  <B2FD678A64EAAD45B089B123FDFC3ED729A3414E2E@inbmail01.lsi.com>
In-Reply-To: <4F2BF93F.4060407@gmail.com>
References:  <20120202191105.GA55719@nargothrond.kdm.org> <4F2BF270.70303@gmail.com> <B2FD678A64EAAD45B089B123FDFC3ED729A3414E2A@inbmail01.lsi.com> <4F2BF93F.4060407@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--_002_B2FD678A64EAAD45B089B123FDFC3ED729A3414E2Einbmail01lsic_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Try attached patch.! (This patch is not taken against upstream code, so you=
 may see some hunk fail.)

~ Kashyap

> -----Original Message-----
> From: Johan Hendriks [mailto:joh.hendriks@gmail.com]
> Sent: Friday, February 03, 2012 8:42 PM
> To: Desai, Kashyap
> Cc: freebsd-stable
> Subject: Re: LSI supported mps(4) driver in stable/9 and stable/8
>
> Desai, Kashyap schreef:
> > Hi Johan,
> >
> > I have already figure out this issue in our lab.
> >
> > I also have fix for this issue. (Just don't want to create regression,
> that is why I have not posted outside)
> > Since you have seen similar issue, It is worth to try my patch.
> >
> > My machine is not getting IP right now. I will send you patch once my
> machine is in network ?
> >
> > ~ Kashyap
> >
> >
> >> -----Original Message-----
> >> From: owner-freebsd-stable@freebsd.org [mailto:owner-freebsd-
> >> stable@freebsd.org] On Behalf Of Johan Hendriks
> >> Sent: Friday, February 03, 2012 8:13 PM
> >> To: Kenneth D. Merry
> >> Cc: freebsd-stable
> >> Subject: Re: LSI supported mps(4) driver in stable/9 and stable/8
> >>
> >> Kenneth D. Merry schreef:
> >>> Hi folks,
> >>>
> >>> The LSI-supported version of the mps(4) driver that supports their
> 6Gb
> >> SAS
> >>> HBAs as well as WarpDrive controllers, is now in stable/9 and
> >> stable/8.
> >>> Please test it out and let me and Kashyap (CCed) know if you run
> into
> >>> any problems.
> >>>
> >>> In addition to supporting WarpDrive, the driver also supports
> >> Integrated
> >>> RAID.
> >>>
> >>> Thanks to LSI for doing the work on this driver!
> >>>
> >>> Note that the CAM infrastructure changes that went into FreeBSD/head
> >> along
> >>> with this driver have not gone into either stable/9 or stable/8.
> Only
> >> the
> >>> driver itself has been merged.
> >>>
> >>> The CAM infrastructure changes depend on some other da(4) driver
> >> changes
> >>> that will need to get merged before they can go back.  If that merge
> >>> happens, it will probably only be into stable/9.
> >>>
> >>> A couple of notes about issues with this driver:
> >>>
> >>>    - Unlike the previous mps(4) driver, it probes sequentially.  If
> you
> >> have
> >>>      a lot of drives in your system, it will take a while to probe
> them
> >> all.
> >>>    - You may see warning messages like this:
> >>>
> >>> _mapping_add_new_device: failed to add the device with handle 0x0019
> >> to persiste
> >>> nt table because there is no free space available
> >>> _mapping_add_new_device: failed to add the device with handle 0x001a
> >> to persiste
> >>> nt table because there is no free space available
> >>>
> >>>    - The driver is not endian safe.  (It assumes a little endian
> >> machine.)
> >>>      This is not new, the previous version of the driver had the
> same
> >> issue.
> >>> The LSI folks know about these issues.  The driver has passed their
> >> testing
> >>> process.
> >>>
> >>> Many thanks to LSI for going through the effort to support FreeBSD.
> >>>
> >>> Ken
> >> Hello Ken.
> >>
> >> Just updated our 16 bay server. did a csup today.
> >> did try some commands, it looked like the drives got husseled.
> >>
> >> But after giving the command camcontrol rescan all it does not give
> back
> >> the prompt.
> >> Also top shows me the following.
> >> 1589 root        1  20    0 16384K  1376K cbwait  3   0:00  0.00%
> >> camcontrol
> >>
> >> # on another console things works
> >> filer01# camcontrol devlist
> >> <ATA WDC WD800JD-60LS 1D07>         at scbus0 target 8 lun 0
> (pass0,da0)
> >> <ATA WDC WD800JD-60LS 1D07>         at scbus0 target 9 lun 0
> (pass1,da1)
> >> <ATA WDC WD2500AAJS-6 2E25>         at scbus0 target 10 lun 0
> (pass2,da2)
> >> <ATA WDC WD2500JS-60M 2E04>         at scbus0 target 11 lun 0
> (pass3,da3)
> >> <ATA WDC WD2500JS-60M 2E04>         at scbus0 target 12 lun 0
> (pass4,da4)
> >> <ATA ST3250620NS BJH>               at scbus0 target 13 lun 0
> (pass5,da5)
> >> <LSI CORP SAS2X28 0717>             at scbus0 target 16 lun 0
> >> (probe16,ses0,pass6)
> >> <ATA Maxtor 6L080M0 1G10>           at scbus0 target 17 lun 0
> (pass7,da6)
> >> <ATA Maxtor 6L080M0 1G10>           at scbus0 target 18 lun 0
> (pass8,da7)
> >> <ATA WDC WD800JD-60LS 1D07>         at scbus0 target 19 lun 0
> (pass9,da8)
> >> <ATA WDC WD800JD-60LU 1D07>         at scbus0 target 20 lun 0
> >> (pass10,da9)
> >> <ATA GB0250EAFJF HPG6>              at scbus0 target 21 lun 0
> >> (pass11,da10)
> >> <ATA ST3250620NS 3BJP>              at scbus0 target 22 lun 0
> >> (pass12,da11)
> >> <ATA ST3250620NS 3BJP>              at scbus0 target 23 lun 0
> >> (pass13,da12)
> >> <ATA ST3250620NS 3BJP>              at scbus0 target 24 lun 0
> >> (pass14,da13)
> >> <ATA ST3250310AS B>                 at scbus0 target 27 lun 0
> >> (pass15,da14)
> >> <ATA ST3250620NS 3BJP>              at scbus0 target 28 lun 0
> >> (pass16,da15)
> >> <ST3808110AS 3.AJJ>                 at scbus1 target 0 lun 0
> >> (ada0,pass17)
> >> <TSSTcorp CDDVDW SN-208BB SB00>     at scbus3 target 0 lun 0
> (pass18,cd0)
> >>
> >> The controller is a LSI 9211-8i with IT firmware.
> >>
> >> here is the dmesg
> >> Copyright (c) 1992-2012 The FreeBSD Project.
> >> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993,
> 1994
> >>           The Regents of the University of California. All rights
> >> reserved.
> >> FreeBSD is a registered trademark of The FreeBSD Foundation.
> >> FreeBSD 9.0-STABLE #0: Fri Feb  3 10:27:18 CET 2012
> >>       root@filer01.neuteboom.local:/usr/obj/usr/src/sys/KRNL amd64
> >> CPU: Intel(R) Xeon(R) CPU E31220 @ 3.10GHz (3093.04-MHz K8-class CPU)
> >>     Origin =3D "GenuineIntel"  Id =3D 0x206a7  Family =3D 6  Model =3D=
 2a
> >> Stepping =3D 7
> >>
> >>
> Features=3D0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PG=
E
> >> ,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
> >>
> >>
> Features2=3D0x15bae3ff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,S=
S
> >> SE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,XSAVE,AVX>
> >>     AMD Features=3D0x28100800<SYSCALL,NX,RDTSCP,LM>
> >>     AMD Features2=3D0x1<LAHF>
> >>     TSC: P-state invariant, performance statistics
> >> real memory  =3D 17179869184 (16384 MB)
> >> avail memory =3D 16493441024 (15729 MB)
> >> Event timer "LAPIC" quality 600
> >> ACPI APIC Table:<SUPERM SMCI--MB>
> >> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> >> FreeBSD/SMP: 1 package(s) x 4 core(s)
> >>    cpu0 (BSP): APIC ID:  0
> >>    cpu1 (AP): APIC ID:  2
> >>    cpu2 (AP): APIC ID:  4
> >>    cpu3 (AP): APIC ID:  6
> >> ioapic0<Version 2.0>  irqs 0-23 on motherboard
> >> kbd1 at kbdmux0
> >> acpi0:<SUPERM SMCI--MB>  on motherboard
> >> acpi0: Power Button (fixed)
> >> Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
> >> acpi_timer0:<24-bit timer at 3.579545MHz>  port 0x408-0x40b on acpi0
> >> cpu0:<ACPI CPU>  on acpi0
> >> cpu1:<ACPI CPU>  on acpi0
> >> cpu2:<ACPI CPU>  on acpi0
> >> cpu3:<ACPI CPU>  on acpi0
> >> pcib0:<ACPI Host-PCI bridge>  port 0xcf8-0xcff on acpi0
> >> pci0:<ACPI PCI bus>  on pcib0
> >> pcib1:<ACPI PCI-PCI bridge>  irq 19 at device 6.0 on pci0
> >> pci1:<ACPI PCI bus>  on pcib1
> >> mps0:<LSI SAS2008>  port 0xe000-0xe0ff mem 0xfb600000-0xfb603fff irq
> 19
> >> at device 0.0 on pci1
> >> mps0: Firmware: 11.00.00.00, Driver: 11.255.03.00-fbsd
> >> mps0: IOCCapabilities:
> >>
> 1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDis
> >> c>
> >> em0:<Intel(R) PRO/1000 Network Connection 7.2.3>  port 0xf020-0xf03f
> mem
> >> 0xfb800000-0xfb81ffff,0xfb824000-0xfb824fff irq 20 at device 25.0 on
> >> pci0
> >> em0: Using an MSI interrupt
> >> em0: Ethernet address: 00:25:90:57:20:bd
> >> ehci0:<EHCI (generic) USB 2.0 controller>  mem 0xfb823000-0xfb8233ff
> irq
> >> 16 at device 26.0 on pci0
> >> usbus0: EHCI version 1.0
> >> usbus0:<EHCI (generic) USB 2.0 controller>  on ehci0
> >> pcib2:<ACPI PCI-PCI bridge>  irq 17 at device 28.0 on pci0
> >> pci2:<ACPI PCI bus>  on pcib2
> >> pcib3:<ACPI PCI-PCI bridge>  irq 17 at device 28.4 on pci0
> >> pci3:<ACPI PCI bus>  on pcib3
> >> em1:<Intel(R) PRO/1000 Network Connection 7.2.3>  port 0xd000-0xd01f
> mem
> >> 0xfb700000-0xfb71ffff,0xfb720000-0xfb723fff irq 16 at device 0.0 on
> pci3
> >> em1: Using MSIX interrupts with 3 vectors
> >> em1: Ethernet address: 00:25:90:57:20:bc
> >> ehci1:<EHCI (generic) USB 2.0 controller>  mem 0xfb822000-0xfb8223ff
> irq
> >> 23 at device 29.0 on pci0
> >> usbus1: EHCI version 1.0
> >> usbus1:<EHCI (generic) USB 2.0 controller>  on ehci1
> >> pcib4:<ACPI PCI-PCI bridge>  at device 30.0 on pci0
> >> pci4:<ACPI PCI bus>  on pcib4
> >> vgapci0:<VGA-compatible display>  mem
> >> 0xf9000000-0xf9ffffff,0xfb000000-0xfb003fff,0xfa800000-0xfaffffff irq
> 23
> >> at device 3.0 on pci4
> >> isab0:<PCI-ISA bridge>  at device 31.0 on pci0
> >> isa0:<ISA bus>  on isab0
> >> ahci0:<Intel Cougar Point AHCI SATA controller>  port
> >> 0xf070-0xf077,0xf060-0xf063,0xf050-0xf057,0xf040-0xf043,0xf000-0xf01f
> >> mem 0xfb821000-0xfb8217ff irq 19 at device 31.2 on pci0
> >> ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
> >> ahcich0:<AHCI channel>  at channel 0 on ahci0
> >> ahcich1:<AHCI channel>  at channel 1 on ahci0
> >> ahcich2:<AHCI channel>  at channel 2 on ahci0
> >> ahcich3:<AHCI channel>  at channel 3 on ahci0
> >> ahcich4:<AHCI channel>  at channel 4 on ahci0
> >> ahcich5:<AHCI channel>  at channel 5 on ahci0
> >> pci0:<serial bus, SMBus>  at device 31.3 (no driver attached)
> >> acpi_button0:<Power Button>  on acpi0
> >> hpet0:<High Precision Event Timer>  iomem 0xfed00000-0xfed003ff on
> acpi0
> >> ahcich0:<AHCI channel>  at channel 0 on ahci0
> >> ahcich1:<AHCI channel>  at channel 1 on ahci0
> >> ahcich2:<AHCI channel>  at channel 2 on ahci0
> >> ahcich3:<AHCI channel>  at channel 3 on ahci0
> >> ahcich4:<AHCI channel>  at channel 4 on ahci0
> >> ahcich5:<AHCI channel>  at channel 5 on ahci0
> >> pci0:<serial bus, SMBus>  at device 31.3 (no driver attached)
> >> acpi_button0:<Power Button>  on acpi0
> >> hpet0:<High Precision Event Timer>  iomem 0xfed00000-0xfed003ff on
> acpi0
> >> Timecounter "HPET" frequency 14318180 Hz quality 950
> >> Event timer "HPET" frequency 14318180 Hz quality 550
> >> Event timer "HPET1" frequency 14318180 Hz quality 440
> >> Event timer "HPET2" frequency 14318180 Hz quality 440
> >> Event timer "HPET3" frequency 14318180 Hz quality 440
> >> Event timer "HPET4" frequency 14318180 Hz quality 440
> >> attimer0:<AT timer>  port 0x40-0x43 irq 0 on acpi0
> >> Timecounter "i8254" frequency 1193182 Hz quality 0
> >> Event timer "i8254" frequency 1193182 Hz quality 100
> >> atrtc0:<AT realtime clock>  port 0x70-0x71 irq 8 on acpi0
> >> Event timer "RTC" frequency 32768 Hz quality 0
> >> atkbdc0:<Keyboard controller (i8042)>  port 0x60,0x64 irq 1 on acpi0
> >> atkbd0:<AT Keyboard>  irq 1 on atkbdc0
> >> kbd0 at atkbd0
> >> atkbd0: [GIANT-LOCKED]
> >> uart0:<16550 or compatible>  port 0x3f8-0x3ff irq 4 flags 0x10 on
> acpi0
> >> uart1:<16550 or compatible>  port 0x2f8-0x2ff irq 3 on acpi0
> >> uart2:<16550 or compatible>  port 0x3e8-0x3ef irq 10 on acpi0
> >> orm0:<ISA Option ROMs>  at iomem 0xc0000-0xc7fff,0xc8000-0xcdfff on
> isa0
> >> sc0:<System console>  at flags 0x100 on isa0
> >> sc0: VGA<16 virtual consoles, flags=3D0x300>
> >> vga0:<Generic ISA VGA>  at port 0x3c0-0x3df iomem 0xa0000-0xbffff on
> >> isa0
> >> ppc0: cannot reserve I/O port range
> >> est0:<Enhanced SpeedStep Frequency Control>  on cpu0
> >> p4tcc0:<CPU Frequency Thermal Control>  on cpu0
> >> est1:<Enhanced SpeedStep Frequency Control>  on cpu1
> >> p4tcc1:<CPU Frequency Thermal Control>  on cpu1
> >> est2:<Enhanced SpeedStep Frequency Control>  on cpu2
> >> p4tcc2:<CPU Frequency Thermal Control>  on cpu2
> >> est3:<Enhanced SpeedStep Frequency Control>  on cpu3
> >> p4tcc3:<CPU Frequency Thermal Control>  on cpu3
> >> ZFS filesystem version 5
> >> ZFS storage pool version 28
> >> Timecounters tick every 1.000 msec
> >> usbus0: 480Mbps High Speed USB v2.0
> >> usbus1: 480Mbps High Speed USB v2.0
> >> ugen0.1:<Intel>  at usbus0
> >> uhub0:<Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1>  on
> usbus0
> >> ugen1.1:<Intel>  at usbus1
> >> uhub1:<Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1>  on
> usbus1
> >> da0 at mps0 bus 0 scbus0 target 8 lun 0
> >> da0:<ATA WDC WD800JD-60LS 1D07>  Fixed Direct Access SCSI-6 device
> >> da0: 300.000MB/s transfers
> >> da0: Command Queueing enabled
> >> da0: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da1 at mps0 bus 0 scbus0 target 9 lun 0
> >> da1:<ATA WDC WD800JD-60LS 1D07>  Fixed Direct Access SCSI-6 device
> >> da1: 300.000MB/s transfers
> >> da1: Command Queueing enabled
> >> da1: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da2 at mps0 bus 0 scbus0 target 10 lun 0
> >> da2:<ATA WDC WD2500AAJS-6 2E25>  Fixed Direct Access SCSI-6 device
> >> da2: 300.000MB/s transfers
> >> da2: Command Queueing enabled
> >> da2: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da3 at mps0 bus 0 scbus0 target 11 lun 0
> >> da3:<ATA WDC WD2500JS-60M 2E04>  Fixed Direct Access SCSI-6 device
> >> da3: 300.000MB/s transfers
> >> da3: Command Queueing enabled
> >> da3: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da4 at mps0 bus 0 scbus0 target 12 lun 0
> >> da4:<ATA WDC WD2500JS-60M 2E04>  Fixed Direct Access SCSI-6 device
> >> da4: 300.000MB/s transfers
> >> da4: Command Queueing enabled
> >> da4: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da5 at mps0 bus 0 scbus0 target 13 lun 0
> >> da5:<ATA ST3250620NS BJH>  Fixed Direct Access SCSI-6 device
> >> da5: 150.000MB/s transfers
> >> da5: Command Queueing enabled
> >> da5: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da8 at mps0 bus 0 scbus0 target 19 lun 0
> >> da8:<ATA WDC WD800JD-60LS 1D07>  Fixed Direct Access SCSI-6 device
> >> da8: 300.000MB/s transfers
> >> da8: Command Queueing enabled
> >> da8: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da9 at mps0 bus 0 scbus0 target 20 lun 0
> >> da9:<ATA WDC WD800JD-60LU 1D07>  Fixed Direct Access SCSI-6 device
> >> da9: 300.000MB/s transfers
> >> da9: Command Queueing enabled
> >> da9: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da11 at mps0 bus 0 scbus0 target 22 lun 0
> >> da11:<ATA ST3250620NS 3BJP>  Fixed Direct Access SCSI-6 device
> >> da11: 150.000MB/s transfers
> >> da11: Command Queueing enabled
> >> da11: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da12 at mps0 bus 0 scbus0 target 23 lun 0
> >> da12:<ATA ST3250620NS 3BJP>  Fixed Direct Access SCSI-6 device
> >> da12: 150.000MB/s transfers
> >> da12: Command Queueing enabled
> >> da12: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da13 at mps0 bus 0 scbus0 target 24 lun 0
> >> da13:<ATA ST3250620NS 3BJP>  Fixed Direct Access SCSI-6 device
> >> da13: 150.000MB/s transfers
> >> da13: Command Queueing enabled
> >> da13: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da14 at mps0 bus 0 scbus0 target 27 lun 0
> >> da14:<ATA ST3250310AS B>  Fixed Direct Access SCSI-6 device
> >> da14: 300.000MB/s transfers
> >> da14: Command Queueing enabled
> >> da14: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> da15 at mps0 bus 0 scbus0 target 28 lun 0
> >> da15:<ATA ST3250620NS 3BJP>  Fixed Direct Access SCSI-6 device
> >> da15: 150.000MB/s transfers
> >> da15: Command Queueing enabled
> >> da15: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> ses0 at mps0 bus 0 scbus0 target 16 lun 0
> >> ses0:<LSI CORP SAS2X28 0717>  Fixed Enclosure Services SCSI-5 device
> >> ses0: 600.000MB/s transfers
> >> ses0: Command Queueing enabled
> >> ses0: SCSI-3 SES Device
> >> ada0 at ahcich0 bus 0 scbus1 target 0 lun 0
> >> ada0:<ST3808110AS 3.AJJ>  ATA-7 SATA 1.x device
> >> ada0: 150.000MB/s transfers (SATA 1.x, UDMA5, PIO 8192bytes)
> >> ada0: 76319MB (156301488 512 byte sectors: 16H 63S/T 16383C)
> >> ada0: Previously was known as ad4
> >> cd0 at ahcich2 bus 0 scbus3 target 0 lun 0
> >> SMP: AP CPU #3 Launched!
> >> cd0:<TSSTcorp CDDVDW SN-208BB SB00>  Removable CD-ROM SCSI-0 device
> >> cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO
> >> 8192bytes)
> >> cd0: Attempt to query device size failed: NOT READY, Medium not
> present
> >> - tray closed
> >> SMP: AP CPU #2 Launched!
> >> SMP: AP CPU #1 Launched!
> >> da6 at mps0 bus 0 scbus0 target 17 lun 0
> >> da6:<ATA Maxtor 6L080M0 1G10>  Fixed Direct Access SCSI-6 device
> >> da6: 150.000MB/s transfers
> >> da6: Command Queueing enabled
> >> da6: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da7 at mps0 bus 0 scbus0 target 18 lun 0
> >> da7:<ATA Maxtor 6L080M0 1G10>  Fixed Direct Access SCSI-6 device
> >> da7: 150.000MB/s transfers
> >> da7: Command Queueing enabled
> >> da7: 76319MB (156301488 512 byte sectors: 255H 63S/T 9729C)
> >> da10 at mps0 bus 0 scbus0 target 21 lun 0
> >> da10:<ATA GB0250EAFJF HPG6>  Fixed Direct Access SCSI-6 device
> >> da10: 300.000MB/s transfers
> >> da10: Command Queueing enabled
> >> da10: 238475MB (488397168 512 byte sectors: 255H 63S/T 30401C)
> >> GEOM: da15s1: geometry does not match label (16h,63s !=3D 255h,63s).
> >> uhub1: 2 ports with 2 removable, self powered
> >> uhub0: 2 ports with 2 removable, self powered
> >> Root mount waiting for: usbus1 usbus0
> >> ugen0.2:<vendor 0x8087>  at usbus0
> >> uhub2:<vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr
> 2>
> >> on usbus0
> >> ugen1.2:<vendor 0x8087>  at usbus1
> >> uhub3:<vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr
> 2>
> >> on usbus1
> >> Root mount waiting for: usbus1 usbus0
> >> uhub3: 6 ports with 6 removable, self powered
> >> uhub2: 6 ports with 6 removable, self powered
> >> ugen0.3:<Winbond Electronics Corp>  at usbus0
> >> ums0:<Winbond Electronics Corp Hermon USB hidmouse Device, class 0/0,
> >> rev 1.10/0.01, addr 3>  on usbus0
> >> ums0: 3 buttons and [Z] coordinates ID=3D0
> >> ukbd0:<Winbond Electronics Corp Hermon USB hidmouse Device, class
> 0/0,
> >> rev 1.10/0.01, addr 3>  on usbus0
> >> kbd2 at ukbd0
> >> Trying to mount root from ufs:/dev/ada0p2 [rw]...
> >> em0: link state changed to UP
> >>
> >> thanks for your work.
> >>
> >> regards
> >> Johan
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> freebsd-stable@freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> >> To unsubscribe, send any mail to "freebsd-stable-
> >> unsubscribe@freebsd.org"
>
> Ok i will try the patch, no hurry, i am back at the office on monday...
> regards
> Johan

--_002_B2FD678A64EAAD45B089B123FDFC3ED729A3414E2Einbmail01lsic_
Content-Type: application/octet-stream; name="rescan_upstream.patch"
Content-Description: rescan_upstream.patch
Content-Disposition: attachment; filename="rescan_upstream.patch"; size=31155; 
	creation-date="Fri, 03 Feb 2012 15:14:34 GMT";
	modification-date="Sat, 04 Feb 2012 00:19:15 GMT"
Content-Transfer-Encoding: base64

ZGlmZiAtYXVycCBGUkVFQlNELVNBUzItMTIuMDAuMDAuMDEvbXBzbHNpLXNvdXJjZS0xMi4wMC4w
MC4wMS9zeXMvZGV2L21wcy9tcHMuYyBGUkVFQlNELVNBUzItMTIuMjU1LjAwLjAyL21wc2xzaS1z
b3VyY2UtMTIuMjU1LjAwLjAyL3N5cy9kZXYvbXBzL21wcy5jCi0tLSBGUkVFQlNELVNBUzItMTIu
MDAuMDAuMDEvbXBzbHNpLXNvdXJjZS0xMi4wMC4wMC4wMS9zeXMvZGV2L21wcy9tcHMuYwkyMDEy
LTAxLTMwIDIwOjQ5OjA5LjAwMDAwMDAwMCArMDUzMAorKysgRlJFRUJTRC1TQVMyLTEyLjI1NS4w
MC4wMi9tcHNsc2ktc291cmNlLTEyLjI1NS4wMC4wMi9zeXMvZGV2L21wcy9tcHMuYwkyMDEyLTAx
LTE3IDA0OjMyOjE1LjAwMDAwMDAwMCArMDUzMApAQCAtNTI5LDcgKzUyOSw3IEBAIG1wc19lbnF1
ZXVlX3JlcXVlc3Qoc3RydWN0IG1wc19zb2Z0YyAqc2MKIAltcHNfZHByaW50KHNjLCBNUFNfVFJB
Q0UsICIlcyBTTUlEICV1IGNtICVwIGNjYiAlcFxuIiwgX19mdW5jX18sCiAJICAgIGNtLT5jbV9k
ZXNjLkRlZmF1bHQuU01JRCwgY20sIGNtLT5jbV9jY2IpOwogCi0JaWYgKHNjLT5tcHNfZmxhZ3Mg
JiBNUFNfRkxBR1NfQVRUQUNIX0RPTkUpCisJaWYgKHNjLT5tcHNfZmxhZ3MgJiBNUFNfRkxBR1Nf
QVRUQUNIX0RPTkUgJiYgIShzYy0+bXBzX2ZsYWdzICYgTVBTX0ZMQUdTX1NIVVRET1dOKSkKIAkJ
bXR4X2Fzc2VydCgmc2MtPm1wc19tdHgsIE1BX09XTkVEKTsKIAogCWlmICgrK3NjLT5pb19jbWRz
X2FjdGl2ZSA+IHNjLT5pb19jbWRzX2hpZ2h3YXRlcikKQEAgLTEzNDIsNiArMTM0Miw4IEBAIG1w
c19mcmVlKHN0cnVjdCBtcHNfc29mdGMgKnNjKQogCSAgICAoKGVycm9yID0gbXBzX2RldGFjaF9z
YXMoc2MpKSAhPSAwKSkKIAkJcmV0dXJuIChlcnJvcik7CiAKKwltcHNfZGV0YWNoX3VzZXIoc2Mp
OworCiAJLyogUHV0IHRoZSBJT0MgYmFjayBpbiB0aGUgUkVBRFkgc3RhdGUuICovCiAJbXBzX2xv
Y2soc2MpOwogCWlmICgoZXJyb3IgPSBtcHNfdHJhbnNpdGlvbl9yZWFkeShzYykpICE9IDApIHsK
QEAgLTIxNDksNyArMjE1MSw3IEBAIG1wc193YWl0X2NvbW1hbmQoc3RydWN0IG1wc19zb2Z0YyAq
c2MsIHMKIAllcnJvciA9IG1wc19tYXBfY29tbWFuZChzYywgY20pOwogCWlmICgoZXJyb3IgIT0g
MCkgJiYgKGVycm9yICE9IEVJTlBST0dSRVNTKSkKIAkJcmV0dXJuIChlcnJvcik7Ci0JZXJyb3Ig
PSBtc2xlZXAoY20sICZzYy0+bXBzX210eCwgMCwgIm1wc3dhaXQiLCB0aW1lb3V0KTsKKwllcnJv
ciA9IG1zbGVlcChjbSwgJnNjLT5tcHNfbXR4LCAwLCAibXBzd2FpdCIsIHRpbWVvdXQqaHopOwog
CWlmIChlcnJvciA9PSBFV09VTERCTE9DSykKIAkJZXJyb3IgPSBFVElNRURPVVQ7CiAJcmV0dXJu
IChlcnJvcik7CmRpZmYgLWF1cnAgRlJFRUJTRC1TQVMyLTEyLjAwLjAwLjAxL21wc2xzaS1zb3Vy
Y2UtMTIuMDAuMDAuMDEvc3lzL2Rldi9tcHMvbXBzX3Nhcy5jIEZSRUVCU0QtU0FTMi0xMi4yNTUu
MDAuMDIvbXBzbHNpLXNvdXJjZS0xMi4yNTUuMDAuMDIvc3lzL2Rldi9tcHMvbXBzX3Nhcy5jCi0t
LSBGUkVFQlNELVNBUzItMTIuMDAuMDAuMDEvbXBzbHNpLXNvdXJjZS0xMi4wMC4wMC4wMS9zeXMv
ZGV2L21wcy9tcHNfc2FzLmMJMjAxMi0wMS0zMCAyMDo0OTowOS4wMDAwMDAwMDAgKzA1MzAKKysr
IEZSRUVCU0QtU0FTMi0xMi4yNTUuMDAuMDIvbXBzbHNpLXNvdXJjZS0xMi4yNTUuMDAuMDIvc3lz
L2Rldi9tcHMvbXBzX3Nhcy5jCTIwMTItMDEtMTcgMDQ6MzI6MTUuMDAwMDAwMDAwICswNTMwCkBA
IC0xMzgsNyArMTM4LDYgQEAgc3RhdGljIHVpbnQ4X3Qgb3BfY29kZV9wcm90WzI1Nl0gPSB7CiAK
IE1BTExPQ19ERUZJTkUoTV9NUFNTQVMsICJNUFNTQVMiLCAiTVBTIFNBUyBtZW1vcnkiKTsKIAot
c3RhdGljIHN0cnVjdCBtcHNzYXNfdGFyZ2V0ICogbXBzc2FzX2ZpbmRfdGFyZ2V0X2J5X2hhbmRs
ZShzdHJ1Y3QgbXBzc2FzX3NvZnRjICosIGludCwgdWludDE2X3QpOwogc3RhdGljIHZvaWQgbXBz
c2FzX2Rpc2NvdmVyeV90aW1lb3V0KHZvaWQgKmRhdGEpOwogc3RhdGljIHZvaWQgbXBzc2FzX3Jl
bW92ZV9kZXZpY2Uoc3RydWN0IG1wc19zb2Z0YyAqLCBzdHJ1Y3QgbXBzX2NvbW1hbmQgKik7CiBz
dGF0aWMgdm9pZCBtcHNzYXNfcmVtb3ZlX2NvbXBsZXRlKHN0cnVjdCBtcHNfc29mdGMgKiwgc3Ry
dWN0IG1wc19jb21tYW5kICopOwpAQCAtMTY5LDcgKzE2OCw3IEBAIHN0YXRpYyBpbnQgbXBzc2Fz
X3NlbmRfcG9ydGVuYWJsZShzdHJ1Y3QKIHN0YXRpYyB2b2lkIG1wc3Nhc19wb3J0ZW5hYmxlX2Nv
bXBsZXRlKHN0cnVjdCBtcHNfc29mdGMgKnNjLAogICAgIHN0cnVjdCBtcHNfY29tbWFuZCAqY20p
OwogCi1zdGF0aWMgc3RydWN0IG1wc3Nhc190YXJnZXQgKgorc3RydWN0IG1wc3Nhc190YXJnZXQg
KgogbXBzc2FzX2ZpbmRfdGFyZ2V0X2J5X2hhbmRsZShzdHJ1Y3QgbXBzc2FzX3NvZnRjICpzYXNz
YywgaW50IHN0YXJ0LCB1aW50MTZfdCBoYW5kbGUpCiB7CiAJc3RydWN0IG1wc3Nhc190YXJnZXQg
KnRhcmdldDsKQEAgLTM0MiwyMiArMzQxLDEyMyBAQCBzdGF0aWMgdm9pZCBtcHNzYXNfbG9nX2Nv
bW1hbmQoc3RydWN0IG1wCiAJdmFfZW5kKGFwKTsKIH0KIAorCiBzdGF0aWMgdm9pZAotbXBzc2Fz
X2xvc3RfdGFyZ2V0KHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHJ1Y3QgbXBzc2FzX3RhcmdldCAq
dGFyZykKK21wc3Nhc19yZW1vdmVfdm9sdW1lKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHJ1Y3Qg
bXBzX2NvbW1hbmQgKnRtKQogewotCXN0cnVjdCBtcHNzYXNfc29mdGMgKnNhc3NjID0gc2MtPnNh
c3NjOwotCXBhdGhfaWRfdCBwYXRoaWQgPSBjYW1fc2ltX3BhdGgoc2Fzc2MtPnNpbSk7Ci0Jc3Ry
dWN0IGNhbV9wYXRoICpwYXRoOworCU1QSTJfU0NTSV9UQVNLX01BTkFHRV9SRVBMWSAqcmVwbHk7
CisJc3RydWN0IG1wc3Nhc190YXJnZXQgKnRhcmc7CisJdWludDE2X3QgaGFuZGxlOworCisJbXBz
X2RwcmludChzYywgTVBTX0lORk8sICIlc1xuIiwgX19mdW5jX18pOworCisJcmVwbHkgPSAoTVBJ
Ml9TQ1NJX1RBU0tfTUFOQUdFX1JFUExZICopdG0tPmNtX3JlcGx5OworCWhhbmRsZSA9ICh1aW50
MTZfdCkodWludHB0cl90KXRtLT5jbV9jb21wbGV0ZV9kYXRhOworCXRhcmcgPSB0bS0+Y21fdGFy
ZzsKIAotCW1wc19wcmludGYoc2MsICIlcyB0YXJnZXRpZCAldVxuIiwgX19mdW5jX18sIHRhcmct
PnRpZCk7Ci0JaWYgKHhwdF9jcmVhdGVfcGF0aCgmcGF0aCwgTlVMTCwgcGF0aGlkLCB0YXJnLT50
aWQsIDApICE9IENBTV9SRVFfQ01QKSB7Ci0JCW1wc19wcmludGYoc2MsICJ1bmFibGUgdG8gY3Jl
YXRlIHBhdGggZm9yIGxvc3QgdGFyZ2V0ICVkXG4iLCAKLQkJICAgIHRhcmctPnRpZCk7CisJaWYg
KHJlcGx5ID09IE5VTEwpIHsKKwkJLyogWFhYIHJldHJ5IHRoZSByZW1vdmUgYWZ0ZXIgdGhlIGRp
YWcgcmVzZXQgY29tcGxldGVzPyAqLworCQltcHNfcHJpbnRmKHNjLCAiJXMgTlVMTCByZXBseSBy
ZXNldGluZyBkZXZpY2UgMHglMDR4XG4iLCAKKwkJICAgIF9fZnVuY19fLCBoYW5kbGUpOworCQlt
cHNzYXNfZnJlZV90bShzYywgdG0pOwogCQlyZXR1cm47CiAJfQogCi0JeHB0X2FzeW5jKEFDX0xP
U1RfREVWSUNFLCBwYXRoLCBOVUxMKTsKLQl4cHRfZnJlZV9wYXRoKHBhdGgpOworCWlmIChyZXBs
eS0+SU9DU3RhdHVzICE9IE1QSTJfSU9DU1RBVFVTX1NVQ0NFU1MpIHsKKwkJbXBzX3ByaW50Zihz
YywgIklPQ1N0YXR1cyA9IDB4JXggd2hpbGUgcmVzZXR0aW5nIGRldmljZSAweCV4XG4iLAorCQkg
ICByZXBseS0+SU9DU3RhdHVzLCBoYW5kbGUpOworCQltcHNzYXNfZnJlZV90bShzYywgdG0pOwor
CQlyZXR1cm47CisJfQorCisJbXBzX3ByaW50ZihzYywgIlJlc2V0IGFib3J0ZWQgJXUgY29tbWFu
ZHNcbiIsIHJlcGx5LT5UZXJtaW5hdGlvbkNvdW50KTsKKwltcHNfZnJlZV9yZXBseShzYywgdG0t
PmNtX3JlcGx5X2RhdGEpOworCXRtLT5jbV9yZXBseSA9IE5VTEw7CS8qIEVuc3VyZXMgdGhlIHRo
ZSByZXBseSB3b24ndCBnZXQgcmUtZnJlZWQgKi8KKworCW1wc19wcmludGYoc2MsICJjbGVhcmlu
ZyB0YXJnZXQgJXUgaGFuZGxlIDB4JTA0eFxuIiwgdGFyZy0+dGlkLCBoYW5kbGUpOworCQorCS8q
CisJICogRG9uJ3QgY2xlYXIgdGFyZ2V0IGlmIHJlbW92ZSBmYWlscyBiZWNhdXNlIHRoaW5ncyB3
aWxsIGdldCBjb25mdXNpbmcuCisJICogTGVhdmUgdGhlIGRldm5hbWUgYW5kIHNhc2FkZHIgaW50
YWN0IHNvIHRoYXQgd2Uga25vdyB0byBhdm9pZCByZXVzaW5nCisJICogdGhpcyB0YXJnZXQgaWQg
aWYgcG9zc2libGUsIGFuZCBzbyB3ZSBjYW4gYXNzaWduIHRoZSBzYW1lIHRhcmdldCBpZAorCSAq
IHRvIHRoaXMgZGV2aWNlIGlmIGl0IGNvbWVzIGJhY2sgaW4gdGhlIGZ1dHVyZS4KKwkgKi8KKwlp
ZiAocmVwbHktPklPQ1N0YXR1cyA9PSBNUEkyX0lPQ1NUQVRVU19TVUNDRVNTKSB7CisJCXRhcmcg
PSB0bS0+Y21fdGFyZzsKKwkJdGFyZy0+aGFuZGxlID0gMHgwOworCQl0YXJnLT5lbmNsX2hhbmRs
ZSA9IDB4MDsKKwkJdGFyZy0+ZW5jbF9zbG90ID0gMHgwOworCQl0YXJnLT5leHBfZGV2X2hhbmRs
ZSA9IDB4MDsKKwkJdGFyZy0+cGh5X251bSA9IDB4MDsKKwkJdGFyZy0+bGlua3JhdGUgPSAweDA7
CisJCXRhcmctPmRldmluZm8gPSAweDA7CisJCXRhcmctPmZsYWdzID0gMHgwOworCX0KKworCW1w
c3Nhc19mcmVlX3RtKHNjLCB0bSk7Cit9CisKKworLyoKKyAqIE5vIE5lZWQgdG8gY2FsbCAiTVBJ
Ml9TQVNfT1BfUkVNT1ZFX0RFVklDRSIgRm9yIFZvbHVtZSByZW1vdmFsLgorICogT3RoZXJ3aXNl
IFZvbHVtZSBEZWxldGUgaXMgc2FtZSBhcyBCYXJlIERyaXZlIFJlbW92YWwuCisgKi8KK3ZvaWQK
K21wc3Nhc19wcmVwYXJlX3ZvbHVtZV9yZW1vdmUoc3RydWN0IG1wc3Nhc19zb2Z0YyAqc2Fzc2Ms
IHVpbnQxNl90IGhhbmRsZSkKK3sKKwlNUEkyX1NDU0lfVEFTS19NQU5BR0VfUkVRVUVTVCAqcmVx
OworCXN0cnVjdCBtcHNfc29mdGMgKnNjOworCXN0cnVjdCBtcHNfY29tbWFuZCAqY207CisJc3Ry
dWN0IG1wc3Nhc190YXJnZXQgKnRhcmcgPSBOVUxMOworCisJbXBzX2RwcmludChzYXNzYy0+c2Ms
IE1QU19JTkZPLCAiJXNcbiIsIF9fZnVuY19fKTsKKwlzYyA9IHNhc3NjLT5zYzsKKworI2lmZGVm
IFdEX1NVUFBPUlQKKwkvKgorCSAqIElmIHRoaXMgaXMgYSBXRCBjb250cm9sbGVyLCBkZXRlcm1p
bmUgaWYgdGhlIGRpc2sgc2hvdWxkIGJlIGV4cG9zZWQKKwkgKiB0byB0aGUgT1Mgb3Igbm90LiAg
SWYgZGlzayBzaG91bGQgYmUgZXhwb3NlZCwgcmV0dXJuIGZyb20gdGhpcworCSAqIGZ1bmN0aW9u
IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcuCisJICovCisJaWYgKHNjLT5XRF9hdmFpbGFibGUgJiYg
KHNjLT5XRF9oaWRlX2V4cG9zZSA9PQorCSAgICBNUFNfV0RfRVhQT1NFX0FMV0FZUykpIHsKKwkJ
cmV0dXJuOworCX0KKyNlbmRpZiAvL1dEX1NVUFBPUlQKKworCXRhcmcgPSBtcHNzYXNfZmluZF90
YXJnZXRfYnlfaGFuZGxlKHNhc3NjLCAwLCBoYW5kbGUpOworCWlmICh0YXJnID09IE5VTEwpIHsK
KwkJLyogRklYTUU6IHdoYXQgaXMgdGhlIGFjdGlvbj8gKi8KKwkJLyogV2UgZG9uJ3Qga25vdyBh
Ym91dCB0aGlzIGRldmljZT8gKi8KKwkJcHJpbnRmKCIlcyAlZCA6IGludmFsaWQgaGFuZGxlIDB4
JXggXG4iLCBfX2Z1bmNfXyxfX0xJTkVfXywgaGFuZGxlKTsKKwkJcmV0dXJuOworCX0KKworCXRh
cmctPmZsYWdzIHw9IE1QU1NBU19UQVJHRVRfSU5SRU1PVkFMOworCisJY20gPSBtcHNzYXNfYWxs
b2NfdG0oc2MpOworCWlmIChjbSA9PSBOVUxMKSB7CisJCW1wc19wcmludGYoc2MsICIlczogY29t
bWFuZCBhbGxvYyBmYWlsdXJlXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybjsKKwl9CisKKwltcHNz
YXNfcmVzY2FuX3RhcmdldChzYywgdGFyZyk7CisKKwlyZXEgPSAoTVBJMl9TQ1NJX1RBU0tfTUFO
QUdFX1JFUVVFU1QgKiljbS0+Y21fcmVxOworCXJlcS0+RGV2SGFuZGxlID0gdGFyZy0+aGFuZGxl
OworCXJlcS0+RnVuY3Rpb24gPSBNUEkyX0ZVTkNUSU9OX1NDU0lfVEFTS19NR01UOworCXJlcS0+
VGFza1R5cGUgPSBNUEkyX1NDU0lUQVNLTUdNVF9UQVNLVFlQRV9UQVJHRVRfUkVTRVQ7CisKKwkv
KiBTQVMgSGFyZCBMaW5rIFJlc2V0IC8gU0FUQSBMaW5rIFJlc2V0ICovCisJcmVxLT5Nc2dGbGFn
cyA9IE1QSTJfU0NTSVRBU0tNR01UX01TR0ZMQUdTX0xJTktfUkVTRVQ7CisKKwljbS0+Y21fdGFy
ZyA9IHRhcmc7CisJY20tPmNtX2RhdGEgPSBOVUxMOworCWNtLT5jbV9kZXNjLkhpZ2hQcmlvcml0
eS5SZXF1ZXN0RmxhZ3MgPQorCSAgICBNUEkyX1JFUV9ERVNDUklQVF9GTEFHU19ISUdIX1BSSU9S
SVRZOworCWNtLT5jbV9jb21wbGV0ZSA9IG1wc3Nhc19yZW1vdmVfdm9sdW1lOworCWNtLT5jbV9j
b21wbGV0ZV9kYXRhID0gKHZvaWQgKikodWludHB0cl90KWhhbmRsZTsKKwltcHNfbWFwX2NvbW1h
bmQoc2MsIGNtKTsKIH0KIAogLyoKQEAgLTM3Nyw3ICs0NzcsNyBAQCBtcHNzYXNfcHJlcGFyZV9y
ZW1vdmUoc3RydWN0IG1wc3Nhc19zb2Z0CiAJc3RydWN0IG1wc19jb21tYW5kICpjbTsKIAlzdHJ1
Y3QgbXBzc2FzX3RhcmdldCAqdGFyZyA9IE5VTEw7CiAKLQltcHNfZHByaW50KHNhc3NjLT5zYywg
TVBTX1RSQUNFLCAiJXNcbiIsIF9fZnVuY19fKTsKKwltcHNfZHByaW50KHNhc3NjLT5zYywgTVBT
X0lORk8sICIlc1xuIiwgX19mdW5jX18pOwogCiAJLyoKIAkgKiBJZiB0aGlzIGlzIGEgV0QgY29u
dHJvbGxlciwgZGV0ZXJtaW5lIGlmIHRoZSBkaXNrIHNob3VsZCBiZSBleHBvc2VkCkBAIC0zOTQs
NyArNDk0LDcgQEAgbXBzc2FzX3ByZXBhcmVfcmVtb3ZlKHN0cnVjdCBtcHNzYXNfc29mdAogCWlm
ICh0YXJnID09IE5VTEwpIHsKIAkJLyogRklYTUU6IHdoYXQgaXMgdGhlIGFjdGlvbj8gKi8KIAkJ
LyogV2UgZG9uJ3Qga25vdyBhYm91dCB0aGlzIGRldmljZT8gKi8KLQkJcHJpbnRmKCIlczogaW52
YWxpZCBoYW5kbGUgMHgleCBcbiIsIF9fZnVuY19fLCBoYW5kbGUpOworCQlwcmludGYoIiVzICVk
IDogaW52YWxpZCBoYW5kbGUgMHgleCBcbiIsIF9fZnVuY19fLF9fTElORV9fLCBoYW5kbGUpOwog
CQlyZXR1cm47CiAJfQogCkBAIC00MDYsNyArNTA2LDcgQEAgbXBzc2FzX3ByZXBhcmVfcmVtb3Zl
KHN0cnVjdCBtcHNzYXNfc29mdAogCQlyZXR1cm47CiAJfQogCi0JbXBzc2FzX2xvc3RfdGFyZ2V0
KHNjLCB0YXJnKTsKKwltcHNzYXNfcmVzY2FuX3RhcmdldChzYywgdGFyZyk7CiAKIAlyZXEgPSAo
TVBJMl9TQ1NJX1RBU0tfTUFOQUdFX1JFUVVFU1QgKiljbS0+Y21fcmVxOwogCW1lbXNldChyZXEs
IDAsIHNpemVvZigqcmVxKSk7CkBAIC00MzQsNyArNTM0LDcgQEAgbXBzc2FzX3JlbW92ZV9kZXZp
Y2Uoc3RydWN0IG1wc19zb2Z0YyAqcwogCXN0cnVjdCBtcHNfY29tbWFuZCAqbmV4dF9jbTsKIAl1
aW50MTZfdCBoYW5kbGU7CiAKLQltcHNfZHByaW50KHNjLCBNUFNfVFJBQ0UsICIlc1xuIiwgX19m
dW5jX18pOworCW1wc19kcHJpbnQoc2MsIE1QU19JTkZPLCAiJXNcbiIsIF9fZnVuY19fKTsKIAog
CXJlcGx5ID0gKE1QSTJfU0NTSV9UQVNLX01BTkFHRV9SRVBMWSAqKXRtLT5jbV9yZXBseTsKIAlo
YW5kbGUgPSAodWludDE2X3QpKHVpbnRwdHJfdCl0bS0+Y21fY29tcGxldGVfZGF0YTsKQEAgLTUw
NSw3ICs2MDUsNyBAQCBtcHNzYXNfcmVtb3ZlX2NvbXBsZXRlKHN0cnVjdCBtcHNfc29mdGMgCiAJ
dWludDE2X3QgaGFuZGxlOwogCXN0cnVjdCBtcHNzYXNfdGFyZ2V0ICp0YXJnOwogCi0JbXBzX2Rw
cmludChzYywgTVBTX1RSQUNFLCAiJXNcbiIsIF9fZnVuY19fKTsKKwltcHNfZHByaW50KHNjLCBN
UFNfSU5GTywgIiVzXG4iLCBfX2Z1bmNfXyk7CiAKIAlyZXBseSA9IChNUEkyX1NBU19JT1VOSVRf
Q09OVFJPTF9SRVBMWSAqKXRtLT5jbV9yZXBseTsKIAloYW5kbGUgPSAodWludDE2X3QpKHVpbnRw
dHJfdCl0bS0+Y21fY29tcGxldGVfZGF0YTsKQEAgLTU0OSw2ICs2NDksNyBAQCBtcHNzYXNfcmVt
b3ZlX2NvbXBsZXRlKHN0cnVjdCBtcHNfc29mdGMgCiAJCXRhcmctPnBoeV9udW0gPSAweDA7CiAJ
CXRhcmctPmxpbmtyYXRlID0gMHgwOwogCQl0YXJnLT5kZXZpbmZvID0gMHgwOworCQl0YXJnLT5m
bGFncyA9IDB4MDsKIAl9CiAKIAltcHNzYXNfZnJlZV90bShzYywgdG0pOwpAQCAtNjcwLDcgKzc3
MSw3IEBAIG1wc19kZXRhY2hfc2FzKHN0cnVjdCBtcHNfc29mdGMgKnNjKQogewogCXN0cnVjdCBt
cHNzYXNfc29mdGMgKnNhc3NjOwogCi0JbXBzX2RwcmludChzYywgTVBTX1RSQUNFLCAiJXNcbiIs
IF9fZnVuY19fKTsKKwltcHNfZHByaW50KHNjLCBNUFNfSU5GTywgIiVzXG4iLCBfX2Z1bmNfXyk7
CiAKIAlpZiAoc2MtPnNhc3NjID09IE5VTEwpCiAJCXJldHVybiAoMCk7CkBAIC03MDYsNiArODA3
LDcgQEAgbXBzX2RldGFjaF9zYXMoc3RydWN0IG1wc19zb2Z0YyAqc2MpCiAJfQogCW1wc191bmxv
Y2soc2MpOwogCisJbXBzX2RwcmludChzYywgTVBTX0lORk8sICIlczolZFxuIiwgX19mdW5jX18s
X19MSU5FX18pOwogCWlmIChzYXNzYy0+ZGV2cSAhPSBOVUxMKQogCQljYW1fc2ltcV9mcmVlKHNh
c3NjLT5kZXZxKTsKIApAQCAtMTQ0MiwxMSArMTU0NCwxMSBAQCBtcHNzYXNfYWN0aW9uX3Njc2lp
byhzdHJ1Y3QgbXBzc2FzX3NvZnRjCiAJdWludDE2X3QgZWVkcF9mbGFnczsKIAogCXNjID0gc2Fz
c2MtPnNjOwotCW1wc19kcHJpbnQoc2MsIE1QU19UUkFDRSwgIiVzIGNjYiAlcFxuIiwgX19mdW5j
X18sIGNjYik7CiAJbXR4X2Fzc2VydCgmc2MtPm1wc19tdHgsIE1BX09XTkVEKTsKIAogCWNzaW8g
PSAmY2NiLT5jc2lvOwogCXRhcmcgPSAmc2Fzc2MtPnRhcmdldHNbY3Npby0+Y2NiX2gudGFyZ2V0
X2lkXTsKKwltcHNfZHByaW50KHNjLCBNUFNfVFJBQ0UsICIlcyBjY2IgJXAgdGFyZ2V0IGZsYWcg
JXhcbiIsIF9fZnVuY19fLCBjY2IsIHRhcmctPmZsYWdzKTsKIAlpZiAodGFyZy0+aGFuZGxlID09
IDB4MCkgewogCQltcHNfZHByaW50KHNjLCBNUFNfVFJBQ0UsICIlcyBOVUxMIGhhbmRsZSBmb3Ig
dGFyZ2V0ICV1XG4iLCAKIAkJICAgIF9fZnVuY19fLCBjc2lvLT5jY2JfaC50YXJnZXRfaWQpOwpA
QCAtMTQ1NCw2ICsxNTU2LDEzIEBAIG1wc3Nhc19hY3Rpb25fc2NzaWlvKHN0cnVjdCBtcHNzYXNf
c29mdGMKIAkJeHB0X2RvbmUoY2NiKTsKIAkJcmV0dXJuOwogCX0KKwlpZiAodGFyZy0+ZmxhZ3Mg
JiBNUFNfVEFSR0VUX0ZMQUdTX1JBSURfQ09NUE9ORU5UKSB7CisJCW1wc19kcHJpbnQoc2MsIE1Q
U19UUkFDRSwgIiVzIFJhaWQgY29tcG9uZW50IG5vIFNDU0kgSU8gc3VwcG9ydGVkICV1XG4iLCAK
KwkJICAgIF9fZnVuY19fLCBjc2lvLT5jY2JfaC50YXJnZXRfaWQpOworCQljc2lvLT5jY2JfaC5z
dGF0dXMgPSBDQU1fVElEX0lOVkFMSUQ7CisJCXhwdF9kb25lKGNjYik7CisJCXJldHVybjsKKwl9
CiAJLyoKIAkgKiBJZiBkZXZpbmZvIGlzIDAgdGhpcyB3aWxsIGJlIGEgdm9sdW1lLiAgSW4gdGhh
dCBjYXNlIGRvbid0IHRlbGwgQ0FNCiAJICogdGhhdCB0aGUgdm9sdW1lIGhhcyB0aW1lZCBvdXQu
ICBXZSB3YW50IHZvbHVtZXMgdG8gYmUgZW51bWVyYXRlZApAQCAtMTY1MSw2ICsxNzYwLDE5OCBA
QCBtcHNzYXNfYWN0aW9uX3Njc2lpbyhzdHJ1Y3QgbXBzc2FzX3NvZnRjCiB9CiAKIHN0YXRpYyB2
b2lkCittcHNfcmVzcG9uc2VfY29kZShzdHJ1Y3QgbXBzX3NvZnRjICpzYywgdTggcmVzcG9uc2Vf
Y29kZSkKK3sKKyAgICAgICAgY2hhciAqZGVzYzsKKyAKKyAgICAgICAgc3dpdGNoIChyZXNwb25z
ZV9jb2RlKSB7CisgICAgICAgIGNhc2UgTVBJMl9TQ1NJVEFTS01HTVRfUlNQX1RNX0NPTVBMRVRF
OgorICAgICAgICAgICAgICAgIGRlc2MgPSAidGFzayBtYW5hZ2VtZW50IHJlcXVlc3QgY29tcGxl
dGVkIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUEkyX1NDU0lUQVNL
TUdNVF9SU1BfSU5WQUxJRF9GUkFNRToKKyAgICAgICAgICAgICAgICBkZXNjID0gImludmFsaWQg
ZnJhbWUiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1QSTJfU0NTSVRB
U0tNR01UX1JTUF9UTV9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAidGFz
ayBtYW5hZ2VtZW50IHJlcXVlc3Qgbm90IHN1cHBvcnRlZCI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTVBJMl9TQ1NJVEFTS01HTVRfUlNQX1RNX0ZBSUxFRDoKKyAgICAg
ICAgICAgICAgICBkZXNjID0gInRhc2sgbWFuYWdlbWVudCByZXF1ZXN0IGZhaWxlZCI7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVBJMl9TQ1NJVEFTS01HTVRfUlNQX1RN
X1NVQ0NFRURFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gInRhc2sgbWFuYWdlbWVudCByZXF1
ZXN0IHN1Y2NlZWRlZCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVBJ
Ml9TQ1NJVEFTS01HTVRfUlNQX1RNX0lOVkFMSURfTFVOOgorICAgICAgICAgICAgICAgIGRlc2Mg
PSAiaW52YWxpZCBsdW4iOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4
QToKKyAgICAgICAgICAgICAgICBkZXNjID0gIm92ZXJsYXBwZWQgdGFnIGF0dGVtcHRlZCI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVBJMl9TQ1NJVEFTS01HTVRfUlNQ
X0lPX1FVRVVFRF9PTl9JT0M6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJ0YXNrIHF1ZXVlZCwg
aG93ZXZlciBub3Qgc2VudCB0byB0YXJnZXQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGRlc2MgPSAidW5rbm93biI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwkJbXBzX2RwcmludChzYywgTVBTX0lORk8sICJy
ZXNwb25zZV9jb2RlKDB4JTAxeCk6ICVzXG4iLAorICAgICAgICAgICAgICAgIHJlc3BvbnNlX2Nv
ZGUsIGRlc2MpOworfQorLyoqCisgKiBtcHNfc2NfZmFpbGVkX2lvX2luZm8gLSB0cmFuc2xhdGVk
IG5vbi1zdWNjZXNmdWxsIFNDU0lfSU8gcmVxdWVzdAorICovCitzdGF0aWMgdm9pZAorbXBzX3Nj
X2ZhaWxlZF9pb19pbmZvKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHJ1Y3QgY2NiX3Njc2lpbyAq
Y3NpbywKKyAgICBNcGkyU0NTSUlPUmVwbHlfdCAqbXBpX3JlcGx5KQoreworCXUzMiByZXNwb25z
ZV9pbmZvOworCXU4ICpyZXNwb25zZV9ieXRlczsKKwl1MTYgaW9jX3N0YXR1cyA9IGxlMTZ0b2go
bXBpX3JlcGx5LT5JT0NTdGF0dXMpICYKKwkgICAgTVBJMl9JT0NTVEFUVVNfTUFTSzsKKwl1OCBz
Y3NpX3N0YXRlID0gbXBpX3JlcGx5LT5TQ1NJU3RhdGU7CisJdTggc2NzaV9zdGF0dXMgPSBtcGlf
cmVwbHktPlNDU0lTdGF0dXM7CisJY2hhciAqZGVzY19pb2Nfc3RhdGUgPSBOVUxMOworCWNoYXIg
KmRlc2Nfc2NzaV9zdGF0dXMgPSBOVUxMOworCWNoYXIgKmRlc2Nfc2NzaV9zdGF0ZSA9IHNjLT50
bXBfc3RyaW5nOworCXUzMiBsb2dfaW5mbyA9IGxlMzJ0b2gobXBpX3JlcGx5LT5JT0NMb2dJbmZv
KTsKKwkKKwlpZiAobG9nX2luZm8gPT0gMHgzMTE3MDAwMCkKKwkJcmV0dXJuOworCisJc3dpdGNo
IChpb2Nfc3RhdHVzKSB7CisJY2FzZSBNUEkyX0lPQ1NUQVRVU19TVUNDRVNTOgorCQlkZXNjX2lv
Y19zdGF0ZSA9ICJzdWNjZXNzIjsKKwkJYnJlYWs7CisJY2FzZSBNUEkyX0lPQ1NUQVRVU19JTlZB
TElEX0ZVTkNUSU9OOgorCQlkZXNjX2lvY19zdGF0ZSA9ICJpbnZhbGlkIGZ1bmN0aW9uIjsKKwkJ
YnJlYWs7CisJY2FzZSBNUEkyX0lPQ1NUQVRVU19TQ1NJX1JFQ09WRVJFRF9FUlJPUjoKKwkJZGVz
Y19pb2Nfc3RhdGUgPSAic2NzaSByZWNvdmVyZWQgZXJyb3IiOworCQlicmVhazsKKwljYXNlIE1Q
STJfSU9DU1RBVFVTX1NDU0lfSU5WQUxJRF9ERVZIQU5ETEU6CisJCWRlc2NfaW9jX3N0YXRlID0g
InNjc2kgaW52YWxpZCBkZXYgaGFuZGxlIjsKKwkJYnJlYWs7CisJY2FzZSBNUEkyX0lPQ1NUQVRV
U19TQ1NJX0RFVklDRV9OT1RfVEhFUkU6CisJCWRlc2NfaW9jX3N0YXRlID0gInNjc2kgZGV2aWNl
IG5vdCB0aGVyZSI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9JT0NTVEFUVVNfU0NTSV9EQVRBX09W
RVJSVU46CisJCWRlc2NfaW9jX3N0YXRlID0gInNjc2kgZGF0YSBvdmVycnVuIjsKKwkJYnJlYWs7
CisJY2FzZSBNUEkyX0lPQ1NUQVRVU19TQ1NJX0RBVEFfVU5ERVJSVU46CisJCWRlc2NfaW9jX3N0
YXRlID0gInNjc2kgZGF0YSB1bmRlcnJ1biI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9JT0NTVEFU
VVNfU0NTSV9JT19EQVRBX0VSUk9SOgorCQlkZXNjX2lvY19zdGF0ZSA9ICJzY3NpIGlvIGRhdGEg
ZXJyb3IiOworCQlicmVhazsKKwljYXNlIE1QSTJfSU9DU1RBVFVTX1NDU0lfUFJPVE9DT0xfRVJS
T1I6CisJCWRlc2NfaW9jX3N0YXRlID0gInNjc2kgcHJvdG9jb2wgZXJyb3IiOworCQlicmVhazsK
KwljYXNlIE1QSTJfSU9DU1RBVFVTX1NDU0lfVEFTS19URVJNSU5BVEVEOgorCQlkZXNjX2lvY19z
dGF0ZSA9ICJzY3NpIHRhc2sgdGVybWluYXRlZCI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9JT0NT
VEFUVVNfU0NTSV9SRVNJRFVBTF9NSVNNQVRDSDoKKwkJZGVzY19pb2Nfc3RhdGUgPSAic2NzaSBy
ZXNpZHVhbCBtaXNtYXRjaCI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9JT0NTVEFUVVNfU0NTSV9U
QVNLX01HTVRfRkFJTEVEOgorCQlkZXNjX2lvY19zdGF0ZSA9ICJzY3NpIHRhc2sgbWdtdCBmYWls
ZWQiOworCQlicmVhazsKKwljYXNlIE1QSTJfSU9DU1RBVFVTX1NDU0lfSU9DX1RFUk1JTkFURUQ6
CisJCWRlc2NfaW9jX3N0YXRlID0gInNjc2kgaW9jIHRlcm1pbmF0ZWQiOworCQlicmVhazsKKwlj
YXNlIE1QSTJfSU9DU1RBVFVTX1NDU0lfRVhUX1RFUk1JTkFURUQ6CisJCWRlc2NfaW9jX3N0YXRl
ID0gInNjc2kgZXh0IHRlcm1pbmF0ZWQiOworCQlicmVhazsKKwljYXNlIE1QSTJfSU9DU1RBVFVT
X0VFRFBfR1VBUkRfRVJST1I6CisJCWRlc2NfaW9jX3N0YXRlID0gImVlZHAgZ3VhcmQgZXJyb3Ii
OworCQlicmVhazsKKwljYXNlIE1QSTJfSU9DU1RBVFVTX0VFRFBfUkVGX1RBR19FUlJPUjoKKwkJ
ZGVzY19pb2Nfc3RhdGUgPSAiZWVkcCByZWYgdGFnIGVycm9yIjsKKwkJYnJlYWs7CisJY2FzZSBN
UEkyX0lPQ1NUQVRVU19FRURQX0FQUF9UQUdfRVJST1I6CisJCWRlc2NfaW9jX3N0YXRlID0gImVl
ZHAgYXBwIHRhZyBlcnJvciI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRlc2NfaW9jX3N0YXRl
ID0gInVua25vd24iOworCQlicmVhazsKKwl9CisKKwlzd2l0Y2ggKHNjc2lfc3RhdHVzKSB7CisJ
Y2FzZSBNUEkyX1NDU0lfU1RBVFVTX0dPT0Q6CisJCWRlc2Nfc2NzaV9zdGF0dXMgPSAiZ29vZCI7
CisJCWJyZWFrOworCWNhc2UgTVBJMl9TQ1NJX1NUQVRVU19DSEVDS19DT05ESVRJT046CisJCWRl
c2Nfc2NzaV9zdGF0dXMgPSAiY2hlY2sgY29uZGl0aW9uIjsKKwkJYnJlYWs7CisJY2FzZSBNUEky
X1NDU0lfU1RBVFVTX0NPTkRJVElPTl9NRVQ6CisJCWRlc2Nfc2NzaV9zdGF0dXMgPSAiY29uZGl0
aW9uIG1ldCI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9TQ1NJX1NUQVRVU19CVVNZOgorCQlkZXNj
X3Njc2lfc3RhdHVzID0gImJ1c3kiOworCQlicmVhazsKKwljYXNlIE1QSTJfU0NTSV9TVEFUVVNf
SU5URVJNRURJQVRFOgorCQlkZXNjX3Njc2lfc3RhdHVzID0gImludGVybWVkaWF0ZSI7CisJCWJy
ZWFrOworCWNhc2UgTVBJMl9TQ1NJX1NUQVRVU19JTlRFUk1FRElBVEVfQ09ORE1FVDoKKwkJZGVz
Y19zY3NpX3N0YXR1cyA9ICJpbnRlcm1lZGlhdGUgY29uZG1ldCI7CisJCWJyZWFrOworCWNhc2Ug
TVBJMl9TQ1NJX1NUQVRVU19SRVNFUlZBVElPTl9DT05GTElDVDoKKwkJZGVzY19zY3NpX3N0YXR1
cyA9ICJyZXNlcnZhdGlvbiBjb25mbGljdCI7CisJCWJyZWFrOworCWNhc2UgTVBJMl9TQ1NJX1NU
QVRVU19DT01NQU5EX1RFUk1JTkFURUQ6CisJCWRlc2Nfc2NzaV9zdGF0dXMgPSAiY29tbWFuZCB0
ZXJtaW5hdGVkIjsKKwkJYnJlYWs7CisJY2FzZSBNUEkyX1NDU0lfU1RBVFVTX1RBU0tfU0VUX0ZV
TEw6CisJCWRlc2Nfc2NzaV9zdGF0dXMgPSAidGFzayBzZXQgZnVsbCI7CisJCWJyZWFrOworCWNh
c2UgTVBJMl9TQ1NJX1NUQVRVU19BQ0FfQUNUSVZFOgorCQlkZXNjX3Njc2lfc3RhdHVzID0gImFj
YSBhY3RpdmUiOworCQlicmVhazsKKwljYXNlIE1QSTJfU0NTSV9TVEFUVVNfVEFTS19BQk9SVEVE
OgorCQlkZXNjX3Njc2lfc3RhdHVzID0gInRhc2sgYWJvcnRlZCI7CisJCWJyZWFrOworCWRlZmF1
bHQ6CisJCWRlc2Nfc2NzaV9zdGF0dXMgPSAidW5rbm93biI7CisJCWJyZWFrOworCX0KKworCWRl
c2Nfc2NzaV9zdGF0ZVswXSA9ICdcMCc7CisJaWYgKCFzY3NpX3N0YXRlKQorCQlkZXNjX3Njc2lf
c3RhdGUgPSAiICI7CisJaWYgKHNjc2lfc3RhdGUgJiBNUEkyX1NDU0lfU1RBVEVfUkVTUE9OU0Vf
SU5GT19WQUxJRCkKKwkJc3RyY2F0KGRlc2Nfc2NzaV9zdGF0ZSwgInJlc3BvbnNlIGluZm8gIik7
CisJaWYgKHNjc2lfc3RhdGUgJiBNUEkyX1NDU0lfU1RBVEVfVEVSTUlOQVRFRCkKKwkJc3RyY2F0
KGRlc2Nfc2NzaV9zdGF0ZSwgInN0YXRlIHRlcm1pbmF0ZWQgIik7CisJaWYgKHNjc2lfc3RhdGUg
JiBNUEkyX1NDU0lfU1RBVEVfTk9fU0NTSV9TVEFUVVMpCisJCXN0cmNhdChkZXNjX3Njc2lfc3Rh
dGUsICJubyBzdGF0dXMgIik7CisJaWYgKHNjc2lfc3RhdGUgJiBNUEkyX1NDU0lfU1RBVEVfQVVU
T1NFTlNFX0ZBSUxFRCkKKwkJc3RyY2F0KGRlc2Nfc2NzaV9zdGF0ZSwgImF1dG9zZW5zZSBmYWls
ZWQgIik7CisJaWYgKHNjc2lfc3RhdGUgJiBNUEkyX1NDU0lfU1RBVEVfQVVUT1NFTlNFX1ZBTElE
KQorCQlzdHJjYXQoZGVzY19zY3NpX3N0YXRlLCAiYXV0b3NlbnNlIHZhbGlkICIpOworCisJbXBz
X2RwcmludChzYywgTVBTX0lORk8sICJcdGhhbmRsZSgweCUwNHgpLCBpb2Nfc3RhdHVzKCVzKSgw
eCUwNHgpLCBcbiIsCisJCWxlMTZ0b2gobXBpX3JlcGx5LT5EZXZIYW5kbGUpLAorCSAgICBkZXNj
X2lvY19zdGF0ZSwgaW9jX3N0YXR1cyk7CisJLyogV2UgY2FuIGFkZCBtb3JlIGRldGFpbCBhYm91
dCB1bmRlcmZsb3cgZGF0YSBoZXJlCisJICogVE8tRE8KKwkgKiAqLworCW1wc19kcHJpbnQoc2Ms
IE1QU19JTkZPLCAiXHRzY3NpX3N0YXR1cyglcykoMHglMDJ4KSwgIgorCSAgICAic2NzaV9zdGF0
ZSglcykoMHglMDJ4KVxuIiwgZGVzY19zY3NpX3N0YXR1cywKKwkgICAgc2NzaV9zdGF0dXMsIGRl
c2Nfc2NzaV9zdGF0ZSwgc2NzaV9zdGF0ZSk7CisKKwlpZiAoc2MtPm1wc19kZWJ1ZyAmIE1QU19J
TkZPICYmCisJCXNjc2lfc3RhdGUgJiBNUEkyX1NDU0lfU1RBVEVfQVVUT1NFTlNFX1ZBTElEKSB7
CisJCW1wc19kcHJpbnQoc2MsIE1QU19JTkZPLCAiLT4gU2Vuc2UgQnVmZmVyIERhdGEgOiBTdGFy
dCA6XG4iKTsKKwkJc2NzaV9zZW5zZV9wcmludChjc2lvKTsKKwkJbXBzX2RwcmludChzYywgTVBT
X0lORk8sICItPiBTZW5zZSBCdWZmZXIgRGF0YSA6IEVuZCA6XG4iKTsKKwl9CisKKwlpZiAoc2Nz
aV9zdGF0ZSAmIE1QSTJfU0NTSV9TVEFURV9SRVNQT05TRV9JTkZPX1ZBTElEKSB7CisJCXJlc3Bv
bnNlX2luZm8gPSBsZTMydG9oKG1waV9yZXBseS0+UmVzcG9uc2VJbmZvKTsKKwkJcmVzcG9uc2Vf
Ynl0ZXMgPSAodTggKikmcmVzcG9uc2VfaW5mbzsKKwkJbXBzX3Jlc3BvbnNlX2NvZGUoc2MscmVz
cG9uc2VfYnl0ZXNbMF0pOworCX0KK30KKworc3RhdGljIHZvaWQKIG1wc3Nhc19zY3NpaW9fY29t
cGxldGUoc3RydWN0IG1wc19zb2Z0YyAqc2MsIHN0cnVjdCBtcHNfY29tbWFuZCAqY20pCiB7CiAJ
TVBJMl9TQ1NJX0lPX1JFUExZICpyZXA7CkBAIC0xOTc2LDYgKzIyNzcsOCBAQCBtcHNzYXNfc2Nz
aWlvX2NvbXBsZXRlKHN0cnVjdCBtcHNfc29mdGMgCiAJCWNjYi0+Y2NiX2guc3RhdHVzID0gQ0FN
X1JFUV9DTVBfRVJSOwogCQlicmVhazsKIAl9CisJCisJbXBzX3NjX2ZhaWxlZF9pb19pbmZvKHNj
LGNzaW8scmVwKTsKIAogCWlmIChzYXNzYy0+ZmxhZ3MgJiBNUFNTQVNfUVVFVUVfRlJPWkVOKSB7
CiAJCWNjYi0+Y2NiX2guc3RhdHVzIHw9IENBTV9SRUxFQVNFX1NJTVE7CkBAIC0yNzU0LDE3ICsz
MDU3LDI2IEBAIG1wc3Nhc19zY2FubmVyX3RocmVhZCh2b2lkICphcmcpCiAKIAltcHNfbG9jayhz
Yyk7CiAJZm9yICg7OykgeworCQkvKiBTbGVlcCBmb3IgMSBzZWNvbmQgYW5kIGNoZWNrIHRoZSBx
dWV1ZSBzdGF0dXMqLwogCQltc2xlZXAoJnNhc3NjLT5jY2Jfc2NhbnEsICZzYy0+bXBzX210eCwg
UFJJQklPLAotCQkgICAgICAgIm1wc19zY2FucSIsIDApOworCQkgICAgICAgIm1wc19zY2FucSIs
IDEgKiBoeik7CiAJCWlmIChzYXNzYy0+ZmxhZ3MgJiBNUFNTQVNfU0hVVERPV04pIHsKIAkJCW1w
c19kcHJpbnQoc2MsIE1QU19UUkFDRSwgIlNjYW5uZXIgc2h1dHRpbmcgZG93blxuIik7CiAJCQli
cmVhazsKIAkJfQorbmV4dF93b3JrOgorCQkvLyBHZXQgZmlyc3Qgd29yay4KIAkJY2NiID0gKHVu
aW9uIGNjYiAqKVRBSUxRX0ZJUlNUKCZzYXNzYy0+Y2NiX3NjYW5xKTsKIAkJaWYgKGNjYiA9PSBO
VUxMKQogCQkJY29udGludWU7CisJCS8vIEdvdCBmaXJzdCB3b3JrLgogCQlUQUlMUV9SRU1PVkUo
JnNhc3NjLT5jY2Jfc2NhbnEsICZjY2ItPmNjYl9oLCBzaW1fbGlua3MudHFlKTsKIAkJeHB0X2Fj
dGlvbihjY2IpOworCQlpZiAoc2Fzc2MtPmZsYWdzICYgTVBTU0FTX1NIVVRET1dOKSB7CisJCQlt
cHNfZHByaW50KHNjLCBNUFNfVFJBQ0UsICJTY2FubmVyIHNodXR0aW5nIGRvd25cbiIpOworCQkJ
YnJlYWs7CisJCX0KKwkJZ290byBuZXh0X3dvcms7CiAJfQogCiAJc2Fzc2MtPmZsYWdzICY9IH5N
UFNTQVNfU0NBTlRIUkVBRDsKQEAgLTI4MjcsNyArMzEzOSw3IEBAIG1wc3Nhc19jaGVja19lZWRw
KHN0cnVjdCBtcHNzYXNfc29mdGMgKnMKIAkJZG8gewogCQkJcmNhcF9idWYgPQogCQkJICAgIG1h
bGxvYyhzaXplb2Yoc3RydWN0IHNjc2lfcmVhZF9jYXBhY2l0eV9lZWRwKSwKLQkJCSAgICBNX01Q
VDIsIE1fV0FJVE9LIHwgTV9aRVJPKTsKKwkJCSAgICBNX01QVDIsIE1fTk9XQUlUfCBNX1pFUk8p
OwogCQkJaWYgKHJjYXBfYnVmID09IE5VTEwpIHsKIAkJCQltcHNfZHByaW50KHNjLCBNUFNfRkFV
TFQsICJVbmFibGUgdG8gYWxsb2MgcmVhZCAiCiAJCQkJICAgICJjYXBhY2l0eSBidWZmZXIgZm9y
IEVFRFAgc3VwcG9ydC5cbiIpOwpAQCAtMjg2OSw3ICszMTgxLDcgQEAgbXBzc2FzX2NoZWNrX2Vl
ZHAoc3RydWN0IG1wc3Nhc19zb2Z0YyAqcwogCQkJCX0KIAkJCQlpZiAoIWZvdW5kX2x1bikgewog
CQkJCQlsdW4gPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBtcHNzYXNfbHVuKSwKLQkJCQkJICAgIE1f
TVBUMiwgTV9XQUlUT0sgfCBNX1pFUk8pOworCQkJCQkgICAgTV9NUFQyLCBNX05PV0FJVCB8IE1f
WkVSTyk7CiAJCQkJCWlmIChsdW4gPT0gTlVMTCkgewogCQkJCQkJbXBzX2RwcmludChzYywgTVBT
X0ZBVUxULAogCQkJCQkJICAgICJVbmFibGUgdG8gYWxsb2MgTFVOIGZvciAiCkBAIC0yOTQzLDYg
KzMyNTUsMjAgQEAgbXBzc2FzX3JlYWRfY2FwX2RvbmUoc3RydWN0IGNhbV9wZXJpcGggKgogCiAJ
aWYgKGRvbmVfY2NiID09IE5VTEwpCiAJCXJldHVybjsKKwkKKwkvKiBEcml2ZXIgbmVlZCB0byBy
ZWxlYXNlIGRldnEsIGl0IFNjc2kgY29tbWFuZCBpcworCSAqIGdlbmVyYXRlZCBieSBkcml2ZXIg
aW50ZXJuYWxseS4KKwkgKiBDdXJyZW50bHkgdGhlcmUgaXMgYSBzaW5nbGUgcGxhY2Ugd2hlcmUg
ZHJpdmVyCisJICogY2FsbHMgc2NzaSBjb21tYW5kIGludGVybmFsbHkuIEluIGZ1dHVyZSBpZiBk
cml2ZXIKKwkgKiBjYWxscyBtb3JlIHNjc2kgY29tbWFuZCBpbnRlcm5hbGx5LCBpdCBuZWVkcyB0
byByZWxlYXNlCisJICogZGV2cSBpbnRlcm5hbGx5LCBzaW5jZSB0aG9zZSBjb21tYW5kIHdpbGwg
bm90IGdvIGJhY2sgdG8KKwkgKiBjYW1fcGVyaXBoLgorCSAqLworCWlmICgoZG9uZV9jY2ItPmNj
Yl9oLnN0YXR1cyAmIENBTV9ERVZfUUZSWk4pICkgeworICAgICAgICAJZG9uZV9jY2ItPmNjYl9o
LnN0YXR1cyAmPSB+Q0FNX0RFVl9RRlJaTjsKKwkJeHB0X3JlbGVhc2VfZGV2cShkb25lX2NjYi0+
Y2NiX2gucGF0aCwKKwkJCSAgICAgICAJLypjb3VudCovIDEsIC8qcnVuX3F1ZXVlKi9UUlVFKTsK
Kwl9CiAKIAkvKgogCSAqIEdldCB0aGUgTFVOIElEIGZvciB0aGUgcGF0aCBhbmQgbG9vayBpdCB1
cCBpbiB0aGUgTFVOIGxpc3QgZm9yIHRoZQpkaWZmIC1hdXJwIEZSRUVCU0QtU0FTMi0xMi4wMC4w
MC4wMS9tcHNsc2ktc291cmNlLTEyLjAwLjAwLjAxL3N5cy9kZXYvbXBzL21wc19zYXMuaCBGUkVF
QlNELVNBUzItMTIuMjU1LjAwLjAyL21wc2xzaS1zb3VyY2UtMTIuMjU1LjAwLjAyL3N5cy9kZXYv
bXBzL21wc19zYXMuaAotLS0gRlJFRUJTRC1TQVMyLTEyLjAwLjAwLjAxL21wc2xzaS1zb3VyY2Ut
MTIuMDAuMDAuMDEvc3lzL2Rldi9tcHMvbXBzX3Nhcy5oCTIwMTItMDEtMzAgMjA6NDk6MDkuMDAw
MDAwMDAwICswNTMwCisrKyBGUkVFQlNELVNBUzItMTIuMjU1LjAwLjAyL21wc2xzaS1zb3VyY2Ut
MTIuMjU1LjAwLjAyL3N5cy9kZXYvbXBzL21wc19zYXMuaAkyMDEyLTAxLTE3IDA0OjMyOjE1LjAw
MDAwMDAwMCArMDUzMApAQCAtNDksOCArNDksMTEgQEAgc3RydWN0IG1wc3Nhc190YXJnZXQgewog
I2RlZmluZSBNUFNTQVNfVEFSR0VUX0lOUkVTRVQJKDEgPDwgMSkKICNkZWZpbmUgTVBTU0FTX1RB
UkdFVF9JTkRJQUdSRVNFVCAoMSA8PCAyKQogI2RlZmluZSBNUFNTQVNfVEFSR0VUX0lOUkVNT1ZB
TAkoMSA8PCAzKQorI2RlZmluZSBNUFNfVEFSR0VUX0ZMQUdTX1JBSURfQ09NUE9ORU5UICgxIDw8
IDQpCisjZGVmaW5lIE1QU19UQVJHRVRfRkxBR1NfVk9MVU1FICAgICAgICAgKDEgPDwgNSkKICNk
ZWZpbmUgTVBTU0FTX1RBUkdFVF9JTlJFQ09WRVJZIChNUFNTQVNfVEFSR0VUX0lOQUJPUlQgfCBc
CiAgICAgTVBTU0FTX1RBUkdFVF9JTlJFU0VUIHwgTVBTU0FTX1RBUkdFVF9JTkNISVBSRVNFVCkK
KwogI2RlZmluZSBNUFNTQVNfVEFSR0VUX0FERCAgICAgICAoMSA8PCAyOSkKICNkZWZpbmUgTVBT
U0FTX1RBUkdFVF9SRU1PVkUgICAgKDEgPDwgMzApCiAJdWludDE2X3QJdGlkOwpkaWZmIC1hdXJw
IEZSRUVCU0QtU0FTMi0xMi4wMC4wMC4wMS9tcHNsc2ktc291cmNlLTEyLjAwLjAwLjAxL3N5cy9k
ZXYvbXBzL21wc19zYXNfbHNpLmMgRlJFRUJTRC1TQVMyLTEyLjI1NS4wMC4wMi9tcHNsc2ktc291
cmNlLTEyLjI1NS4wMC4wMi9zeXMvZGV2L21wcy9tcHNfc2FzX2xzaS5jCi0tLSBGUkVFQlNELVNB
UzItMTIuMDAuMDAuMDEvbXBzbHNpLXNvdXJjZS0xMi4wMC4wMC4wMS9zeXMvZGV2L21wcy9tcHNf
c2FzX2xzaS5jCTIwMTItMDEtMzAgMjA6NDk6MDkuMDAwMDAwMDAwICswNTMwCisrKyBGUkVFQlNE
LVNBUzItMTIuMjU1LjAwLjAyL21wc2xzaS1zb3VyY2UtMTIuMjU1LjAwLjAyL3N5cy9kZXYvbXBz
L21wc19zYXNfbHNpLmMJMjAxMi0wMS0xNyAwNDozMjoxNS4wMDAwMDAwMDAgKzA1MzAKQEAgLTEw
Nyw3ICsxMDcsNyBAQCBzdHJ1Y3QgX2F0YV9pZGVudGlmeV9kZXZpY2VfZGF0YSB7CiAJdTE2IG1v
ZGVsX251bWJlclsyMF07CS8qIDI3LTQ2Ki8KIAl1MTYgcmVzZXJ2ZWQzWzIwOV07CS8qIDQ3LTI1
NSovCiB9OwotCitzdGF0aWMgdTMyIGV2ZW50X2NvdW50Owogc3RhdGljIHZvaWQgbXBzc2FzX2Z3
X3dvcmsoc3RydWN0IG1wc19zb2Z0YyAqc2MsCiAgICAgc3RydWN0IG1wc19md19ldmVudF93b3Jr
ICpmd19ldmVudCk7CiBzdGF0aWMgdm9pZCBtcHNzYXNfZndfZXZlbnRfZnJlZShzdHJ1Y3QgbXBz
X3NvZnRjICosCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGludCBtcHNzYXNfZ2V0X3NhdGFf
aWRlbnRpZnkoc3RydQogaW50IG1wc3Nhc19nZXRfc2FzX2FkZHJlc3NfZm9yX3NhdGFfZGlzayhz
dHJ1Y3QgbXBzX3NvZnRjICpzYywKICAgICB1NjQgKnNhc19hZGRyZXNzLCB1MTYgaGFuZGxlLCB1
MzIgZGV2aWNlX2luZm8pOwogc3RhdGljIGludCBtcHNzYXNfdm9sdW1lX2FkZChzdHJ1Y3QgbXBz
X3NvZnRjICpzYywKLSAgICBNcGkyRXZlbnRJckNvbmZpZ0VsZW1lbnRfdCAqZWxlbWVudCk7Cisg
ICAgdTE2IGhhbmRsZSk7CiAKIHZvaWQKIG1wc3Nhc19ldnRfaGFuZGxlcihzdHJ1Y3QgbXBzX3Nv
ZnRjICpzYywgdWludHB0cl90IGRhdGEsCkBAIC0xOTEsNiArMTkxLDggQEAgbXBzc2FzX2Z3X3dv
cmsoc3RydWN0IG1wc19zb2Z0YyAqc2MsIHN0cgogCXN0cnVjdCBtcHNzYXNfc29mdGMgKnNhc3Nj
OwogCXNhc3NjID0gc2MtPnNhc3NjOwogCisJbXBzX2RwcmludChzYywgTVBTX0lORk8sICIoJWQp
LT4oJXMpIFdvcmtpbmcgb24gIEV2ZW50OiBbJXhdXG4iLAorCQkJZXZlbnRfY291bnQrKyxfX2Z1
bmNfXyxmd19ldmVudC0+ZXZlbnQpOwogCXN3aXRjaCAoZndfZXZlbnQtPmV2ZW50KSB7CiAJY2Fz
ZSBNUEkyX0VWRU5UX1NBU19UT1BPTE9HWV9DSEFOR0VfTElTVDogCiAJewpAQCAtMjg0LDcgKzI4
Niw3IEBAIG1wc3Nhc19md193b3JrKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHIKIAkJCWNhc2Ug
TVBJMl9FVkVOVF9JUl9DSEFOR0VfUkNfVk9MVU1FX0NSRUFURUQ6CiAJCQljYXNlIE1QSTJfRVZF
TlRfSVJfQ0hBTkdFX1JDX0FEREVEOgogCQkJCWlmICghZm9yZWlnbl9jb25maWcpIHsKLQkJCQkJ
aWYgKG1wc3Nhc192b2x1bWVfYWRkKHNjLCBlbGVtZW50KSkgeworCQkJCQlpZiAobXBzc2FzX3Zv
bHVtZV9hZGQoc2MsIGxlMTZ0b2goZWxlbWVudC0+Vm9sRGV2SGFuZGxlKSkpewogCQkJCQkJcHJp
bnRmKCIlczogZmFpbGVkIHRvIGFkZCBSQUlEICIKIAkJCQkJCSAgICAidm9sdW1lIHdpdGggaGFu
ZGxlIDB4JXhcbiIsCiAJCQkJCQkgICAgX19mdW5jX18sIGxlMTZ0b2goZWxlbWVudC0+CkBAIC0z
MTksMTIgKzMyMSwxOCBAQCBtcHNzYXNfZndfd29yayhzdHJ1Y3QgbXBzX3NvZnRjICpzYywgc3Ry
CiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSBNUEkyX0VWRU5UX0lSX0NIQU5HRV9SQ19QRF9D
UkVBVEVEOgorCQkJY2FzZSBNUEkyX0VWRU5UX0lSX0NIQU5HRV9SQ19ISURFOgogCQkJCS8qCiAJ
CQkJICogUGh5cyBEaXNrIG9mIGEgdm9sdW1lIGhhcyBiZWVuIGNyZWF0ZWQuICBIaWRlCiAJCQkJ
ICogaXQgZnJvbSB0aGUgT1MuCiAJCQkJICovCi0JCQkJbXBzc2FzX3ByZXBhcmVfcmVtb3ZlKHNh
c3NjLCBlbGVtZW50LT4KLQkJCQkgICAgUGh5c0Rpc2tEZXZIYW5kbGUpOworCQkJCXRhcmcgPSBt
cHNzYXNfZmluZF90YXJnZXRfYnlfaGFuZGxlKHNhc3NjLCAwLCBlbGVtZW50LT5QaHlzRGlza0Rl
dkhhbmRsZSk7CisJCQkJaWYgKHRhcmcgPT0gTlVMTCkgCisJCQkJCWJyZWFrOworCisJCQkJdGFy
Zy0+ZmxhZ3MgfD0gTVBTX1RBUkdFVF9GTEFHU19SQUlEX0NPTVBPTkVOVDsKKwkJCQltcHNzYXNf
cmVzY2FuX3RhcmdldChzYywgdGFyZyk7CisJCQkJCiAJCQkJYnJlYWs7CiAJCQljYXNlIE1QSTJf
RVZFTlRfSVJfQ0hBTkdFX1JDX1BEX0RFTEVURUQ6CiAJCQkJLyoKQEAgLTM3OSw2ICszODcsMzUg
QEAgbXBzc2FzX2Z3X3dvcmsoc3RydWN0IG1wc19zb2Z0YyAqc2MsIHN0cgogCQkJICAgICJoYW5k
bGUgMHgleCIsIGV2ZW50X2RhdGEtPlByZXZpb3VzVmFsdWUsCiAJCQkgICAgZXZlbnRfZGF0YS0+
TmV3VmFsdWUsCiAJCQkgICAgZXZlbnRfZGF0YS0+Vm9sRGV2SGFuZGxlKTsKKwkJCQl1MzIgc3Rh
dGU7CisJCQkJc3RydWN0IG1wc3Nhc190YXJnZXQgKnRhcmc7CisJCQkJc3RhdGUgPSBsZTMydG9o
KGV2ZW50X2RhdGEtPk5ld1ZhbHVlKTsKKwkJCQlzd2l0Y2ggKHN0YXRlKSB7CisJCQkJY2FzZSBN
UEkyX1JBSURfVk9MX1NUQVRFX01JU1NJTkc6CisJCQkJY2FzZSBNUEkyX1JBSURfVk9MX1NUQVRF
X0ZBSUxFRDoKKwkJCQkJbXBzc2FzX3ByZXBhcmVfdm9sdW1lX3JlbW92ZShzYXNzYywgZXZlbnRf
ZGF0YS0+CisJCQkJCQkJVm9sRGV2SGFuZGxlKTsKKwkJCQkJYnJlYWs7CisJCSAKKwkJCQljYXNl
IE1QSTJfUkFJRF9WT0xfU1RBVEVfT05MSU5FOgorCQkJCWNhc2UgTVBJMl9SQUlEX1ZPTF9TVEFU
RV9ERUdSQURFRDoKKwkJCQljYXNlIE1QSTJfUkFJRF9WT0xfU1RBVEVfT1BUSU1BTDoKKwkJCQkJ
dGFyZyA9IG1wc3Nhc19maW5kX3RhcmdldF9ieV9oYW5kbGUoc2Fzc2MsIDAsIGV2ZW50X2RhdGEt
PlZvbERldkhhbmRsZSk7CisJCQkJCWlmICh0YXJnKSB7CisJCQkJCQlwcmludGYoIiVzICVkOiBW
b2x1bWUgaGFuZGxlIDB4JXggaXMgYWxyZWFkeSBhZGRlZCBcbiIsCisJCQkJCQkJICAgICAgIAlf
X2Z1bmNfXywgX19MSU5FX18gLCBldmVudF9kYXRhLT5Wb2xEZXZIYW5kbGUpOworCQkJCQkJYnJl
YWs7CisJCQkJCX0KKwkJCQkJaWYgKG1wc3Nhc192b2x1bWVfYWRkKHNjLCBsZTE2dG9oKGV2ZW50
X2RhdGEtPlZvbERldkhhbmRsZSkpKSB7CisJCQkJCQlwcmludGYoIiVzOiBmYWlsZWQgdG8gYWRk
IFJBSUQgIgorCQkJCQkJCSJ2b2x1bWUgd2l0aCBoYW5kbGUgMHgleFxuIiwKKwkJCQkJCQlfX2Z1
bmNfXywgbGUxNnRvaChldmVudF9kYXRhLT4KKwkJCQkJCQlWb2xEZXZIYW5kbGUpKTsKKwkJCQkJ
fQorCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQlicmVhazsKKwkJCQl9CiAJCQlicmVh
azsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpAQCAtMzg5LDYgKzQyNiw3IEBAIG1wc3Nhc19md193
b3JrKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHIKIAl7CiAJCU1waTJFdmVudERhdGFJclBoeXNp
Y2FsRGlza190ICpldmVudF9kYXRhID0KIAkJICAgIGZ3X2V2ZW50LT5ldmVudF9kYXRhOworCQlz
dHJ1Y3QgbXBzc2FzX3RhcmdldCAqdGFyZzsKIAogCQkvKgogCQkgKiBJbmZvcm1hdGlvbmFsIG9u
bHkuCkBAIC0zOTksNyArNDM3LDcgQEAgbXBzc2FzX2Z3X3dvcmsoc3RydWN0IG1wc19zb2Z0YyAq
c2MsIHN0cgogCQkJbXBzX2RwcmludChzYywgTVBTX0lORk8sICIgICBQaHlzIERpc2sgU2V0dGlu
Z3MgIgogCQkJICAgICJjaGFuZ2VkIGZyb20gMHgleCB0byAweCV4IGZvciBQaHlzIERpc2sgTnVt
YmVyICIKIAkJCSAgICAiJWQgYW5kIGhhbmRsZSAweCV4IGF0IEVuY2xvc3VyZSBoYW5kbGUgMHgl
eCwgU2xvdCAiCi0JCQkgICAgIiVkIiwgZXZlbnRfZGF0YS0+UHJldmlvdXNWYWx1ZSwKKwkJCSAg
ICAiJWRcbiIsIGV2ZW50X2RhdGEtPlByZXZpb3VzVmFsdWUsCiAJCQkgICAgZXZlbnRfZGF0YS0+
TmV3VmFsdWUsIGV2ZW50X2RhdGEtPlBoeXNEaXNrTnVtLAogCQkJICAgIGV2ZW50X2RhdGEtPlBo
eXNEaXNrRGV2SGFuZGxlLAogCQkJICAgIGV2ZW50X2RhdGEtPkVuY2xvc3VyZUhhbmRsZSwgZXZl
bnRfZGF0YS0+U2xvdCk7CkBAIC00MDcsNyArNDQ1LDcgQEAgbXBzc2FzX2Z3X3dvcmsoc3RydWN0
IG1wc19zb2Z0YyAqc2MsIHN0cgogCQljYXNlIE1QSTJfRVZFTlRfSVJfUEhZU0RJU0tfUkNfU1RB
VFVTX0ZMQUdTX0NIQU5HRUQ6CiAJCQltcHNfZHByaW50KHNjLCBNUFNfSU5GTywgIiAgIFBoeXMg
RGlzayBTdGF0dXMgY2hhbmdlZCAiCiAJCQkgICAgImZyb20gMHgleCB0byAweCV4IGZvciBQaHlz
IERpc2sgTnVtYmVyICVkIGFuZCAiCi0JCQkgICAgImhhbmRsZSAweCV4IGF0IEVuY2xvc3VyZSBo
YW5kbGUgMHgleCwgU2xvdCAlZCIsCisJCQkgICAgImhhbmRsZSAweCV4IGF0IEVuY2xvc3VyZSBo
YW5kbGUgMHgleCwgU2xvdCAlZFxuIiwKIAkJCSAgICBldmVudF9kYXRhLT5QcmV2aW91c1ZhbHVl
LCBldmVudF9kYXRhLT5OZXdWYWx1ZSwKIAkJCSAgICBldmVudF9kYXRhLT5QaHlzRGlza051bSwK
IAkJCSAgICBldmVudF9kYXRhLT5QaHlzRGlza0RldkhhbmRsZSwKQEAgLTQxNiwxMiArNDU0LDM4
IEBAIG1wc3Nhc19md193b3JrKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBzdHIKIAkJY2FzZSBNUEky
X0VWRU5UX0lSX1BIWVNESVNLX1JDX1NUQVRFX0NIQU5HRUQ6CiAJCQltcHNfZHByaW50KHNjLCBN
UFNfSU5GTywgIiAgIFBoeXMgRGlzayBTdGF0ZSBjaGFuZ2VkICIKIAkJCSAgICAiZnJvbSAweCV4
IHRvIDB4JXggZm9yIFBoeXMgRGlzayBOdW1iZXIgJWQgYW5kICIKLQkJCSAgICAiaGFuZGxlIDB4
JXggYXQgRW5jbG9zdXJlIGhhbmRsZSAweCV4LCBTbG90ICVkIiwKKwkJCSAgICAiaGFuZGxlIDB4
JXggYXQgRW5jbG9zdXJlIGhhbmRsZSAweCV4LCBTbG90ICVkXG4iLAogCQkJICAgIGV2ZW50X2Rh
dGEtPlByZXZpb3VzVmFsdWUsIGV2ZW50X2RhdGEtPk5ld1ZhbHVlLAogCQkJICAgIGV2ZW50X2Rh
dGEtPlBoeXNEaXNrTnVtLAogCQkJICAgIGV2ZW50X2RhdGEtPlBoeXNEaXNrRGV2SGFuZGxlLAog
CQkJICAgIGV2ZW50X2RhdGEtPkVuY2xvc3VyZUhhbmRsZSwgZXZlbnRfZGF0YS0+U2xvdCk7Ci0J
CQlicmVhazsKKwkJCXN3aXRjaCAoZXZlbnRfZGF0YS0+TmV3VmFsdWUpIHsKKwkJCQljYXNlIE1Q
STJfUkFJRF9QRF9TVEFURV9PTkxJTkU6CisJCQkJY2FzZSBNUEkyX1JBSURfUERfU1RBVEVfREVH
UkFERUQ6CisJCQkJY2FzZSBNUEkyX1JBSURfUERfU1RBVEVfUkVCVUlMRElORzoKKwkJCQljYXNl
IE1QSTJfUkFJRF9QRF9TVEFURV9PUFRJTUFMOgorCQkJCWNhc2UgTVBJMl9SQUlEX1BEX1NUQVRF
X0hPVF9TUEFSRToKKwkJCQkJdGFyZyA9IG1wc3Nhc19maW5kX3RhcmdldF9ieV9oYW5kbGUoc2Fz
c2MsIDAsIAorCQkJCQkJCWV2ZW50X2RhdGEtPlBoeXNEaXNrRGV2SGFuZGxlKTsKKwkJCQkJaWYg
KHRhcmcpIHsKKwkJCQkJCXRhcmctPmZsYWdzIHw9IE1QU19UQVJHRVRfRkxBR1NfUkFJRF9DT01Q
T05FTlQ7CisJCQkJCQlwcmludGYoIiVzICVkOiBGb3VuZCBUYXJnZXQgZm9yIGhhbmRsZSAweCV4
LiAgXG4iLAorCQkJCQkJX19mdW5jX18sIF9fTElORV9fICwgZXZlbnRfZGF0YS0+UGh5c0Rpc2tE
ZXZIYW5kbGUpOworCQkJCQl9CisJCQkJYnJlYWs7CisJCQkJY2FzZSBNUEkyX1JBSURfUERfU1RB
VEVfT0ZGTElORToKKwkJCQljYXNlIE1QSTJfUkFJRF9QRF9TVEFURV9OT1RfQ09ORklHVVJFRDoK
KwkJCQljYXNlIE1QSTJfUkFJRF9QRF9TVEFURV9OT1RfQ09NUEFUSUJMRToKKwkJCQlkZWZhdWx0
OgorCQkJCQl0YXJnID0gbXBzc2FzX2ZpbmRfdGFyZ2V0X2J5X2hhbmRsZShzYXNzYywgMCwgCisJ
CQkJCQkJZXZlbnRfZGF0YS0+UGh5c0Rpc2tEZXZIYW5kbGUpOworCQkJCQlpZiAodGFyZykgewor
CQkJCQkJdGFyZy0+ZmxhZ3MgfD0gfk1QU19UQVJHRVRfRkxBR1NfUkFJRF9DT01QT05FTlQ7CisJ
CQkJCQlwcmludGYoIiVzICVkOiBGb3VuZCBUYXJnZXQgZm9yIGhhbmRsZSAweCV4LiAgXG4iLAor
CQkJCQkJX19mdW5jX18sIF9fTElORV9fICwgZXZlbnRfZGF0YS0+UGh5c0Rpc2tEZXZIYW5kbGUp
OworCQkJCQl9CisJCQkJYnJlYWs7CisJCQl9CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAkJfQpA
QCAtNDk0LDYgKzU1OCw3IEBAIG1wc3Nhc19md193b3JrKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBz
dHIKIAkJYnJlYWs7CiAKIAl9CisJbXBzX2RwcmludChzYywgTVBTX0lORk8sICIoJWQpLT4oJXMp
IEV2ZW50IEZyZWU6IFsleF1cbiIsZXZlbnRfY291bnQsX19mdW5jX18sIGZ3X2V2ZW50LT5ldmVu
dCk7CiAJbXBzc2FzX2Z3X2V2ZW50X2ZyZWUoc2MsIGZ3X2V2ZW50KTsKIH0KIApAQCAtNTg0LDcg
KzY0OSw3IEBAIG1wc3Nhc19hZGRfZGV2aWNlKHN0cnVjdCBtcHNfc29mdGMgKnNjLCAKIAkJZXJy
b3IgPSBFTlhJTzsKIAkJZ290byBvdXQ7CiAJfQotCW1wc192cHJpbnRmKHNjLCAiU0FTIEFkZHJl
c3MgZnJvbSBTQVMgZGV2aWNlIHBhZ2UwID0gJWp4XG4iLAorCW1wc19kcHJpbnQoc2MsIE1QU19J
TkZPLCAiU0FTIEFkZHJlc3MgZnJvbSBTQVMgZGV2aWNlIHBhZ2UwID0gJWp4XG4iLAogCSAgICBz
YXNfYWRkcmVzcyk7CiAJdGFyZyA9ICZzYXNzYy0+dGFyZ2V0c1tpZF07CiAJdGFyZy0+ZGV2aW5m
byA9IGRldmljZV9pbmZvOwpAQCAtNjA1LDEyICs2NzAsMTIgQEAgbXBzc2FzX2FkZF9kZXZpY2Uo
c3RydWN0IG1wc19zb2Z0YyAqc2MsIAogCVRBSUxRX0lOSVQoJnRhcmctPnRpbWVkb3V0X2NvbW1h
bmRzKTsKIAlTTElTVF9JTklUKCZ0YXJnLT5sdW5zKTsKIAltcHNfZGVzY3JpYmVfZGV2aW5mbyh0
YXJnLT5kZXZpbmZvLCBkZXZzdHJpbmcsIDgwKTsKLQltcHNfdnByaW50ZihzYywgIkZvdW5kIGRl
dmljZSA8JXM+IDwlcz4gPDB4JTA0eD4gPCVkLyVkPlxuIiwgZGV2c3RyaW5nLAorCW1wc19kcHJp
bnQoc2MsIE1QU19JTkZPLCAiRm91bmQgZGV2aWNlIDwlcz4gPCVzPiA8MHglMDR4PiA8JWQvJWQ+
XG4iLCBkZXZzdHJpbmcsCiAJICAgIG1wc19kZXNjcmliZV90YWJsZShtcHNfbGlua3JhdGVfbmFt
ZXMsIHRhcmctPmxpbmtyYXRlKSwKIAkgICAgdGFyZy0+aGFuZGxlLCB0YXJnLT5lbmNsX2hhbmRs
ZSwgdGFyZy0+ZW5jbF9zbG90KTsKIAlpZiAoKHNhc3NjLT5mbGFncyAmIE1QU1NBU19JTl9TVEFS
VFVQKSA9PSAwKQogCQltcHNzYXNfcmVzY2FuX3RhcmdldChzYywgdGFyZyk7Ci0JbXBzX3Zwcmlu
dGYoc2MsICJUYXJnZXQgaWQgMHgleCBhZGRlZFxuIiwgdGFyZy0+dGlkKTsKKwltcHNfZHByaW50
KHNjLCBNUFNfSU5GTywgIlRhcmdldCBpZCAweCV4IGFkZGVkXG4iLCB0YXJnLT50aWQpOwogb3V0
OgogCW1wc3Nhc19zdGFydHVwX2RlY3JlbWVudChzYXNzYyk7CiAJcmV0dXJuIChlcnJvcik7CkBA
IC03NTEsMTIgKzgxNiwxMSBAQCBvdXQ6CiB9CiAKIHN0YXRpYyBpbnQKLW1wc3Nhc192b2x1bWVf
YWRkKHN0cnVjdCBtcHNfc29mdGMgKnNjLCBNcGkyRXZlbnRJckNvbmZpZ0VsZW1lbnRfdCAqZWxl
bWVudCkKK21wc3Nhc192b2x1bWVfYWRkKHN0cnVjdCBtcHNfc29mdGMgKnNjLCB1MTYgaGFuZGxl
KQogewogCXN0cnVjdCBtcHNzYXNfc29mdGMgKnNhc3NjOwogCXN0cnVjdCBtcHNzYXNfdGFyZ2V0
ICp0YXJnOwogCXU2NCB3d2lkOwotCXUxNiBoYW5kbGUgPSBsZTE2dG9oKGVsZW1lbnQtPlZvbERl
dkhhbmRsZSk7CiAJdW5zaWduZWQgaW50IGlkOwogCWludCBlcnJvciA9IDA7CiAKQEAgLTg1NSw3
ICs5MTksOSBAQCBtcHNzYXNfaXJfc2h1dGRvd24oc3RydWN0IG1wc19zb2Z0YyAqc2MpCiAJYWN0
aW9uLT5GdW5jdGlvbiA9IE1QSTJfRlVOQ1RJT05fUkFJRF9BQ1RJT047CiAJYWN0aW9uLT5BY3Rp
b24gPSBNUEkyX1JBSURfQUNUSU9OX1NZU1RFTV9TSFVURE9XTl9JTklUSUFURUQ7CiAJY20tPmNt
X2Rlc2MuRGVmYXVsdC5SZXF1ZXN0RmxhZ3MgPSBNUEkyX1JFUV9ERVNDUklQVF9GTEFHU19ERUZB
VUxUX1RZUEU7CisJbXBzX2xvY2soc2MpOwogCW1wc19yZXF1ZXN0X3BvbGxlZChzYywgY20pOwor
CW1wc191bmxvY2soc2MpOwogCiAJLyoKIAkgKiBEb24ndCBjaGVjayBmb3IgcmVwbHksIGp1c3Qg
bGVhdmUuCmRpZmYgLWF1cnAgRlJFRUJTRC1TQVMyLTEyLjAwLjAwLjAxL21wc2xzaS1zb3VyY2Ut
MTIuMDAuMDAuMDEvc3lzL2Rldi9tcHMvbXBzX3VzZXIuYyBGUkVFQlNELVNBUzItMTIuMjU1LjAw
LjAyL21wc2xzaS1zb3VyY2UtMTIuMjU1LjAwLjAyL3N5cy9kZXYvbXBzL21wc191c2VyLmMKLS0t
IEZSRUVCU0QtU0FTMi0xMi4wMC4wMC4wMS9tcHNsc2ktc291cmNlLTEyLjAwLjAwLjAxL3N5cy9k
ZXYvbXBzL21wc191c2VyLmMJMjAxMi0wMS0zMCAyMDo0OTowOS4wMDAwMDAwMDAgKzA1MzAKKysr
IEZSRUVCU0QtU0FTMi0xMi4yNTUuMDAuMDIvbXBzbHNpLXNvdXJjZS0xMi4yNTUuMDAuMDIvc3lz
L2Rldi9tcHMvbXBzX3VzZXIuYwkyMDEyLTAxLTE3IDA0OjMyOjE1LjAwMDAwMDAwMCArMDUzMApA
QCAtNzEyLDcgKzcxMiw3IEBAIG1wc191c2VyX2NvbW1hbmQoc3RydWN0IG1wc19zb2Z0YyAqc2Ms
IHMKIAljbS0+Y21fZGVzYy5EZWZhdWx0LlJlcXVlc3RGbGFncyA9IE1QSTJfUkVRX0RFU0NSSVBU
X0ZMQUdTX0RFRkFVTFRfVFlQRTsKIAogCW1wc19sb2NrKHNjKTsKLQllcnIgPSBtcHNfd2FpdF9j
b21tYW5kKHNjLCBjbSwgMCk7CisJZXJyID0gbXBzX3dhaXRfY29tbWFuZChzYywgY20sIDMwKTsK
IAogCWlmIChlcnIpIHsKIAkJbXBzX3ByaW50ZihzYywgIiVzOiBpbnZhbGlkIHJlcXVlc3Q6IGVy
cm9yICVkXG4iLApAQCAtODQyLDcgKzg0Miw3IEBAIG1wc191c2VyX3Bhc3NfdGhydShzdHJ1Y3Qg
bXBzX3NvZnRjICpzYywKIAkJY20tPmNtX2NvbXBsZXRlID0gTlVMTDsKIAkJY20tPmNtX2NvbXBs
ZXRlX2RhdGEgPSBOVUxMOwogCi0JCWVyciA9IG1wc193YWl0X2NvbW1hbmQoc2MsIGNtLCAwKTsK
KwkJZXJyID0gbXBzX3dhaXRfY29tbWFuZChzYywgY20sIDMwKTsKIAogCQlpZiAoZXJyICE9IDAp
IHsKIAkJCWVyciA9IEVJTzsKQEAgLTk3OSw3ICs5NzksNyBAQCBtcHNfdXNlcl9wYXNzX3RocnUo
c3RydWN0IG1wc19zb2Z0YyAqc2MsCiAKIAltcHNfbG9jayhzYyk7CiAKLQllcnIgPSBtcHNfd2Fp
dF9jb21tYW5kKHNjLCBjbSwgMCk7CisJZXJyID0gbXBzX3dhaXRfY29tbWFuZChzYywgY20sIDMw
KTsKIAogCWlmIChlcnIpIHsKIAkJbXBzX3ByaW50ZihzYywgIiVzOiBpbnZhbGlkIHJlcXVlc3Q6
IGVycm9yICVkXG4iLCBfX2Z1bmNfXywKQEAgLTEwOTgsMTAgKzEwOTgsMTIgQEAgbXBzX3VzZXJf
Z2V0X2FkYXB0ZXJfZGF0YShzdHJ1Y3QgbXBzX3NvZgogCSAqIE5lZWQgdG8gZ2V0IEJJT1MgQ29u
ZmlnIFBhZ2UgMyBmb3IgdGhlIEJJT1MgVmVyc2lvbi4KIAkgKi8KIAlkYXRhLT5CaW9zVmVyc2lv
biA9IDA7CisJbXBzX2xvY2soc2MpOwogCWlmIChtcHNfY29uZmlnX2dldF9iaW9zX3BnMyhzYywg
Jm1waV9yZXBseSwgJmNvbmZpZ19wYWdlKSkKIAkJcHJpbnRmKCIlczogRXJyb3Igd2hpbGUgcmV0
cmlldmluZyBCSU9TIFZlcnNpb25cbiIsIF9fZnVuY19fKTsKIAllbHNlCiAJCWRhdGEtPkJpb3NW
ZXJzaW9uID0gY29uZmlnX3BhZ2UuQmlvc1ZlcnNpb247CisJbXBzX3VubG9jayhzYyk7CiB9CiAK
IHN0YXRpYyB2b2lkCkBAIC0xMTk0LDcgKzExOTYsNyBAQCBtcHNfcG9zdF9md19kaWFnX2J1ZmZl
cihzdHJ1Y3QgbXBzX3NvZnRjCiAJLyoKIAkgKiBTZW5kIGNvbW1hbmQgc3luY2hyb25vdXNseS4K
IAkgKi8KLQlzdGF0dXMgPSBtcHNfd2FpdF9jb21tYW5kKHNjLCBjbSwgMCk7CisJc3RhdHVzID0g
bXBzX3dhaXRfY29tbWFuZChzYywgY20sIDMwKTsKIAlpZiAoc3RhdHVzKSB7CiAJCW1wc19wcmlu
dGYoc2MsICIlczogaW52YWxpZCByZXF1ZXN0OiBlcnJvciAlZFxuIiwgX19mdW5jX18sCiAJCSAg
ICBzdGF0dXMpOwpAQCAtMTI3OCw3ICsxMjgwLDcgQEAgbXBzX3JlbGVhc2VfZndfZGlhZ19idWZm
ZXIoc3RydWN0IG1wc19zbwogCS8qCiAJICogU2VuZCBjb21tYW5kIHN5bmNocm9ub3VzbHkuCiAJ
ICovCi0Jc3RhdHVzID0gbXBzX3dhaXRfY29tbWFuZChzYywgY20sIDApOworCXN0YXR1cyA9IG1w
c193YWl0X2NvbW1hbmQoc2MsIGNtLCAzMCk7CiAJaWYgKHN0YXR1cykgewogCQltcHNfcHJpbnRm
KHNjLCAiJXM6IGludmFsaWQgcmVxdWVzdDogZXJyb3IgJWRcbiIsIF9fZnVuY19fLAogCQkgICAg
c3RhdHVzKTsKZGlmZiAtYXVycCBGUkVFQlNELVNBUzItMTIuMDAuMDAuMDEvbXBzbHNpLXNvdXJj
ZS0xMi4wMC4wMC4wMS9zeXMvZGV2L21wcy9tcHN2YXIuaCBGUkVFQlNELVNBUzItMTIuMjU1LjAw
LjAyL21wc2xzaS1zb3VyY2UtMTIuMjU1LjAwLjAyL3N5cy9kZXYvbXBzL21wc3Zhci5oCi0tLSBG
UkVFQlNELVNBUzItMTIuMDAuMDAuMDEvbXBzbHNpLXNvdXJjZS0xMi4wMC4wMC4wMS9zeXMvZGV2
L21wcy9tcHN2YXIuaAkyMDEyLTAxLTMwIDIwOjQ5OjA5LjAwMDAwMDAwMCArMDUzMAorKysgRlJF
RUJTRC1TQVMyLTEyLjI1NS4wMC4wMi9tcHNsc2ktc291cmNlLTEyLjI1NS4wMC4wMi9zeXMvZGV2
L21wcy9tcHN2YXIuaAkyMDEyLTAxLTE3IDA0OjMyOjE1LjAwMDAwMDAwMCArMDUzMApAQCAtNzgs
NiArNzgsNyBAQAogI2RlZmluZSBNUFNfUEVSSU9ESUNfREVMQVkJMQkvKiAxIHNlY29uZCBoZWFy
dGJlYXQvd2F0Y2hkb2cgY2hlY2sgKi8KIAogI2RlZmluZSBNUFNfU0NTSV9SSV9JTlZBTElEX0ZS
QU1FCSgweDAwMDAwMDAyKQorI2RlZmluZSBNUFNfU1RSSU5HX0xFTkdUSCAgICAgICAgICAgICAg
IDY0CiAKIC8qCiAgKiBob3N0IG1hcHBpbmcgcmVsYXRlZCBtYWNybyBkZWZpbml0aW9ucwpAQCAt
MzA4LDcgKzMwOSw3IEBAIHN0cnVjdCBtcHNfc29mdGMgewogCXN0cnVjdCBjYWxsb3V0CQkJcGVy
aW9kaWM7CiAKIAlzdHJ1Y3QgbXBzc2FzX3NvZnRjCQkqc2Fzc2M7Ci0KKwljaGFyICAgICAgICAg
ICAgdG1wX3N0cmluZ1tNUFNfU1RSSU5HX0xFTkdUSF07CiAJVEFJTFFfSEVBRCgsIG1wc19jb21t
YW5kKQlyZXFfbGlzdDsKIAlUQUlMUV9IRUFEKCwgbXBzX2NvbW1hbmQpCWhpZ2hfcHJpb3JpdHlf
cmVxX2xpc3Q7CiAJVEFJTFFfSEVBRCgsIG1wc19jaGFpbikJCWNoYWluX2xpc3Q7CkBAIC01MjEs
NiArNTIyLDEyIEBAIG1wc19mcmVlX2NvbW1hbmQoc3RydWN0IG1wc19zb2Z0YyAqc2MsIHMKIAlj
bS0+Y21fbWF4X3NlZ3MgPSAwOwogCWNtLT5jbV9sdW4gPSAwOwogCWNtLT5jbV9zdGF0ZSA9IE1Q
U19DTV9TVEFURV9GUkVFOworCWNtLT5jbV9kYXRhID0gTlVMTDsKKwljbS0+Y21fbGVuZ3RoID0g
MDsKKwljbS0+Y21fb3V0X2xlbiA9IDA7CisJY20tPmNtX3NnbHNpemUgPSAwOworCWNtLT5jbV9z
Z2UgPSBOVUxMOworCiAJVEFJTFFfRk9SRUFDSF9TQUZFKGNoYWluLCAmY20tPmNtX2NoYWluX2xp
c3QsIGNoYWluX2xpbmssIGNoYWluX3RlbXApIHsKIAkJVEFJTFFfUkVNT1ZFKCZjbS0+Y21fY2hh
aW5fbGlzdCwgY2hhaW4sIGNoYWluX2xpbmspOwogCQltcHNfZnJlZV9jaGFpbihzYywgY2hhaW4p
OwpAQCAtNzQ5LDcgKzc1Niw5IEBAIHZvaWQgbXBzX21hcHBpbmdfaXJfY29uZmlnX2NoYW5nZV9l
dmVudCgKIHZvaWQgbXBzc2FzX2V2dF9oYW5kbGVyKHN0cnVjdCBtcHNfc29mdGMgKnNjLCB1aW50
cHRyX3QgZGF0YSwKICAgICBNUEkyX0VWRU5UX05PVElGSUNBVElPTl9SRVBMWSAqZXZlbnQpOwog
dm9pZCBtcHNzYXNfcHJlcGFyZV9yZW1vdmUoc3RydWN0IG1wc3Nhc19zb2Z0YyAqc2Fzc2MsIHVp
bnQxNl90IGhhbmRsZSk7Cit2b2lkIG1wc3Nhc19wcmVwYXJlX3ZvbHVtZV9yZW1vdmUoc3RydWN0
IG1wc3Nhc19zb2Z0YyAqc2Fzc2MsIHVpbnQxNl90IGhhbmRsZSk7CiBpbnQgbXBzc2FzX3N0YXJ0
dXAoc3RydWN0IG1wc19zb2Z0YyAqc2MpOworc3RydWN0IG1wc3Nhc190YXJnZXQgKiBtcHNzYXNf
ZmluZF90YXJnZXRfYnlfaGFuZGxlKHN0cnVjdCBtcHNzYXNfc29mdGMgKiwgaW50LCB1aW50MTZf
dCk7CiAKIFNZU0NUTF9ERUNMKF9od19tcHMpOwogCiAK

--_002_B2FD678A64EAAD45B089B123FDFC3ED729A3414E2Einbmail01lsic_--



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