Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 2023 13:54:16 +0200
From:      tuexen@fh-muenster.de
To:        Andrew Turner <andrew@FreeBSD.org>
Cc:        "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: 7029f2c887a1 - main - Allow pci_host_generic attachments to manage registers
Message-ID:  <54618885-6BE8-4210-BAD4-B5E942A83F9B@fh-muenster.de>
In-Reply-To: <202304241134.33OBYBwu071123@gitrepo.freebsd.org>
References:  <202304241134.33OBYBwu071123@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_38EE1C86-D39E-49BF-8B86-C5A67D61F615
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

> On 24. Apr 2023, at 13:34, Andrew Turner <andrew@FreeBSD.org> wrote:
>=20
> The branch main has been updated by andrew:
>=20
> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3D7029f2c887a16c823faf08e8a79dc0d3=
887989ab
>=20
> commit 7029f2c887a16c823faf08e8a79dc0d3887989ab
> Author:     Andrew Turner <andrew@FreeBSD.org>
> AuthorDate: 2022-06-04 10:59:46 +0000
> Commit:     Andrew Turner <andrew@FreeBSD.org>
> CommitDate: 2023-04-24 11:33:50 +0000
>=20
>    Allow pci_host_generic attachments to manage registers
>=20
>    To allow for attachments that don't use memory mapped registers add
>    a flag they can set when the base driver shouldn't map them.
>=20
>    Sponsored by:   Arm Ltd
>    Differential Revision:  https://reviews.freebsd.org/D39227
Not sure if it is related to this commit. But trying to run a kernel =
with
this revision on VM Fusion on an M1 MacBook Pro results in:

Mounting from ufs:/dev/nda0p2 failed with error 19.

A kernel build with
=
https://cgit.FreeBSD.org/src/commit/?id=3D390c31c4289e66f1bd9cb2349d6e55fd=
4dc468f8 =
<https://cgit.freebsd.org/src/commit/?id=3D390c31c4289e66f1bd9cb2349d6e55f=
d4dc468f8>
boots without problems.

