Re: [PATCH 08/11] PCI/IDE: Add IDE establishment helpers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alexey Kardashevskiy wrote:
[..]
> >> access to set T-bit). The device got just one (which is no use here as I
> >> understand).
> > 
> > I also have no idea from SPEC how to use the IDE register blocks on EP,
> > except stream ENABLE bit.
> 
> Well, there is another problem.
> 
> My other test device has 1 link stream and 1 selective stream, both have 
> streamid=0 and enable=0 after reset. I only configure 1 selective stream 
> (write streamid + enable) and do not touch the link stream.
> 
> But the device assumes 2 streams have the same streamid=0 and when it 
> receives KEY_PROG, it semi-randomly assigns the key to the link stream 
> in my case so things do not work. The argument for it is: every stream 
> needs to have an unique id, regardless its enabled state as "enable" can 
> come before or after key programming (and I wonder if somebody else 
> interprets it the same way).
> 
> This patch assumes that the selective streamid is the same as its index 
> in the IDE cap's list of selective streams.

Oh, true that should be separated, and perhaps that is the concern that
Aneesh has been raising as well?
 
> And it just leaves link streams unconfigured. So I have to work around
> my device by writing unique numbers to all streams (link + selective)
> I am not using. Meh.

This sounds like a device-quirk where it is not waiting for an enable
event to associate the key with a given stream index. One could imagine
this is either a pervasive problem and TSMs will start considering
Stream ID 0 as burned for compatibilitiy reasons. Or, this device is
just exhibiting a pre-production quirk that Linux does not need to
react, yet.

Can you say whether this problem is going to escape your test bench into
something mainline Linux needs to worry about?

> And then what are we doing to do when we start adding link streams? I 
> suggest decoupling pci_ide::stream_id from stream_id in sel_ide_offset() 
> (which is more like selective_stream_index) from the start.

Setting aside that I agree with you that Stream index be separated from
from Stream ID, what would motivate Linux to consider setting up Link
Stream IDE?

One of the operational criticisms of Link IDE is that it requires adding
more points of failure into the TCB where a compromised switch can snoop
traffic. It also adds more Keys and their associated maintainenace
overhead. So, before we start planning ahead for Link IDE and Selective
Stream IDE to co-exist in the implementation, I think we need a clear
use case that demonstrates Link IDE is going to graduate from the
specification into practical deployments.

We can always cross that sophistication bridge later.




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux