Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Jan 2011 14:49:59 -0500
From:      Andrew Gallatin <gallatin@gmail.com>
To:        freebsd-multimedia@freebsd.org
Subject:   Re: em28xx?
Message-ID:  <AANLkTimOtABnMgkNn9jAiThWmZ9Ec3pNQ%2Bq_GR_1Ae4h@mail.gmail.com>
In-Reply-To: <AANLkTimhh9qt1mwMk0NJ0_XP2W14azixpKD=fZYYpOpi@mail.gmail.com>
References:  <AANLkTimhh9qt1mwMk0NJ0_XP2W14azixpKD=fZYYpOpi@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--0016e644cfe23b0f3d04995b0a97
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Sat, Jan 8, 2011 at 2:11 PM, Andrew Gallatin <gallatin@gmail.com> wrote:

> (see appended output). =A0Has anybody tried =A0this before? =A0What are t=
he
> general steps for porting a driver?

So I hacked on it for a while (see attached dirty patch) and I've got
the em28xx device seen.  But it dies in v4l2_device_register():
(gdb) bt
#0  0x000000000040aeba in v4l2_device_register (dev=3D0x8011bf4b0,
v4l2_dev=3D0x801202630)
    at /tank/ports/multimedia/webcamd/work.bak/webcamd-0.1.18/v4l-dvb/linux=
/drivers/media/video/v4l2-device.c:47
#1  0x000000000046c933 in em28xx_usb_probe (interface=3D0x8011bf4b0, id=3D0=
x6d43c8)
    at /tank/ports/multimedia/webcamd/work.bak/webcamd-0.1.18/v4l-dvb/linux=
/drivers/media/video/em28xx/em28xx-cards.c:2908
#2  0x00000000004084f2 in usb_linux_probe_p (p_bus=3D0x758d50,
p_addr=3D0x758d54, p_index=3D0x758d58) at
/tank/ports/multimedia/webcamd/work.bak/webcamd-0.1.18/kernel/linux_usb.c:4=
15
#3  0x00000000004f04ff in main (argc=3D-5792, argv=3D0x7fffffffea80) at
webcamd.c:482
(gdb) frame 0
#0  0x000000000040aeba in v4l2_device_register (dev=3D0x8011bf4b0,
v4l2_dev=3D0x801202630)
    at /tank/ports/multimedia/webcamd/work.bak/webcamd-0.1.18/v4l-dvb/linux=