Best regards
Michael
> ---
> sys/dev/pci/pci_host_generic.c | 45 =
+++++++++++++++++++++++-------------------
> sys/dev/pci/pci_host_generic.h |  2 ++
> 2 files changed, 27 insertions(+), 20 deletions(-)
>=20
> diff --git a/sys/dev/pci/pci_host_generic.c =
b/sys/dev/pci/pci_host_generic.c
> index 986318548eab..ca74b0c650c3 100644
> --- a/sys/dev/pci/pci_host_generic.c
> +++ b/sys/dev/pci/pci_host_generic.c
> @@ -106,27 +106,30 @@ pci_host_generic_core_attach(device_t dev)
> if (error !=3D 0)
> return (error);
>=20
> - rid =3D 0;
> - sc->res =3D bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
> -    PCI_RF_FLAGS | RF_ACTIVE);
> - if (sc->res =3D=3D NULL) {
> - device_printf(dev, "could not allocate memory.\n");
> - error =3D ENXIO;
> - goto err_resource;
> - }
> + if ((sc->quirks & PCIE_CUSTOM_CONFIG_SPACE_QUIRK) =3D=3D 0) {
> + rid =3D 0;
> + sc->res =3D bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
> +    PCI_RF_FLAGS | RF_ACTIVE);
> + if (sc->res =3D=3D NULL) {
> + device_printf(dev, "could not allocate memory.\n");
> + error =3D ENXIO;
> + goto err_resource;
> + }
> #ifdef PCI_UNMAPPED
> - resource_init_map_request(&req);
> - req.memattr =3D VM_MEMATTR_DEVICE_NP;
> - error =3D bus_map_resource(dev, SYS_RES_MEMORY, sc->res, &req, =
&map);
> - if (error !=3D 0) {
> - device_printf(dev, "could not map memory.\n");
> - return (error);
> - }
> - rman_set_mapping(sc->res, &map);
> + resource_init_map_request(&req);
> + req.memattr =3D VM_MEMATTR_DEVICE_NP;
> + error =3D bus_map_resource(dev, SYS_RES_MEMORY, sc->res, &req,
> +    &map);
> + if (error !=3D 0) {
> + device_printf(dev, "could not map memory.\n");
> + return (error);
> + }
> + rman_set_mapping(sc->res, &map);
> #endif
>=20
> - sc->bst =3D rman_get_bustag(sc->res);
> - sc->bsh =3D rman_get_bushandle(sc->res);
> + sc->bst =3D rman_get_bustag(sc->res);
> + sc->bsh =3D rman_get_bushandle(sc->res);
> + }
>=20
> sc->has_pmem =3D false;
> sc->pmem_rman.rm_type =3D RMAN_ARRAY;
> @@ -196,7 +199,8 @@ err_io_rman:
> err_mem_rman:
> rman_fini(&sc->pmem_rman);
> err_pmem_rman:
> - bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
> + if (sc->res !=3D NULL)
> + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
> err_resource:
> bus_dma_tag_destroy(sc->dmat);
> return (error);
> @@ -217,7 +221,8 @@ pci_host_generic_core_detach(device_t dev)
> rman_fini(&sc->io_rman);
> rman_fini(&sc->mem_rman);
> rman_fini(&sc->pmem_rman);
> - bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
> + if (sc->res !=3D NULL)
> + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->res);
> bus_dma_tag_destroy(sc->dmat);
>=20
> return (0);
> diff --git a/sys/dev/pci/pci_host_generic.h =
b/sys/dev/pci/pci_host_generic.h
> index 80da4f523165..b3242c8bdaf5 100644
> --- a/sys/dev/pci/pci_host_generic.h
> +++ b/sys/dev/pci/pci_host_generic.h
> @@ -90,6 +90,8 @@ struct generic_pcie_core_softc {
>=20
> /* Quirks */
> #define PCIE_ECAM_DESIGNWARE_QUIRK (1 << 0)
> +/* Child will map resources to access config registers */
> +#define PCIE_CUSTOM_CONFIG_SPACE_QUIRK (1 << 1)
>=20
> DECLARE_CLASS(generic_pcie_core_driver);
>=20


--Apple-Mail=_38EE1C86-D39E-49BF-8B86-C5A67D61F615
Content-Disposition: attachment;
	filename=smime.p7s
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEfMw
ggUSMIID+qADAgECAgkA4wvV+K8l2YEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAkRFMSsw
KQYDVQQKDCJULVN5c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5
c3RlbXMgVHJ1c3QgQ2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAy
MB4XDTE2MDIyMjEzMzgyMloXDTMxMDIyMjIzNTk1OVowgZUxCzAJBgNVBAYTAkRFMUUwQwYDVQQK
EzxWZXJlaW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMg
ZS4gVi4xEDAOBgNVBAsTB0RGTi1QS0kxLTArBgNVBAMTJERGTi1WZXJlaW4gQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMtg1/9moUHN0vqH
l4pzq5lN6mc5WqFggEcVToyVsuXPztNXS43O+FZsFVV2B+pG/cgDRWM+cNSrVICxI5y+NyipCf8F
XRgPxJiZN7Mg9mZ4F4fCnQ7MSjLnFp2uDo0peQcAIFTcFV9Kltd4tjTTwXS1nem/wHdN6r1ZB+Ba
L2w8pQDcNb1lDY9/Mm3yWmpLYgHurDg0WUU2SQXaeMpqbVvAgWsRzNI8qIv4cRrKO+KA3Ra0Z3qL
NupOkSk9s1FcragMvp0049ENF4N1xDkesJQLEvHVaY4l9Lg9K7/AjsMeO6W/VRCrKq4Xl14zzsjz
9AkH4wKGMUZrAcUQDBHHWekCAwEAAaOCAXQwggFwMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
k+PYMiba1fFKpZFK4OpL4qIMz+EwHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYD
VR0TAQH/BAgwBgEB/wIBAjAzBgNVHSAELDAqMA8GDSsGAQQBga0hgiwBAQQwDQYLKwYBBAGBrSGC
LB4wCAYGZ4EMAQICMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kwMzM2LnRlbGVzZWMuZGUv
cmwvVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGGBggrBgEFBQcBAQR6MHgwLAYIKwYB
BQUHMAGGIGh0dHA6Ly9vY3NwMDMzNi50ZWxlc2VjLmRlL29jc3ByMEgGCCsGAQUFBzAChjxodHRw
Oi8vcGtpMDMzNi50ZWxlc2VjLmRlL2NydC9UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMi5jZXIw
DQYJKoZIhvcNAQELBQADggEBAIcL/z4Cm2XIVi3WO5qYi3FP2ropqiH5Ri71sqQPrhE4eTizDnS6
dl2e6BiClmLbTDPo3flq3zK9LExHYFV/53RrtCyD2HlrtrdNUAtmB7Xts5et6u5/MOaZ/SLick0+
hFvu+c+Z6n/XUjkurJgARH5pO7917tALOxrN5fcPImxHhPalR6D90Bo0fa3SPXez7vTXTf/D6OWS
T1k+kEcQSrCFWMBvf/iu7QhCnh7U3xQuTY+8npTD5+32GPg8SecmqKc22CzeIs2LgtjZeOJVEqM7
h0S2EQvVDFKvaYwPBt/QolOLV5h7z/0HJPT8vcP9SpIClxvyt7bPZYoaorVyGTkwggWsMIIElKAD
AgECAgcbY7rQHiw9MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYDVQQGEwJERTFFMEMGA1UEChM8VmVy
ZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYu
MRAwDgYDVQQLEwdERk4tUEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5IDIwHhcNMTYwNTI0MTEzODQwWhcNMzEwMjIyMjM1OTU5WjCBjTELMAkGA1UEBhMCREUx
RTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9lcmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5n
c25ldHplcyBlLiBWLjEQMA4GA1UECwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9i
YWwgSXNzdWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ07eRxH3h+Gy8Zp
1xCeOdfZojDbchwFfylfS2jxrRnWTOFrG7ELf6Gr4HuLi9gtzm6IOhDuV+UefwRRNuu6cG1joL6W
LkDh0YNMZj0cZGnlm6Stcq5oOVGHecwX064vXWNxSzl660Knl5BpBb+Q/6RAcL0D57+eGIgfn5mI
TQ5HjUhfZZkQ0tkqSe3BuS0dnxLLFdM/fx5ULzquk1enfnjK1UriGuXtQX1TX8izKvWKMKztFwUk
P7agCwf9TRqaA1KgNpzeJIdl5Of6x5ZzJBTN0OgbaJ4YWa52fvfRCng8h0uwN89Tyjo4EPPLR22M
ZD08WkVKusqAfLjz56dMTM0CAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0P
AQH/BAQDAgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGCLAEBBDAdBgNV
HQ4EFgQUazqYi/nyU4na4K2yMh4JH+iqO3QwHwYDVR0jBBgwFoAUk+PYMiba1fFKpZFK4OpL4qIM
z+EwgY8GA1UdHwSBhzCBhDBAoD6gPIY6aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9v
dC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDBAoD6gPIY6aHR0cDovL2NkcDIucGNhLmRmbi5kZS9n
bG9iYWwtcm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYBBQUHAQEEgdAwgc0wMwYI
KwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBKBggrBgEF
BQcwAoY+aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY2FjZXJ0
L2NhY2VydC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJv
b3QtZzItY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCBeEWkTqR/
DlXwCbFqPnjMaDWpHPOVnj/z+N9rOHeJLI21rT7H8pTNoAauusyosa0zCLYkhmI2THhuUPDVbmCN
T1IxQ5dGdfBi5G5mUcFCMWdQ5UnnOR7Ln8qGSN4IFP8VSytmm6A4nwDO/afr0X9XLchMX9wQEZc+
lgQCXISoKTlslPwQkgZ7nu7YRrQbtQMMONncsKk/cQYLsgMHM8KNSGMlJTx6e1du94oFOO+4oK4v
9NsH1VuEGMGpuEvObJAaguS5Pfp38dIfMwK/U+d2+dwmJUFvL6Yb+qQTkPp8ftkLYF3sv8pBoGH7
EUkp2KgtdRXYShjqFu9VNCIaE40GMIIHKTCCBhGgAwIBAgIMJrRClNKRzetB0jc/MA0GCSqGSIb3
DQEBCwUAMIGNMQswCQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVp
bmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUw
IwYDVQQDDBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBMB4XDTIyMDUzMDEzMjIxNVoXDTI1
MDUyOTEzMjIxNVowgcQxCzAJBgNVBAYTAkRFMRwwGgYDVQQIDBNOb3JkcmhlaW4tV2VzdGZhbGVu
MREwDwYDVQQHDAhNdWVuc3RlcjEUMBIGA1UECgwLRkggTXVlbnN0ZXIxMjAwBgNVBAsMKUZhY2hi
ZXJlaWNoIEVsZWt0cm90ZWNobmlrIHVuZCBJbmZvcm1hdGlrMQ8wDQYDVQQEDAZUdWV4ZW4xEDAO
BgNVBCoMB01pY2hhZWwxFzAVBgNVBAMMDk1pY2hhZWwgVHVleGVuMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA2QZ7Uheto325SEnX2BTxBvYnz7u/BVmzxKlogaR4K0MA8ZcfNIdQkiJU
efjL6imq21BSFsr/tXcODFZmPrvx9aIxjntCxmEFr7qFaw3e3mUIxJyj5n6BxjzZ/hyJte8LBDbj
zj+e8WPUzXmYbSxtrh9kgw8NMx3+bo3Hslic+PkKEGx9JJp2I2TEs88xD0rHC2Ljwcfk6bS9jC+/
BAuY/TsbJoq+8d64DYSLGiIYbvMMuxM2C8BlpHLIOLx2FaH+uMqdH2dLVvCacZJ9YzHvvZY8O2nQ
OBFCG1UMpX5YLHN8g/t02a+IBt+oe97JMdJ/kZsPjolI98dcRdzz0hTXZql2xvp6zlocm9iGTRcv
dCSxy+0x4CIZD1EkVX9zCPGpzdTXnrU+zvnz14Uq3Wbfl3GiVgK0Avr1enfZepruAxAy7KGIm2zi
/qY3XSkN8fvWJmYnomOjCRjaPtqS/azmnyeodsxlVhqQKbES65u/PbOXjOlhiYAvemS0IbK4iR76
3iSmkpwSNpJt6BCtFJN+w3Y8tztCP66KPPC1Fri1oj27KPaf04J66MkSjlQdpI7POS6lDyN7X2Hw
tgZKRVA94h/JvZp4ld7mTzXTEW2tdO5azPILsL9xOYjSS5VIyUFF4MoxSbfZtXWaZFsMC1fXDNNL
uRDrISotdwADuU75Fe0CAwEAAaOCAk4wggJKMD4GA1UdIAQ3MDUwDwYNKwYBBAGBrSGCLAEBBDAQ
Bg4rBgEEAYGtIYIsAQEECjAQBg4rBgEEAYGtIYIsAgEECjAJBgNVHRMEAjAAMA4GA1UdDwEB/wQE
AwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFFDbROYIxDr3fvlX
tkXqx7T8lihxMB8GA1UdIwQYMBaAFGs6mIv58lOJ2uCtsjIeCR/oqjt0MCAGA1UdEQQZMBeBFXR1
ZXhlbkBmaC1tdWVuc3Rlci5kZTCBjQYDVR0fBIGFMIGCMD+gPaA7hjlodHRwOi8vY2RwMS5wY2Eu
ZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHViL2NybC9jYWNybC5jcmwwP6A9oDuGOWh0dHA6Ly9j
ZHAyLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIvY3JsL2NhY3JsLmNybDCB2wYIKwYB
BQUHAQEEgc4wgcswMwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2
ZXIvT0NTUDBJBggrBgEFBQcwAoY9aHR0cDovL2NkcDEucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFs
LWcyL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDBJBggrBgEFBQcwAoY9aHR0cDovL2NkcDIucGNhLmRm
bi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDANBgkqhkiG9w0BAQsF
AAOCAQEALubmL854icQMxKxOxQK+deXTjC6CLYnUDwB8MvnDC+BSeh3tUHT37fSgsK1ShNUSNJX0
YF0VYLfZ6+lPyaFYLArVrAIHqvDiVURaulB9NA+3gck/VSuRz4ILYBy61XbcGQQ8Wx+g6TcqsjsF
oOhqEBycj5QuITj+EFmX8nvfo0dJtVa2OPDk1N9beLfQBcLhspJ/nv0pKhpNWv5YETG26YqYfsC7
FA/ZNGvRcoOPkjkDhBTtG+qq9DDD75XtGEBZhYXbnG15tn4/UV07B+UyK4/cqQSA+My5FML3YsQw
EYrV9klVD/mLMOdZV5+95xt7O8IdYeHrBapVlhANH5bFazGCBJ0wggSZAgEBMIGeMIGNMQswCQYD
VQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBG
b3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUwIwYDVQQDDBxERk4tVmVy
ZWluIEdsb2JhbCBJc3N1aW5nIENBAgwmtEKU0pHN60HSNz8wDQYJYIZIAWUDBAIBBQCgggHPMBgG
CSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDQyNDExNTQxNlowLwYJ
KoZIhvcNAQkEMSIEIMIL/fb7daNUmxzAdiJc+v89Tfw3s+r454fUupTbRE7SMIGvBgkrBgEEAYI3
EAQxgaEwgZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZvZXJkZXJ1bmcg
ZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsMB0RGTi1QS0kx
JTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCa0QpTSkc3rQdI3PzCBsQYL
KoZIhvcNAQkQAgsxgaGggZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZv
ZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsM
B0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCa0QpTSkc3r
QdI3PzANBgkqhkiG9w0BAQsFAASCAgBqE4yJY2wzL0oLtOv/AlwURoB0rd8jnT5WMc4c7kqOMXQJ
/J46I5ojpKQ+bG0Am7HhoTFFG77P9y5dn06wYnuCxUgD07cuTBLfQjwuNFj5c3fdzSrhFBAs1K1U
5VPT1dff1ISkhiaSQLkaJGVL2h5wMIA09AhDnYDhVK6OP6kP9iRyrXEC1+V8dkuq521K8H55btnJ
nqeuq5fFYlLLD5iq89bDAipyp4ojLsDi+nheW3gRj5ZzyoLuQlk0HeYjl++hIwzSQhSBJyTXUdn3
6Qak0QGA/1vU3rHeYYgp5RyK2lWm7k7RDqR6sx3TC0a+grnC2bSmTiGl6nz6n5L12YJJRM+UdOs8
sl42JFC/mgCWO/ykxWa6UGZvZMA4sFD3kZDqzmYdw2QxKTUGvIobTyU4hEYSII5GqtGDmkari07n
E+AmknFYomYGUdOShpbEeYVrJs0J0Cjl5bwM1byB90s1TD7gObfyzK/d1Ro7vIURp8BI3bDSAuCR
cWR0KFMzkKvlUrUoddf6oRPYCYjnkHlBLtpTSSnIs+OyX3ZiXBW/Q3ewyFqv+mztz4/UlVZtVaJd
37nvwBzGeyBEMGWm4OQAFZOvUH3hv/VsQCUSQr1Ksuh5zprp/EROTiP6P9zuHjpUzRM/bcEewF96
Bk3nuwIVtNuceZI3jjq5Qg5L3lPGIwAAAAAAAA==
--Apple-Mail=_38EE1C86-D39E-49BF-8B86-C5A67D61F615--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54618885-6BE8-4210-BAD4-B5E942A83F9B>