USBLL: Remove unnecessary packet ends transfer check

Check whether last received packet ended transfer on STALL only if there
was active transfer key set. This fixes failed transfer type assertion
for control transfers without data stage that were STALLed by device
(during status stage).
This commit is contained in:
Tomasz Moń 2023-03-06 11:01:05 +01:00
parent a93c775849
commit 248ee51e36
No known key found for this signature in database
GPG Key ID: 397DFEBE343AD96F
1 changed files with 2 additions and 3 deletions

View File

@ -2229,15 +2229,14 @@ dissect_usbll_handshake(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *t
usbll_transfer_info_t *transfer;
guint32 last_offset;
gboolean from_host;
gboolean reassembled;
from_host = usbll_is_stalled_data_from_host(data->transaction_state);
ep_info = usbll_get_endpoint_info(pinfo, data->transaction->address, data->transaction->endpoint, from_host);
last_offset = ep_info->transfer_offset - ep_info->last_data_len;
reassembled = packet_ends_transfer(ep_info, last_offset, ep_info->last_data_len);
if (ep_info->active_transfer_key && !reassembled)
if (ep_info->active_transfer_key &&
!packet_ends_transfer(ep_info, last_offset, ep_info->last_data_len))
{
/* STALL terminates ongoing transfer. While the STALL packet is
* always sent by device, the transfer can be either IN or OUT.