/drivers/media/video/v4l2-device.c:47
47                      snprintf(v4l2_dev->name,
sizeof(v4l2_dev->name), "%s %s",
(gdb) l
42                      return 0;
43              }
44
45              /* Set name to driver name + device name if it is empty. */
46              if (!v4l2_dev->name[0])
47                      snprintf(v4l2_dev->name,
sizeof(v4l2_dev->name), "%s %s",
48                              dev->driver->name, dev_name(dev));
49              if (dev_get_drvdata(dev))
50                      v4l2_warn(v4l2_dev, "Non-NULL drvdata on register\n=
");
51              dev_set_drvdata(dev, v4l2_dev);
(gdb) p dev->driver->name
Cannot access memory at address 0x0
(gdb) p dev->driver
$2 =3D (struct device_driver *) 0x0
(gdb) p dev
$3 =3D (struct device *) 0x8011bf4b0


Advice?

Thanks,

Drew

--0016e644cfe23b0f3d04995b0a97
Content-Type: text/x-patch; charset=US-ASCII; name="t.diff"
Content-Disposition: attachment; filename="t.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gioxdk6t0

T25seSBpbiB3b3JrLmJhazogLlBMSVNULmZsYXR0ZW5lZApPbmx5IGluIHdvcmsuYmFrOiAuUExJ
U1QubWt0bXAKT25seSBpbiB3b3JrLmJhazogLlBMSVNULm9iamR1bXAKT25seSBpbiB3b3JrLmJh
azogLlBMSVNULnNldHVpZApPbmx5IGluIHdvcmsuYmFrOiAuUExJU1Qud3JpdGFibGUKT25seSBp
biB3b3JrLmJhazogLmJ1aWxkX2RvbmUud2ViY2FtZC5fdXNyX2xvY2FsCk9ubHkgaW4gd29yay5i
YWs6IC5jb25maWd1cmVfZG9uZS53ZWJjYW1kLl91c3JfbG9jYWwKT25seSBpbiB3b3JrLmJhazog
Lmluc3RhbGxfZG9uZS53ZWJjYW1kLl91c3JfbG9jYWwKT25seSBpbiB3b3JrLmJhazogd2ViY2Ft
ZApkaWZmIC11ciB3b3JrL3dlYmNhbWQtMC4xLjE4L01ha2VmaWxlIHdvcmsuYmFrL3dlYmNhbWQt
MC4xLjE4L01ha2VmaWxlCi0tLSB3b3JrL3dlYmNhbWQtMC4xLjE4L01ha2VmaWxlCTIwMTEtMDEt
MDggMTQ6NDM6MDkuMTQ3Nzk1OTE3IC0wNTAwCisrKyB3b3JrLmJhay93ZWJjYW1kLTAuMS4xOC9N
YWtlZmlsZQkyMDExLTAxLTA4IDE0OjI4OjU5LjMxMTA1NDY1NSAtMDUwMApAQCAtMzE2LDEzICsz
MTYsMTMgQEAKICMKIAogI1NSQ1MrPSBlbTI4eHgtYXVkaW8uYwotI1NSQ1MrPSBlbTI4eHgtY2Fy
ZHMuYwotI1NSQ1MrPSBlbTI4eHgtY29yZS5jCi0jU1JDUys9IGVtMjh4eC1kdmIuYwotI1NSQ1Mr
PSBlbTI4eHgtaTJjLmMKLSNTUkNTKz0gZW0yOHh4LWlucHV0LmMKLSNTUkNTKz0gZW0yOHh4LXZi
aS5jCi0jU1JDUys9IGVtMjh4eC12aWRlby5jCitTUkNTKz0gZW0yOHh4LWNhcmRzLmMKK1NSQ1Mr
PSBlbTI4eHgtY29yZS5jCitTUkNTKz0gZW0yOHh4LWR2Yi5jCitTUkNTKz0gZW0yOHh4LWkyYy5j
CitTUkNTKz0gZW0yOHh4LWlucHV0LmMKK1NSQ1MrPSBlbTI4eHgtdmJpLmMKK1NSQ1MrPSBlbTI4
eHgtdmlkZW8uYwogCiAjCiAjIGhkcHZyCk9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6
IGEub3V0Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IGF1MDgyOC40Lmd6Ck9ubHkg
aW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IGJlbnEuNC5negpPbmx5IGluIHdvcmsuYmFrL3dl
YmNhbWQtMC4xLjE4OiBidHR2LjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODog
Y29uZXguNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiBjcGlheC40Lmd6Ck9u
bHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IGN4MjM4ODUuNC5negpPbmx5IGluIHdvcmsu
YmFrL3dlYmNhbWQtMC4xLjE4OiBjeDg4LjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAu
MS4xODogZW0yOHh4LjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogZXQ2MXgy
NTEuNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiBmaW5lcGl4LjQuZ3oKT25s
eSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogZ2w4NjAuNC5negpPbmx5IGluIHdvcmsuYmFr
L3dlYmNhbWQtMC4xLjE4OiBpYm1jYW0uNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4x
LjE4OiBpdnR2LjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogamVpbGluai40
Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IG01NjAyLjQuZ3oKT25seSBpbiB3
b3JrLmJhay93ZWJjYW1kLTAuMS4xODogbWFycy40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2Ft
ZC0wLjEuMTg6IG1leWUuNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiBtcjk3
MzEwYS40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IG92NTE5LjQuZ3oKT25s
eSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogb3Y1MzQuNC5negpPbmx5IGluIHdvcmsuYmFr
L3dlYmNhbWQtMC4xLjE4OiBwYWN4eHguNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4x
LjE4OiBwdnJ1c2IyLjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogcHdjLjQu
Z3oKT25seSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogc2FhNzEzNC40Lmd6Ck9ubHkgaW4g
d29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHNhYTcxNjQuNC5negpPbmx5IGluIHdvcmsuYmFrL3dl
YmNhbWQtMC4xLjE4OiBzZTQwMS40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6
IHNpNDcweC40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHNuOWMxMDIuNC5n
egpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiBzbjljMjB4LjQuZ3oKT25seSBpbiB3
b3JrLmJhay93ZWJjYW1kLTAuMS4xODogc29uaXhqLjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJj
YW1kLTAuMS4xODogc3BjYTV4eC40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6
IHNxOTA1Yy40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHN0azAxNC40Lmd6
Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHN0djA2eHguNC5negpPbmx5IGluIHdv
cmsuYmFrL3dlYmNhbWQtMC4xLjE4OiBzdW5wbHVzLjQuZ3oKT25seSBpbiB3b3JrLmJhay93ZWJj
YW1kLTAuMS4xODogdDYxMy40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHR2
ODUzMi40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHVzYnZpc2lvbi40Lmd6
CmRpZmYgLXVyIHdvcmsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi9saW51eC9kcml2ZXJzL21lZGlh
L3ZpZGVvL2VtMjh4eC9lbTI4eHgtY29yZS5jIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1k
dmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWNvcmUuYwotLS0gd29y
ay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4
L2VtMjh4eC1jb3JlLmMJMjAxMC0wNy0wMSAyMzozODo1NC4wMDAwMDAwMDAgLTA0MDAKKysrIHdv
cmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9l
bTI4eHgvZW0yOHh4LWNvcmUuYwkyMDExLTAxLTA4IDE0OjMxOjI1LjUxMjc5Mzk4MiAtMDUwMApA
QCAtOTczLDkgKzk3MywxMSBAQAogCWZvciAoaSA9IDA7IGkgPCBkZXYtPmlzb2NfY3RsLm51bV9i
dWZzOyBpKyspIHsKIAkJdXJiID0gZGV2LT5pc29jX2N0bC51cmJbaV07CiAJCWlmICh1cmIpIHsK
KyNpZiAwCiAJCQlpZiAoIWlycXNfZGlzYWJsZWQoKSkKIAkJCQl1c2Jfa2lsbF91cmIodXJiKTsK
IAkJCWVsc2UKKyNlbmRpZgogCQkJCXVzYl91bmxpbmtfdXJiKHVyYik7CiAKIAkJCWlmIChkZXYt
Pmlzb2NfY3RsLnRyYW5zZmVyX2J1ZmZlcltpXSkgewpkaWZmIC11ciB3b3JrL3dlYmNhbWQtMC4x
LjE4L3Y0bC1kdmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5j
IHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRl
by9lbTI4eHgvZW0yOHh4LWR2Yi5jCi0tLSB3b3JrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmIvbGlu
dXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5jCTIwMTAtMDctMDEgMjM6
Mzg6NTQuMDAwMDAwMDAwIC0wNDAwCisrKyB3b3JrLmJhay93ZWJjYW1kLTAuMS4xOC92NGwtZHZi
L2xpbnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYwkyMDExLTAxLTA4
IDE0OjMwOjExLjE1NTc5OTcyNyAtMDUwMApAQCAtNTA0LDggKzUwNCwxMCBAQAogCS8qIGluaXQg
ZnJvbnRlbmQgKi8KIAlzd2l0Y2ggKGRldi0+bW9kZWwpIHsKIAljYXNlIEVNMjg3NF9MRUFERVJT
SElQX0lTREJUOgorI2lmIDAKIAkJZHZiLT5mcm9udGVuZCA9IGR2Yl9hdHRhY2goczkyMV9hdHRh
Y2gsCiAJCQkJJnNoYXJwX2lzZGJ0LCAmZGV2LT5pMmNfYWRhcCk7CisjZW5kaWYKIAogCQlpZiAo
IWR2Yi0+ZnJvbnRlbmQpIHsKIAkJCXJlc3VsdCA9IC1FSU5WQUw7CmRpZmYgLXVyIHdvcmsvd2Vi
Y2FtZC0wLjEuMTgvdjRsLWR2Yi9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4
eHgtaW5wdXQuYyB3b3JrLmJhay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2RyaXZlcnMv
bWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1pbnB1dC5jCi0tLSB3b3JrL3dlYmNhbWQtMC4xLjE4
L3Y0bC1kdmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWlucHV0LmMJ
MjAxMC0wNy0wMSAyMzozODo1NC4wMDAwMDAwMDAgLTA0MDAKKysrIHdvcmsuYmFrL3dlYmNhbWQt
MC4xLjE4L3Y0bC1kdmIvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWlu
cHV0LmMJMjAxMS0wMS0wOCAxNDozNTo0Ni45OTIwMjU1NjAgLTA1MDAKQEAgLTMzNSw2ICszMzUs
NyBAQAogCQlkcHJpbnRrKCIlczogdG9nZ2xlOiAlZCwgY291bnQ6ICVkLCBrZXkgMHglMDJ4JTAy
eFxuIiwgX19mdW5jX18sCiAJCQlwb2xsX3Jlc3VsdC50b2dnbGVfYml0LCBwb2xsX3Jlc3VsdC5y
ZWFkX2NvdW50LAogCQkJcG9sbF9yZXN1bHQucmNfYWRkcmVzcywgcG9sbF9yZXN1bHQucmNfZGF0
YVswXSk7CisjaWYgMAogCQlpZiAoaXItPmZ1bGxfY29kZSkKIAkJCWlyX2tleWRvd24oaXItPmlu
cHV0LAogCQkJCSAgIHBvbGxfcmVzdWx0LnJjX2FkZHJlc3MgPDwgOCB8CkBAIC0zNDQsNyArMzQ1
LDcgQEAKIAkJCWlyX2tleWRvd24oaXItPmlucHV0LAogCQkJCSAgIHBvbGxfcmVzdWx0LnJjX2Rh
dGFbMF0sCiAJCQkJICAgcG9sbF9yZXN1bHQudG9nZ2xlX2JpdCk7Ci0KKyNlbmRpZgogCQlpZiAo
aXItPmRldi0+Y2hpcF9pZCA9PSBDSElQX0lEX0VNMjg3NCkKIAkJCS8qIFRoZSBlbTI4NzQgY2xl
YXJzIHRoZSByZWFkY291bnQgZmllbGQgZXZlcnkgdGltZSB0aGUKIAkJCSAgIHJlZ2lzdGVyIGlz
IHJlYWQuICBUaGUgZW0yODYwLzI4ODAgZGF0YXNoZWV0IHNheXMgdGhhdCBpdApAQCAtMzgyLDcg
KzM4Myw3IEBACiAjZWxzZQogCUlOSVRfREVMQVlFRF9XT1JLKCZpci0+d29yaywgZW0yOHh4X2ly
X3dvcmspOwogI2VuZGlmCi0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZpci0+d29yaywgMCk7CisJ
Ly9zY2hlZHVsZV9kZWxheWVkX3dvcmsoJmlyLT53b3JrLCAwKTsKIAogCXJldHVybiAwOwogfQpA
QCAtMzkxLDcgKzM5Miw3IEBACiB7CiAJc3RydWN0IGVtMjh4eF9JUiAqaXIgPSBwcml2OwogCi0J
Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpci0+d29yayk7CisJLy9jYW5jZWxfZGVsYXllZF93
b3JrX3N5bmMoJmlyLT53b3JrKTsKIH0KIAogaW50IGVtMjh4eF9pcl9jaGFuZ2VfcHJvdG9jb2wo
dm9pZCAqcHJpdiwgdTY0IGlyX3R5cGUpCkBAIC00MzksNyArNDQwLDcgQEAKIAlzdHJ1Y3QgZW0y
OHh4X0lSICppcjsKIAlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dF9kZXY7CiAJaW50IGVyciA9IC1F
Tk9NRU07Ci0KKyNpZiAwCiAJaWYgKGRldi0+Ym9hcmQuaXJfY29kZXMgPT0gTlVMTCkgewogCQkv
KiBObyByZW1vdGUgY29udHJvbCBzdXBwb3J0ICovCiAJCXJldHVybiAwOwpAQCAtNTA3LDYgKzUw
OCw3IEBACiAJZGV2LT5pciA9IE5VTEw7CiAgZXJyX291dF9mcmVlOgogCWtmcmVlKGlyKTsKKyNl
bmRpZgogCXJldHVybiBlcnI7CiB9CiAKQEAgLTUxOSw3ICs1MjEsNyBAQAogCQlyZXR1cm4gMDsK
IAogCWVtMjh4eF9pcl9zdG9wKGlyKTsKLQlpcl9pbnB1dF91bnJlZ2lzdGVyKGlyLT5pbnB1dCk7
CisvLwlpcl9pbnB1dF91bnJlZ2lzdGVyKGlyLT5pbnB1dCk7CiAJa2ZyZWUoaXIpOwogCiAJLyog
ZG9uZSAqLwpkaWZmIC11ciB3b3JrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmIvbGludXgvZHJpdmVy
cy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4Lmggd29yay5iYWsvd2ViY2FtZC0wLjEuMTgvdjRs
LWR2Yi9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHguaAotLS0gd29yay93
ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2Vt
Mjh4eC5oCTIwMTAtMDctMDEgMjM6Mzg6NTQuMDAwMDAwMDAwIC0wNDAwCisrKyB3b3JrLmJhay93
ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2Vt
Mjh4eC5oCTIwMTEtMDEtMDggMTQ6MjM6MzEuNzUyMTQzOTU1IC0wNTAwCkBAIC0zNSw3ICszNSw3
IEBACiAjaW5jbHVkZSA8bWVkaWEvaXIta2JkLWkyYy5oPgogI2luY2x1ZGUgPG1lZGlhL2lyLWNv
cmUuaD4KICNpZiBkZWZpbmVkKENPTkZJR19WSURFT19FTTI4WFhfRFZCKSB8fCBkZWZpbmVkKENP
TkZJR19WSURFT19FTTI4WFhfRFZCX01PRFVMRSkKLSNpbmNsdWRlIDxtZWRpYS92aWRlb2J1Zi1k
dmIuaD4KKy8vI2luY2x1ZGUgPG1lZGlhL3ZpZGVvYnVmLWR2Yi5oPgogI2VuZGlmCiAjaW5jbHVk
ZSAidHVuZXIteGMyMDI4LmgiCiAjaW5jbHVkZSAiZW0yOHh4LXJlZy5oIgpkaWZmIC11ciB3b3Jr
L3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmIvbGludXgvaW5jbHVkZS9tZWRpYS9pci1jb3JlLmggd29y
ay5iYWsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi9saW51eC9pbmNsdWRlL21lZGlhL2lyLWNvcmUu
aAotLS0gd29yay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2luY2x1ZGUvbWVkaWEvaXIt
Y29yZS5oCTIwMTAtMDctMDEgMjM6Mzg6NTQuMDAwMDAwMDAwIC0wNDAwCisrKyB3b3JrLmJhay93
ZWJjYW1kLTAuMS4xOC92NGwtZHZiL2xpbnV4L2luY2x1ZGUvbWVkaWEvaXItY29yZS5oCTIwMTEt
MDEtMDggMTQ6MjQ6MDkuNTIyNzkxOTAxIC0wNTAwCkBAIC0xNyw3ICsxNyw3IEBACiAjZGVmaW5l
IF9JUl9DT1JFCiAKICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4
L2tmaWZvLmg+CisvLyNpbmNsdWRlIDxsaW51eC9rZmlmby5oPgogI2luY2x1ZGUgPGxpbnV4L3Rp
bWUuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPG1lZGlhL3JjLW1hcC5o
PgpkaWZmIC11ciB3b3JrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4
L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1jb3JlLmMgd29yay5iYWsvd2ViY2Ft
ZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9l
bTI4eHgvZW0yOHh4LWNvcmUuYwotLS0gd29yay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiLWFiZDNh
YWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtY29yZS5jCTIw
MTAtMDctMDEgMjM6Mzg6NTQuMDAwMDAwMDAwIC0wNDAwCisrKyB3b3JrLmJhay93ZWJjYW1kLTAu
MS4xOC92NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4
eC9lbTI4eHgtY29yZS5jCTIwMTEtMDEtMDggMTQ6MzE6MjUuNTEyNzkzOTgyIC0wNTAwCkBAIC05
NzMsOSArOTczLDExIEBACiAJZm9yIChpID0gMDsgaSA8IGRldi0+aXNvY19jdGwubnVtX2J1ZnM7
IGkrKykgewogCQl1cmIgPSBkZXYtPmlzb2NfY3RsLnVyYltpXTsKIAkJaWYgKHVyYikgeworI2lm
IDAKIAkJCWlmICghaXJxc19kaXNhYmxlZCgpKQogCQkJCXVzYl9raWxsX3VyYih1cmIpOwogCQkJ
ZWxzZQorI2VuZGlmCiAJCQkJdXNiX3VubGlua191cmIodXJiKTsKIAogCQkJaWYgKGRldi0+aXNv
Y19jdGwudHJhbnNmZXJfYnVmZmVyW2ldKSB7CmRpZmYgLXVyIHdvcmsvd2ViY2FtZC0wLjEuMTgv
djRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0y
OHh4LWR2Yi5jIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmItYWJkM2FhYzY2NDRlL2xp
bnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYwotLS0gd29yay93ZWJj
YW1kLTAuMS4xOC92NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVv
L2VtMjh4eC9lbTI4eHgtZHZiLmMJMjAxMC0wNy0wMSAyMzozODo1NC4wMDAwMDAwMDAgLTA0MDAK
KysrIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmItYWJkM2FhYzY2NDRlL2xpbnV4L2Ry
aXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYwkyMDExLTAxLTA4IDE0OjMwOjEx
LjE1NTc5OTcyNyAtMDUwMApAQCAtNTA0LDggKzUwNCwxMCBAQAogCS8qIGluaXQgZnJvbnRlbmQg
Ki8KIAlzd2l0Y2ggKGRldi0+bW9kZWwpIHsKIAljYXNlIEVNMjg3NF9MRUFERVJTSElQX0lTREJU
OgorI2lmIDAKIAkJZHZiLT5mcm9udGVuZCA9IGR2Yl9hdHRhY2goczkyMV9hdHRhY2gsCiAJCQkJ
JnNoYXJwX2lzZGJ0LCAmZGV2LT5pMmNfYWRhcCk7CisjZW5kaWYKIAogCQlpZiAoIWR2Yi0+ZnJv
bnRlbmQpIHsKIAkJCXJlc3VsdCA9IC1FSU5WQUw7CmRpZmYgLXVyIHdvcmsvd2ViY2FtZC0wLjEu
MTgvdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgv
ZW0yOHh4LWlucHV0LmMgd29yay5iYWsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0
NGUvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWlucHV0LmMKLS0tIHdv
cmsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvZHJpdmVycy9tZWRp
YS92aWRlby9lbTI4eHgvZW0yOHh4LWlucHV0LmMJMjAxMC0wNy0wMSAyMzozODo1NC4wMDAwMDAw
MDAgLTA0MDAKKysrIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmItYWJkM2FhYzY2NDRl
L2xpbnV4L2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1pbnB1dC5jCTIwMTEtMDEt
MDggMTQ6MzU6NDYuOTkyMDI1NTYwIC0wNTAwCkBAIC0zMzUsNiArMzM1LDcgQEAKIAkJZHByaW50
aygiJXM6IHRvZ2dsZTogJWQsIGNvdW50OiAlZCwga2V5IDB4JTAyeCUwMnhcbiIsIF9fZnVuY19f
LAogCQkJcG9sbF9yZXN1bHQudG9nZ2xlX2JpdCwgcG9sbF9yZXN1bHQucmVhZF9jb3VudCwKIAkJ
CXBvbGxfcmVzdWx0LnJjX2FkZHJlc3MsIHBvbGxfcmVzdWx0LnJjX2RhdGFbMF0pOworI2lmIDAK
IAkJaWYgKGlyLT5mdWxsX2NvZGUpCiAJCQlpcl9rZXlkb3duKGlyLT5pbnB1dCwKIAkJCQkgICBw
b2xsX3Jlc3VsdC5yY19hZGRyZXNzIDw8IDggfApAQCAtMzQ0LDcgKzM0NSw3IEBACiAJCQlpcl9r
ZXlkb3duKGlyLT5pbnB1dCwKIAkJCQkgICBwb2xsX3Jlc3VsdC5yY19kYXRhWzBdLAogCQkJCSAg
IHBvbGxfcmVzdWx0LnRvZ2dsZV9iaXQpOwotCisjZW5kaWYKIAkJaWYgKGlyLT5kZXYtPmNoaXBf
aWQgPT0gQ0hJUF9JRF9FTTI4NzQpCiAJCQkvKiBUaGUgZW0yODc0IGNsZWFycyB0aGUgcmVhZGNv
dW50IGZpZWxkIGV2ZXJ5IHRpbWUgdGhlCiAJCQkgICByZWdpc3RlciBpcyByZWFkLiAgVGhlIGVt
Mjg2MC8yODgwIGRhdGFzaGVldCBzYXlzIHRoYXQgaXQKQEAgLTM4Miw3ICszODMsNyBAQAogI2Vs
c2UKIAlJTklUX0RFTEFZRURfV09SSygmaXItPndvcmssIGVtMjh4eF9pcl93b3JrKTsKICNlbmRp
ZgotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaXItPndvcmssIDApOworCS8vc2NoZWR1bGVfZGVs
YXllZF93b3JrKCZpci0+d29yaywgMCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTM5MSw3ICszOTIs
NyBAQAogewogCXN0cnVjdCBlbTI4eHhfSVIgKmlyID0gcHJpdjsKIAotCWNhbmNlbF9kZWxheWVk
X3dvcmtfc3luYygmaXItPndvcmspOworCS8vY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpci0+
d29yayk7CiB9CiAKIGludCBlbTI4eHhfaXJfY2hhbmdlX3Byb3RvY29sKHZvaWQgKnByaXYsIHU2
NCBpcl90eXBlKQpAQCAtNDM5LDcgKzQ0MCw3IEBACiAJc3RydWN0IGVtMjh4eF9JUiAqaXI7CiAJ
c3RydWN0IGlucHV0X2RldiAqaW5wdXRfZGV2OwogCWludCBlcnIgPSAtRU5PTUVNOwotCisjaWYg
MAogCWlmIChkZXYtPmJvYXJkLmlyX2NvZGVzID09IE5VTEwpIHsKIAkJLyogTm8gcmVtb3RlIGNv
bnRyb2wgc3VwcG9ydCAqLwogCQlyZXR1cm4gMDsKQEAgLTUwNyw2ICs1MDgsNyBAQAogCWRldi0+
aXIgPSBOVUxMOwogIGVycl9vdXRfZnJlZToKIAlrZnJlZShpcik7CisjZW5kaWYKIAlyZXR1cm4g
ZXJyOwogfQogCkBAIC01MTksNyArNTIxLDcgQEAKIAkJcmV0dXJuIDA7CiAKIAllbTI4eHhfaXJf
c3RvcChpcik7Ci0JaXJfaW5wdXRfdW5yZWdpc3Rlcihpci0+aW5wdXQpOworLy8JaXJfaW5wdXRf
dW5yZWdpc3Rlcihpci0+aW5wdXQpOwogCWtmcmVlKGlyKTsKIAogCS8qIGRvbmUgKi8KZGlmZiAt
dXIgd29yay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJz
L21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHguaCB3b3JrLmJhay93ZWJjYW1kLTAuMS4xOC92NGwt
ZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgu
aAotLS0gd29yay93ZWJjYW1kLTAuMS4xOC92NGwtZHZiLWFiZDNhYWM2NjQ0ZS9saW51eC9kcml2
ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHguaAkyMDEwLTA3LTAxIDIzOjM4OjU0LjAwMDAw
MDAwMCAtMDQwMAorKysgd29yay5iYWsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0
NGUvbGludXgvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LmgJMjAxMS0wMS0wOCAx
NDoyMzozMS43NTIxNDM5NTUgLTA1MDAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxtZWRp
YS9pci1rYmQtaTJjLmg+CiAjaW5jbHVkZSA8bWVkaWEvaXItY29yZS5oPgogI2lmIGRlZmluZWQo
Q09ORklHX1ZJREVPX0VNMjhYWF9EVkIpIHx8IGRlZmluZWQoQ09ORklHX1ZJREVPX0VNMjhYWF9E
VkJfTU9EVUxFKQotI2luY2x1ZGUgPG1lZGlhL3ZpZGVvYnVmLWR2Yi5oPgorLy8jaW5jbHVkZSA8
bWVkaWEvdmlkZW9idWYtZHZiLmg+CiAjZW5kaWYKICNpbmNsdWRlICJ0dW5lci14YzIwMjguaCIK
ICNpbmNsdWRlICJlbTI4eHgtcmVnLmgiCmRpZmYgLXVyIHdvcmsvd2ViY2FtZC0wLjEuMTgvdjRs
LWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvaW5jbHVkZS9tZWRpYS9pci1jb3JlLmggd29yay5iYWsv
d2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGludXgvaW5jbHVkZS9tZWRpYS9p
ci1jb3JlLmgKLS0tIHdvcmsvd2ViY2FtZC0wLjEuMTgvdjRsLWR2Yi1hYmQzYWFjNjY0NGUvbGlu
dXgvaW5jbHVkZS9tZWRpYS9pci1jb3JlLmgJMjAxMC0wNy0wMSAyMzozODo1NC4wMDAwMDAwMDAg
LTA0MDAKKysrIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4L3Y0bC1kdmItYWJkM2FhYzY2NDRlL2xp
bnV4L2luY2x1ZGUvbWVkaWEvaXItY29yZS5oCTIwMTEtMDEtMDggMTQ6MjQ6MDkuNTIyNzkxOTAx
IC0wNTAwCkBAIC0xNyw3ICsxNyw3IEBACiAjZGVmaW5lIF9JUl9DT1JFCiAKICNpbmNsdWRlIDxs
aW51eC9zcGlubG9jay5oPgotI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CisvLyNpbmNsdWRlIDxs
aW51eC9rZmlmby5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC90
aW1lci5oPgogI2luY2x1ZGUgPG1lZGlhL3JjLW1hcC5oPgpPbmx5IGluIHdvcmsuYmFrL3dlYmNh
bWQtMC4xLjE4OiB2YzAzMnguNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiB3
OTk2Ni40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHc5OTZ4LjQuZ3oKT25s
eSBpbiB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogd2ViY2FtZC44Lmd6Ck9ubHkgaW4gd29yay5i
YWsvd2ViY2FtZC0wLjEuMTg6IHdlYmNhbWQuY29yZQpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQt
MC4xLjE4OiB6YzAzMDEuNC5negpPbmx5IGluIHdvcmsuYmFrL3dlYmNhbWQtMC4xLjE4OiB6YzN4
eC40Lmd6Ck9ubHkgaW4gd29yay5iYWsvd2ViY2FtZC0wLjEuMTg6IHpvcmFuLjQuZ3oKT25seSBp
biB3b3JrLmJhay93ZWJjYW1kLTAuMS4xODogenIzNjR4eC40Lmd6Ck9ubHkgaW4gd29yay5iYWs6
IHdlYmNhbWQuY29uZgo=
--0016e644cfe23b0f3d04995b0a97--



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