Messages in this thread | | | Date | Sat, 11 Feb 2012 13:16:01 +0100 | From | Clemens Ladisch <> | Subject | Re: [PATCH 2/3] firewire-sbp2: Ignore SBP-2 targets on the local node |
| |
Stefan Richter wrote: > On Feb 10 Chris Boot wrote: >> The firewire-sbp2 module tries to login to an SBP-2/3 target even when >> it is running on the local node, which fails because of the inability to >> fetch data from DMA mapped regions using firewire transactions on the >> local node. > > In the long run, we might want to support target and initiator set up to > reside on the same node and talking to each other via loopback, if > somebody really needs it and if it can be done with reasonably little > effort.
Handling SBP data packets in the driver is required if we do not want to allow remote DMA from any device that claims to be a target. This is somewhere on my todo list.
>> + /* ignore targets on the local node */ >> + if (device->node == device->card->local_node) { >> + dev_set_drvdata(&unit->device, NULL); >> + return 0; >> + } > > But I do wonder: Shouldn't this be implemented by returning from the > driver probe method with an error?
AFAIK zero means "attach", and the drvdata pointer has no meaning to the core.
> If so, which errno should be returned?
-ENODEV or -ENXIO.
Regards, Clemens
| |