firewire: ohci: move self_id_complete tracepoint after validating register
[ Upstream commit 696968262a ]
The value of OHCI1394_SelfIDCount register includes an error-indicating
bit. It is safer to place the tracepoint probe after validating the
register value.
Link: https://lore.kernel.org/r/20250823030954.268412-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3a274f142a
commit
ff35d2d052
@@ -2063,6 +2063,9 @@ static void bus_reset_work(struct work_struct *work)
|
||||
ohci_notice(ohci, "self ID receive error\n");
|
||||
return;
|
||||
}
|
||||
|
||||
trace_self_id_complete(ohci->card.index, reg, ohci->self_id, has_be_header_quirk(ohci));
|
||||
|
||||
/*
|
||||
* The count in the SelfIDCount register is the number of
|
||||
* bytes in the self ID receive buffer. Since we also receive
|
||||
@@ -2231,15 +2234,8 @@ static irqreturn_t irq_handler(int irq, void *data)
|
||||
if (event & OHCI1394_busReset)
|
||||
reg_write(ohci, OHCI1394_IntMaskClear, OHCI1394_busReset);
|
||||
|
||||
if (event & OHCI1394_selfIDComplete) {
|
||||
if (trace_self_id_complete_enabled()) {
|
||||
u32 reg = reg_read(ohci, OHCI1394_SelfIDCount);
|
||||
|
||||
trace_self_id_complete(ohci->card.index, reg, ohci->self_id,
|
||||
has_be_header_quirk(ohci));
|
||||
}
|
||||
if (event & OHCI1394_selfIDComplete)
|
||||
queue_work(selfid_workqueue, &ohci->bus_reset_work);
|
||||
}
|
||||
|
||||
if (event & OHCI1394_RQPkt)
|
||||
queue_work(ohci->card.async_wq, &ohci->ar_request_ctx.work);
|
||||
|
||||
Reference in New Issue
Block a user