Re: [PATCH] hurd: Implement device memory mapping

2022-03-12 Thread Joan Lledó
El 12/3/22 a les 12:30, Samuel Thibault ha escrit: > Is netdde using your modified libpciaccess? That was it, netdde was using the original libpciaccess. I'm attaching a patch to fix the problem.

Re: [PATCH] hurd: Implement device memory mapping

2022-03-12 Thread Samuel Thibault
Hello, Joan Lledó, le sam. 12 mars 2022 12:22:39 +0100, a ecrit: > El 23/1/22 a les 18:44, Samuel Thibault ha escrit: > > With a normal hurd system, i.e. no bootstrap pci-arbiter, and using > > netdde, which is thus supposed to eventually use the translator sitting > > on /servers/bus/pci > > I

Re: [PATCH] hurd: Implement device memory mapping

2022-03-12 Thread Joan Lledó
El 23/1/22 a les 18:44, Samuel Thibault ha escrit: With a normal hurd system, i.e. no bootstrap pci-arbiter, and using netdde, which is thus supposed to eventually use the translator sitting on /servers/bus/pci I still don't know how to reproduce this, if I run a normal Hurd with an e1000

Re: [PATCH] hurd: Implement device memory mapping

2022-01-23 Thread Samuel Thibault
Joan Lledó, le dim. 23 janv. 2022 18:35:58 +0100, a ecrit: > El 9/1/22 a les 1:02, Samuel Thibault ha escrit: > > Err, this is breaking everything when pci-arbiter is not running as a > > bootstrap translator. In that case e.g. netdde succeeds getting the > > privileged port, and thus tries to

Re: [PATCH] hurd: Implement device memory mapping

2022-01-23 Thread Joan Lledó
Hi, El 9/1/22 a les 1:02, Samuel Thibault ha escrit: Err, this is breaking everything when pci-arbiter is not running as a bootstrap translator. In that case e.g. netdde succeeds getting the privileged port, and thus tries to open pci, but fails, and thus the whole thing aborts. What problem

Re: [PATCH] hurd: Implement device memory mapping

2022-01-09 Thread Samuel Thibault
Samuel Thibault, le dim. 09 janv. 2022 13:14:21 +0100, a ecrit: > Joan Lledó, le dim. 09 janv. 2022 12:16:21 +0100, a ecrit: > > > > El 9/1/22 a les 1:15, Samuel Thibault ha escrit: > > > > Err, this is breaking everything when pci-arbiter is not running as a > > > > bootstrap translator. In that

Re: [PATCH] hurd: Implement device memory mapping

2022-01-09 Thread Samuel Thibault
Joan Lledó, le dim. 09 janv. 2022 12:16:21 +0100, a ecrit: > > El 9/1/22 a les 1:15, Samuel Thibault ha escrit: > > > Err, this is breaking everything when pci-arbiter is not running as a > > > bootstrap translator. In that case e.g. netdde succeeds getting the > > > privileged port, and thus

Re: [PATCH] hurd: Implement device memory mapping

2022-01-09 Thread Joan Lledó
El 9/1/22 a les 1:15, Samuel Thibault ha escrit: Err, this is breaking everything when pci-arbiter is not running as a bootstrap translator. In that case e.g. netdde succeeds getting the privileged port, and thus tries to open pci, but fails, and thus the whole thing aborts. What problem the

Re: [PATCH] hurd: Implement device memory mapping

