* IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c
@ 2023-05-12 13:04 Bert Karwatzki
2023-05-17 21:35 ` Alex Elder
0 siblings, 1 reply; 4+ messages in thread
From: Bert Karwatzki @ 2023-05-12 13:04 UTC (permalink / raw)
To: linux-kernel; +Cc: Alex Elder
commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c
Author: Alex Elder <elder@linaro.org>
Date: Wed Jan 25 14:45:39 2023 -0600
net: ipa: stop using sizeof(status)
The IPA packet status structure changes in IPA v5.0 in ways that
are
difficult to represent cleanly. As a small step toward redefining
it as a parsed block of data, use a constant to define its size,
rather than the size of the IPA status structure type.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
introduced the IPA_STATUS_SIZE constant as a replacent for
sizeof(struct ipa_status). IPA_STATUS_SIZE is defined as
sizeof(__le32[4]), but sizeof(struct ipa_status) = sizeof(__le32[8])
and the newly introducded ipa_status_extract operates on 8 __le32
words, so I wondered if IPA_STATUS_SIZE is correct.
Bert Karwatzki
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c 2023-05-12 13:04 IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c Bert Karwatzki @ 2023-05-17 21:35 ` Alex Elder 2023-05-18 22:12 ` Bert Karwatzki 0 siblings, 1 reply; 4+ messages in thread From: Alex Elder @ 2023-05-17 21:35 UTC (permalink / raw) To: Bert Karwatzki; +Cc: linux-kernel On 5/12/23 8:04 AM, Bert Karwatzki wrote: > commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c > Author: Alex Elder <elder@linaro.org> > Date: Wed Jan 25 14:45:39 2023 -0600 > > net: ipa: stop using sizeof(status) > > The IPA packet status structure changes in IPA v5.0 in ways that > are > difficult to represent cleanly. As a small step toward redefining > it as a parsed block of data, use a constant to define its size, > rather than the size of the IPA status structure type. > > Signed-off-by: Alex Elder <elder@linaro.org> > Signed-off-by: David S. Miller <davem@davemloft.net> > > introduced the IPA_STATUS_SIZE constant as a replacent for > sizeof(struct ipa_status). IPA_STATUS_SIZE is defined as > sizeof(__le32[4]), but sizeof(struct ipa_status) = sizeof(__le32[8]) > and the newly introducded ipa_status_extract operates on 8 __le32 > words, so I wondered if IPA_STATUS_SIZE is correct. You are right to wonder about this. I think you have identified a bug. It is a bug that most likely almost never matters (because the status size is always proper--and not too small), but it is a bug nevertheless. Would you like to provide a patch to fix this? Otherwise I can do that, and I'll provide credit to you: Reported-by: Bert Karwatzki <spasswolf@web.de> Please let me know. Thanks for inquiring about/reporting this. -Alex > > Bert Karwatzki ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c 2023-05-17 21:35 ` Alex Elder @ 2023-05-18 22:12 ` Bert Karwatzki 2023-05-26 12:29 ` Alex Elder 0 siblings, 1 reply; 4+ messages in thread From: Bert Karwatzki @ 2023-05-18 22:12 UTC (permalink / raw) To: Alex Elder; +Cc: linux-kernel Am Mittwoch, dem 17.05.2023 um 16:35 -0500 schrieb Alex Elder: > On 5/12/23 8:04 AM, Bert Karwatzki wrote: > > commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c > > Author: Alex Elder <elder@linaro.org> > > Date: Wed Jan 25 14:45:39 2023 -0600 > > > > net: ipa: stop using sizeof(status) > > > > The IPA packet status structure changes in IPA v5.0 in ways > > that > > are > > difficult to represent cleanly. As a small step toward > > redefining > > it as a parsed block of data, use a constant to define its > > size, > > rather than the size of the IPA status structure type. > > > > Signed-off-by: Alex Elder <elder@linaro.org> > > Signed-off-by: David S. Miller <davem@davemloft.net> > > > > introduced the IPA_STATUS_SIZE constant as a replacent for > > sizeof(struct ipa_status). IPA_STATUS_SIZE is defined as > > sizeof(__le32[4]), but sizeof(struct ipa_status) = > > sizeof(__le32[8]) > > and the newly introducded ipa_status_extract operates on 8 __le32 > > words, so I wondered if IPA_STATUS_SIZE is correct. > > You are right to wonder about this. I think you have identified > a bug. It is a bug that most likely almost never matters (because > the status size is always proper--and not too small), but it is > a bug nevertheless. > > Would you like to provide a patch to fix this? Otherwise I can > do that, and I'll provide credit to you: > > Reported-by: Bert Karwatzki <spasswolf@web.de> > > Please let me know. Thanks for inquiring about/reporting this. > > -Alex > > > > > Bert Karwatzki > Here's the patch that addresse the issue (if there's a > in front of the first From, that seems to be a quirk of evolution ...) From 583f35b3d91f048d413fc4f6a3b9237fc9d7efb2 Mon Sep 17 00:00:00 2001 From: Bert Karwatzki <spasswolf@web.de> Date: Fri, 19 May 2023 00:02:55 +0200 Subject: [PATCH] Make IPA_STATUS_SIZE equal to the size of the remove struct ipa_status. --- drivers/net/ipa/ipa_endpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index 2ee80ed140b7..afa1d56d9095 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -119,7 +119,7 @@ enum ipa_status_field_id { }; /* Size in bytes of an IPA packet status structure */ -#define IPA_STATUS_SIZE sizeof(__le32[4]) +#define IPA_STATUS_SIZE sizeof(__le32[8]) /* IPA status structure decoder; looks up field values for a structure */ static u32 ipa_status_extract(struct ipa *ipa, const void *data, -- 2.40.1 Bert Karwatzki ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c 2023-05-18 22:12 ` Bert Karwatzki @ 2023-05-26 12:29 ` Alex Elder 0 siblings, 0 replies; 4+ messages in thread From: Alex Elder @ 2023-05-26 12:29 UTC (permalink / raw) To: Bert Karwatzki, Alex Elder; +Cc: linux-kernel On 5/18/23 5:12 PM, Bert Karwatzki wrote: > Am Mittwoch, dem 17.05.2023 um 16:35 -0500 schrieb Alex Elder: >> On 5/12/23 8:04 AM, Bert Karwatzki wrote: >>> commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c >>> Author: Alex Elder <elder@linaro.org> >>> Date: Wed Jan 25 14:45:39 2023 -0600 >>> >>> net: ipa: stop using sizeof(status) >>> >>> The IPA packet status structure changes in IPA v5.0 in ways >>> that >>> are >>> difficult to represent cleanly. As a small step toward >>> redefining >>> it as a parsed block of data, use a constant to define its >>> size, >>> rather than the size of the IPA status structure type. >>> >>> Signed-off-by: Alex Elder <elder@linaro.org> >>> Signed-off-by: David S. Miller <davem@davemloft.net> >>> >>> introduced the IPA_STATUS_SIZE constant as a replacent for >>> sizeof(struct ipa_status). IPA_STATUS_SIZE is defined as >>> sizeof(__le32[4]), but sizeof(struct ipa_status) = >>> sizeof(__le32[8]) >>> and the newly introducded ipa_status_extract operates on 8 __le32 >>> words, so I wondered if IPA_STATUS_SIZE is correct. >> >> You are right to wonder about this. I think you have identified >> a bug. It is a bug that most likely almost never matters (because >> the status size is always proper--and not too small), but it is >> a bug nevertheless. >> >> Would you like to provide a patch to fix this? Otherwise I can >> do that, and I'll provide credit to you: >> >> Reported-by: Bert Karwatzki <spasswolf@web.de> >> >> Please let me know. Thanks for inquiring about/reporting this. >> >> -Alex >> >>> >>> Bert Karwatzki >> > > Here's the patch that addresse the issue (if there's a > in front of > the first From, that seems to be a quirk of evolution ...) Your patch looks correct, and again I really appreciate your finding and fixing it. Since the ipa_status structure is no longer defined, I might now suggest just defining the value as ((size_t)32), but that's not a big deal To get your patch accepted, please re-send it, taking into account the following: - Make sure your patch is based on the upstream "net" branch: Remote: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git Branch: main (For this trivial fix this might not be critical.) - Update your subject line, something like: [PATCH net] net: ipa: use proper value for IPA_STATUS_SIZE Be sure to include the "net" part; it indicates that the patch is a bug fix and should be back-ported. - Add a one or two sentence description in the patch header. Something like: A recent commit introduced the IPA_STATUS_SIZE constant as a replacement for sizeof(struct ipa_status). IPA_STATUS_SIZE was defined as sizeof(__le32[4]) (16 bytes), which is incorrect. The actual size of that (since removed) structure was 32 bytes, or sizeof(__le32[8]). Correct the incorrect value. - At the end, add your sign-off: Signed-off-by: Bert Karwatzki <spasswolf@web.de> - And on the line directly above your sign-off, add a "Fixed" tag to indicate where the bug got introduced: Fixes: b8dc7d0eea5a ("net: ipa: stop using sizeof(status)") - Address the patch message to the network maintainers, who can incorporate it into their current "net" branch, and arrange for the fix to be back-ported to older stable branches. David S. Miller <davem@davemloft.net> Eric Dumazet <edumazet@google.com> Jakub Kicinski <kuba@kernel.org> Paolo Abeni <pabeni@redhat.com> - Carbon-copy me, and some mailing lists: Alex Elder <elder@linaro.org> netdev@vger.kernel.org linux-arm-msm@vger.kernel.org linux-kernel@vger.kernel.org Once I receive the updated patch (assuming everything is order), I will add my "Reviewed-by" and the network maintainers can merge it and begin the process to get it back-ported to earlier releases. If you like, I can do all of this on your behalf. Provided you give me your sign-off (i.e., just send me a message that includes "Signed-off-by: Bert Karwatzki <spasswolf@web.de>") I can send it and will credit you for identifying the bug and sending the fix. -Alex > > > From 583f35b3d91f048d413fc4f6a3b9237fc9d7efb2 Mon Sep 17 00:00:00 2001 > From: Bert Karwatzki <spasswolf@web.de> > Date: Fri, 19 May 2023 00:02:55 +0200 > Subject: [PATCH] Make IPA_STATUS_SIZE equal to the size of the remove > struct > ipa_status. > > --- > drivers/net/ipa/ipa_endpoint.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ipa/ipa_endpoint.c > b/drivers/net/ipa/ipa_endpoint.c > index 2ee80ed140b7..afa1d56d9095 100644 > --- a/drivers/net/ipa/ipa_endpoint.c > +++ b/drivers/net/ipa/ipa_endpoint.c > @@ -119,7 +119,7 @@ enum ipa_status_field_id { > }; > > /* Size in bytes of an IPA packet status structure */ > -#define IPA_STATUS_SIZE sizeof(__le32[4]) > +#define IPA_STATUS_SIZE sizeof(__le32[8]) > > /* IPA status structure decoder; looks up field values for a structure > */ > static u32 ipa_status_extract(struct ipa *ipa, const void *data, ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-05-26 12:30 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-05-12 13:04 IPA_STATUS_SIZE, commit b8dc7d0eea5a7709bb534f1b3ca70d2d7de0b42c Bert Karwatzki 2023-05-17 21:35 ` Alex Elder 2023-05-18 22:12 ` Bert Karwatzki 2023-05-26 12:29 ` Alex Elder
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®