All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] net: axienet: Introduce dmaengine support
@ 2023-11-27 12:57 Dan Carpenter
  2023-11-29 14:46 ` Pandey, Radhey Shyam
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2023-11-27 12:57 UTC (permalink / raw)
  To: radhey.shyam.pandey; +Cc: kernel-janitors

Hello Radhey Shyam Pandey,

The patch 6a91b846af85: "net: axienet: Introduce dmaengine support"
from Nov 16, 2023 (linux-next), leads to the following Smatch static
checker warning:

	drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1060 axienet_dma_rx_cb()
	error: 'app_metadata' dereferencing possible ERR_PTR()

drivers/net/ethernet/xilinx/xilinx_axienet_main.c
    1045 static void axienet_dma_rx_cb(void *data, const struct dmaengine_result *result)
    1046 {
    1047         struct skbuf_dma_descriptor *skbuf_dma;
    1048         size_t meta_len, meta_max_len, rx_len;
    1049         struct axienet_local *lp = data;
    1050         struct sk_buff *skb;
    1051         u32 *app_metadata;
    1052 
    1053         skbuf_dma = axienet_get_rx_desc(lp, lp->rx_ring_tail++);
    1054         skb = skbuf_dma->skb;
    1055         app_metadata = dmaengine_desc_get_metadata_ptr(skbuf_dma->desc, &meta_len,
    1056                                                        &meta_max_len);

dmaengine_desc_get_metadata_ptr() can return error pointers

    1057         dma_unmap_single(lp->dev, skbuf_dma->dma_address, lp->max_frm_size,
    1058                          DMA_FROM_DEVICE);
    1059         /* TODO: Derive app word index programmatically */
--> 1060         rx_len = (app_metadata[LEN_APP] & 0xFFFF);
                           ^^^^^^^^^^^^

    1061         skb_put(skb, rx_len);
    1062         skb->protocol = eth_type_trans(skb, lp->ndev);
    1063         skb->ip_summed = CHECKSUM_NONE;
    1064 
    1065         __netif_rx(skb);
    1066         u64_stats_update_begin(&lp->rx_stat_sync);
    1067         u64_stats_add(&lp->rx_packets, 1);
    1068         u64_stats_add(&lp->rx_bytes, rx_len);
    1069         u64_stats_update_end(&lp->rx_stat_sync);
    1070         axienet_rx_submit_desc(lp->ndev);
    1071         dma_async_issue_pending(lp->rx_chan);
    1072 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [bug report] net: axienet: Introduce dmaengine support
  2023-11-27 12:57 Dan Carpenter
@ 2023-11-29 14:46 ` Pandey, Radhey Shyam
  0 siblings, 0 replies; 4+ messages in thread
From: Pandey, Radhey Shyam @ 2023-11-29 14:46 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kernel-janitors@vger.kernel.org

> -----Original Message-----
> From: Dan Carpenter <dan.carpenter@linaro.org>
> Sent: Monday, November 27, 2023 6:28 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey@amd.com>
> Cc: kernel-janitors@vger.kernel.org
> Subject: [bug report] net: axienet: Introduce dmaengine support
> 
> Hello Radhey Shyam Pandey,
> 
> The patch 6a91b846af85: "net: axienet: Introduce dmaengine support"
> from Nov 16, 2023 (linux-next), leads to the following Smatch static checker
> warning:
> 
> 	drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1060
> axienet_dma_rx_cb()
> 	error: 'app_metadata' dereferencing possible ERR_PTR()
> 
> drivers/net/ethernet/xilinx/xilinx_axienet_main.c
>     1045 static void axienet_dma_rx_cb(void *data, const struct
> dmaengine_result *result)
>     1046 {
>     1047         struct skbuf_dma_descriptor *skbuf_dma;
>     1048         size_t meta_len, meta_max_len, rx_len;
>     1049         struct axienet_local *lp = data;
>     1050         struct sk_buff *skb;
>     1051         u32 *app_metadata;
>     1052
>     1053         skbuf_dma = axienet_get_rx_desc(lp, lp->rx_ring_tail++);
>     1054         skb = skbuf_dma->skb;
>     1055         app_metadata =
> dmaengine_desc_get_metadata_ptr(skbuf_dma->desc, &meta_len,
>     1056                                                        &meta_max_len);
> 
> dmaengine_desc_get_metadata_ptr() can return error pointers

I will send out a patch to fix and add error handling for 
dmaengine_desc_get_metadata_ptr().

> 
>     1057         dma_unmap_single(lp->dev, skbuf_dma->dma_address, lp-
> >max_frm_size,
>     1058                          DMA_FROM_DEVICE);
>     1059         /* TODO: Derive app word index programmatically */
> --> 1060         rx_len = (app_metadata[LEN_APP] & 0xFFFF);
>                            ^^^^^^^^^^^^
> 
>     1061         skb_put(skb, rx_len);
>     1062         skb->protocol = eth_type_trans(skb, lp->ndev);
>     1063         skb->ip_summed = CHECKSUM_NONE;
>     1064
>     1065         __netif_rx(skb);
>     1066         u64_stats_update_begin(&lp->rx_stat_sync);
>     1067         u64_stats_add(&lp->rx_packets, 1);
>     1068         u64_stats_add(&lp->rx_bytes, rx_len);
>     1069         u64_stats_update_end(&lp->rx_stat_sync);
>     1070         axienet_rx_submit_desc(lp->ndev);
>     1071         dma_async_issue_pending(lp->rx_chan);
>     1072 }
> 
> regards,
> dan carpenter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug report] net: axienet: Introduce dmaengine support
@ 2025-08-07 15:59 Dan Carpenter
  2025-08-12 15:05 ` Pandey, Radhey Shyam
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2025-08-07 15:59 UTC (permalink / raw)
  To: Radhey Shyam Pandey; +Cc: kernel-janitors

Hello Radhey Shyam Pandey,

Commit 6a91b846af85 ("net: axienet: Introduce dmaengine support")
from Nov 16, 2023 (linux-next), leads to the following Smatch static
checker warning:

	drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1171 axienet_dma_rx_cb()
	error: 'app_metadata' dereferencing possible ERR_PTR()

drivers/net/ethernet/xilinx/xilinx_axienet_main.c
    1156 static void axienet_dma_rx_cb(void *data, const struct dmaengine_result *result)
    1157 {
    1158         struct skbuf_dma_descriptor *skbuf_dma;
    1159         size_t meta_len, meta_max_len, rx_len;
    1160         struct axienet_local *lp = data;
    1161         struct sk_buff *skb;
    1162         u32 *app_metadata;
    1163 
    1164         skbuf_dma = axienet_get_rx_desc(lp, lp->rx_ring_tail++);
    1165         skb = skbuf_dma->skb;
    1166         app_metadata = dmaengine_desc_get_metadata_ptr(skbuf_dma->desc, &meta_len,
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
No error checking.

    1167                                                        &meta_max_len);
    1168         dma_unmap_single(lp->dev, skbuf_dma->dma_address, lp->max_frm_size,
    1169                          DMA_FROM_DEVICE);
    1170         /* TODO: Derive app word index programmatically */
--> 1171         rx_len = (app_metadata[LEN_APP] & 0xFFFF);
                           ^^^^^^^^^^^^
Dereference.

    1172         skb_put(skb, rx_len);
    1173         skb->protocol = eth_type_trans(skb, lp->ndev);
    1174         skb->ip_summed = CHECKSUM_NONE;
    1175 
    1176         __netif_rx(skb);
    1177         u64_stats_update_begin(&lp->rx_stat_sync);
    1178         u64_stats_add(&lp->rx_packets, 1);
    1179         u64_stats_add(&lp->rx_bytes, rx_len);
    1180         u64_stats_update_end(&lp->rx_stat_sync);
    1181         axienet_rx_submit_desc(lp->ndev);
    1182         dma_async_issue_pending(lp->rx_chan);
    1183 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [bug report] net: axienet: Introduce dmaengine support
  2025-08-07 15:59 [bug report] net: axienet: Introduce dmaengine support Dan Carpenter
@ 2025-08-12 15:05 ` Pandey, Radhey Shyam
  0 siblings, 0 replies; 4+ messages in thread