2022-01-08 Thread Samuel Thibault
Samuel Thibault, le dim. 09 janv. 2022 01:02:57 +0100, a ecrit: > Joan Lledó via Bug reports for the GNU Hurd, le mer. 05 janv. 2022 13:08:01 > +0100, a ecrit: > > @@ -523,18 +637,18 @@ pci_system_hurd_create(void) > > > > pci_sys->num_devices = 0; > > > > -if ((err =

Re: [PATCH] hurd: Implement device memory mapping

2022-01-08 Thread Samuel Thibault
Joan Lledó via Bug reports for the GNU Hurd, le mer. 05 janv. 2022 13:08:01 +0100, a ecrit: > @@ -523,18 +637,18 @@ pci_system_hurd_create(void) > > pci_sys->num_devices = 0; > > -if ((err = get_privileged_ports (NULL, _master)) || > (device_master == MACH_PORT_NULL)) { > -

Re: [PATCH] hurd: Implement device memory mapping

2022-01-08 Thread Samuel Thibault
Applied, thanks!! Samuel Joan Lledó via Bug reports for the GNU Hurd, le mer. 05 janv. 2022 13:08:01 +0100, a ecrit: > From: Joan Lledó > > * src/hurd_pci.c: > * Implement device memory mapping functions > * pci_device_hurd_map_range > *

[PATCH] hurd: Implement device memory mapping

2022-01-05 Thread Joan Lledó
From: Joan Lledó * src/hurd_pci.c: * Implement device memory mapping functions * pci_device_hurd_map_range * pci_device_hurd_unmap_range * pci_device_hurd_map_legacy * pci_device_hurd_unmap_legacy * src/x86_pci.h: *

Re: [PATCH] hurd: Implement device memory mapping

2022-01-05 Thread Joan Lledó
Hi, > This is not using map.base as set by pci_device_hurd_map_legacy? You're right, I checked it out and found that libpciaccess has a set of old and deprecated memory mapping functions to map/unmap entire BARs (regions). Later, they added new functions to allow manny mappings in the same

Re: [PATCH] hurd: Implement device memory mapping

2022-01-02 Thread Samuel Thibault
Joan Lledó, le jeu. 30 déc. 2021 12:19:37 +0100, a ecrit: > +static int > +pci_device_hurd_map_range(struct pci_device *dev, [...] > +err = vm_map (mach_task_self (), (vm_address_t *)>memory, map->size, > + 0, 1, > + pager, /* a memory object proxy containing

Re: [PATCH] hurd: Implement device memory mapping

2021-12-30 Thread Joan Lledó
Hi, I attached a patch with the changes

[PATCH] hurd: Implement device memory mapping

2021-12-30 Thread Joan Lledó
From: Joan Lledó * src/hurd_pci.c: * Implement device memory mapping functions * pci_device_hurd_map_range * pci_device_hurd_unmap_range * pci_device_hurd_map_legacy * pci_device_hurd_unmap_legacy * src/x86_pci.h: *

Re: [PATCH] hurd: Implement device memory mapping

2021-12-28 Thread Samuel Thibault
Joan Lledó, le mar. 28 déc. 2021 17:48:20 +0100, a ecrit: > El 28/12/21 a les 13:55, Samuel Thibault ha escrit: > > > > ? The interface explicitly says they can be different. > > > > Sorry, I was confused. I meant the function pci_device_hurd_map_range at > libpciaccess. If io_map returns

Re: [PATCH] hurd: Implement device memory mapping

2021-12-28 Thread Joan Lledó
Hi, El 28/12/21 a les 13:55, Samuel Thibault ha escrit: ? The interface explicitly says they can be different. Samuel Sorry, I was confused. I meant the function pci_device_hurd_map_range at libpciaccess. If io_map returns different ports for robj and wobj, we can only assign one of them

Re: [PATCH] hurd: Implement device memory mapping

2021-12-28 Thread Samuel Thibault
Joan Lledó, le mar. 28 déc. 2021 13:26:12 +0100, a ecrit: > El 19/12/21 a les 16:40, Samuel Thibault ha escrit: > > “ > > For objects where read data and write data are the same, these objects > > will be equal, otherwise they will be disjoint. > > ” > > > > In that case, which one should we

Re: [PATCH] hurd: Implement device memory mapping

2021-12-28 Thread Joan Lledó
Hi, El 19/12/21 a les 16:40, Samuel Thibault ha escrit: “ For objects where read data and write data are the same, these objects will be equal, otherwise they will be disjoint. ” In that case, which one should we return as pager? Probably the right thing is to return an error, since a

Re: [PATCH] hurd: Implement device memory mapping

2021-12-19 Thread Samuel Thibault
Joan Lledó, le dim. 19 déc. 2021 12:14:18 +0100, a ecrit: > El 12/12/21 a les 16:19, Samuel Thibault ha escrit: > > > > Don't we need > > > > else { pager = wobj; } ? > > > > Otherwise pager would be undefined. > > In the case when the two previous conditions are false, what about robj? can >

Re: [PATCH] hurd: Implement device memory mapping

2021-12-19 Thread Joan Lledó
El 12/12/21 a les 16:19, Samuel Thibault ha escrit: Don't we need else { pager = wobj; } ? Otherwise pager would be undefined. In the case when the two previous conditions are false, what about robj? can we be sure it's null and not leaked? When could the two previous conditions be

Re: [PATCH] hurd: Implement device memory mapping

2021-12-12 Thread Samuel Thibault
Hello, Joan Lledó, le dim. 12 déc. 2021 13:52:14 +0100, a ecrit: > +err = io_map (file, , ); > +mach_port_deallocate (mach_task_self(), file); > +if (err) > +return err; > + > +switch (prot & (VM_PROT_READ|VM_PROT_WRITE)) { > +case VM_PROT_READ: > +pager =

[PATCH] hurd: Implement device memory mapping

2021-12-12 Thread Joan Lledó
From: Joan Lledó * src/hurd_pci.c: * Implement device memory mapping functions * pci_device_hurd_map_range * pci_device_hurd_unmap_range * pci_device_hurd_map_legacy * pci_device_hurd_unmap_legacy * src/x86_pci.h: *