]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: ipa: stop using sizeof(status)
authorAlex Elder <elder@linaro.org>
Wed, 25 Jan 2023 20:45:39 +0000 (14:45 -0600)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jan 2023 11:16:29 +0000 (11:16 +0000)
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>
drivers/net/ipa/ipa_endpoint.c

index 3756ce5f3f3104b7272092ead4cb6831ab126655..dd4b2b073aae988632a797dd0eb6090cc5c4166b 100644 (file)
@@ -70,6 +70,9 @@ struct ipa_status {
 #define IPA_STATUS_FLAGS1_RT_RULE_ID_FMASK     GENMASK(31, 22)
 #define IPA_STATUS_FLAGS2_TAG_FMASK            GENMASK_ULL(63, 16)
 
+/* Size in bytes of an IPA packet status structure */
+#define IPA_STATUS_SIZE                        sizeof(__le32[4])
+
 /* Compute the aggregation size value to use for a given buffer size */
 static u32 ipa_aggr_size_kb(u32 rx_buffer_size, bool aggr_hard_limit)
 {
@@ -1397,18 +1400,18 @@ static void ipa_endpoint_status_parse(struct ipa_endpoint *endpoint,
                u32 align;
                u32 len;
 
-               if (resid < sizeof(*status)) {
+               if (resid < IPA_STATUS_SIZE) {
                        dev_err(&endpoint->ipa->pdev->dev,
                                "short message (%u bytes < %zu byte status)\n",
-                               resid, sizeof(*status));
+                               resid, IPA_STATUS_SIZE);
                        break;
                }
 
                /* Skip over status packets that lack packet data */
                length = le16_to_cpu(status->pkt_len);
                if (!length || ipa_endpoint_status_skip(endpoint, status)) {
-                       data += sizeof(*status);
-                       resid -= sizeof(*status);
+                       data += IPA_STATUS_SIZE;
+                       resid -= IPA_STATUS_SIZE;
                        continue;
                }
 
@@ -1419,7 +1422,7 @@ static void ipa_endpoint_status_parse(struct ipa_endpoint *endpoint,
                 * computed checksum information will be appended.
                 */
                align = endpoint->config.rx.pad_align ? : 1;
-               len = sizeof(*status) + ALIGN(length, align);
+               len = IPA_STATUS_SIZE + ALIGN(length, align);
                if (endpoint->config.checksum)
                        len += sizeof(struct rmnet_map_dl_csum_trailer);
 
@@ -1428,7 +1431,7 @@ static void ipa_endpoint_status_parse(struct ipa_endpoint *endpoint,
                        u32 extra;
 
                        /* Client receives only packet data (no status) */
-                       data2 = data + sizeof(*status);
+                       data2 = data + IPA_STATUS_SIZE;
 
                        /* Have the true size reflect the extra unused space in
                         * the original receive buffer.  Distribute the "cost"