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.