From: Pandey, Radhey Shyam @ 2025-08-12 15:05 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kernel-janitors@vger.kernel.org, Gupta, Suraj

[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: Dan Carpenter <dan.carpenter@linaro.org>
> Sent: Thursday, August 7, 2025 9:30 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey@amd.com>
> Cc: kernel-janitors@vger.kernel.org
> Subject: [bug report] net: axienet: Introduce dmaengine support
>
> Hello Radhey Shyam Pandey,
>
> Commit 6a91b846af85 ("net: axienet: Introduce dmaengine support") from Nov 16,
> 2023 (linux-next), leads to the following Smatch static checker warning:
>
>       drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1171 axienet_dma_rx_cb()
>       error: 'app_metadata' dereferencing possible ERR_PTR()
>
> drivers/net/ethernet/xilinx/xilinx_axienet_main.c
>     1156 static void axienet_dma_rx_cb(void *data, const struct dmaengine_result
> *result)
>     1157 {
>     1158         struct skbuf_dma_descriptor *skbuf_dma;
>     1159         size_t meta_len, meta_max_len, rx_len;
>     1160         struct axienet_local *lp = data;
>     1161         struct sk_buff *skb;
>     1162         u32 *app_metadata;
>     1163
>     1164         skbuf_dma = axienet_get_rx_desc(lp, lp->rx_ring_tail++);
>     1165         skb = skbuf_dma->skb;
>     1166         app_metadata = dmaengine_desc_get_metadata_ptr(skbuf_dma-
> >desc, &meta_len,
>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> No error checking.
>
>     1167                                                        &meta_max_len);
>     1168         dma_unmap_single(lp->dev, skbuf_dma->dma_address, lp-
> >max_frm_size,
>     1169                          DMA_FROM_DEVICE);
>     1170         /* TODO: Derive app word index programmatically */
> --> 1171         rx_len = (app_metadata[LEN_APP] & 0xFFFF);
>                            ^^^^^^^^^^^^
> Dereference.
>
>     1172         skb_put(skb, rx_len);
>     1173         skb->protocol = eth_type_trans(skb, lp->ndev);
>     1174         skb->ip_summed = CHECKSUM_NONE;
>     1175
>     1176         __netif_rx(skb);
>     1177         u64_stats_update_begin(&lp->rx_stat_sync);
>     1178         u64_stats_add(&lp->rx_packets, 1);
>     1179         u64_stats_add(&lp->rx_bytes, rx_len);
>     1180         u64_stats_update_end(&lp->rx_stat_sync);
>     1181         axienet_rx_submit_desc(lp->ndev);
>     1182         dma_async_issue_pending(lp->rx_chan);
>     1183 }
>
Thanks. I acknowledge it and Suraj (added in CC)
will send out fix for it.

-Radhey

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-08-12 15:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-07 15:59 [bug report] net: axienet: Introduce dmaengine support Dan Carpenter
2025-08-12 15:05 ` Pandey, Radhey Shyam
  -- strict thread matches above, loose matches on Subject: below --
2023-11-27 12:57 Dan Carpenter
2023-11-29 14:46 ` Pandey, Radhey Shyam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.