John Snow <js...@redhat.com> writes:

> On the subject of compatibly broken:
> Is there any circumstance where the mapping has *any* effect on the
> current working behavior? Since we do not support the shorthand syntax
> at all currently, there is no code that USES this mapping to do
> anything.
>
> Even if you specify -drive file=...,index=42; the -device that you
> currently *must* add simply ignores any index/bus/unit mappings you've
> already given the drive -- it doesn't seem to touch or use any
> information within the DriveInfo structure at all.

I didn't think this through, and I knew it, so I chose to err on the
side of excessive caution by posing the bug-compatibility question.
You're right: since -drive if=ide was ignored before, we can change the
mapping.

> That said, why not make this property retroactive? It won't affect anything.
>
> Or rather, the property alone won't. What *will* break older command
> lines is the fact that we are now supporting the syntactic sugar at
> all, but I think this is clearly a bug, and we should not go out of
> our way to tolerate broken syntax.

Agreed.

> Based on the above, I think I will:
>
> (A) Implement the property for all versions

Yes, please.

> (B) Change the behavior of ide_drive_get to take the number of
> elements in the array, and imply the number of buses instead. If we
> decide to roll back older versions to be "compatibly broken," this
> will in effect limit us to three drives instead of six (index 0, 2,
> and 4) being mapped to ports 0, 1, and 2.
>
> This requires me touching the board init to adjust the call to
> drive_get slightly.

Thanks!

Reply via email to