Re: [PATCH 2/3] firewire-sbp2: Ignore SBP-2 targets on the localnode

From: Clemens Ladisch
Date: Sat Feb 11 2012 - 07:16:34 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/