firewire: core: fix invalid port index for parent device
In a commit24b7f8e5cd
("firewire: core: use helper functions for self ID sequence"), the enumeration over self ID sequence was refactored with some helper functions with KUnit tests. These helper functions are guaranteed to work expectedly by the KUnit tests, however their application includes a mistake to assign invalid value to the index of port connected to parent device. This bug affects the case that any extra node devices which has three or more ports are connected to 1394 OHCI controller. In the case, the path to update the tree cache could hits WARN_ON(), and gets general protection fault due to the access to invalid address computed by the invalid value. This commit fixes the bug to assign correct port index. Cc: stable@vger.kernel.org Reported-by: Edmund Raile <edmund.raile@proton.me> Closes: https://lore.kernel.org/lkml/8a9902a4ece9329af1e1e42f5fea76861f0bf0e8.camel@proton.me/ Fixes:24b7f8e5cd
("firewire: core: use helper functions for self ID sequence") Link: https://lore.kernel.org/r/20241025034137.99317-1-o-takashi@sakamocchi.jp Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
This commit is contained in:
parent
42f7652d3e
commit
f6a6780e0b
@ -204,7 +204,7 @@ static struct fw_node *build_tree(struct fw_card *card, const u32 *sid, int self
|
||||
// the node->ports array where the parent node should be. Later,
|
||||
// when we handle the parent node, we fix up the reference.
|
||||
++parent_count;
|
||||
node->color = i;
|
||||
node->color = port_index;
|
||||
break;
|
||||
|
||||
case PHY_PACKET_SELF_ID_PORT_STATUS_CHILD:
|
||||
|
Loading…
Reference in New Issue
Block a user