From: Martin Habets <habetsm.xilinx@gmail.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: kernel-janitors@vger.kernel.org
Subject: Re: [bug report] sfc/siena: Remove build references to missing functionality
Date: Wed, 18 May 2022 16:07:32 +0100 [thread overview]
Message-ID: <20220518150732.GA18437@gmail.com> (raw)
In-Reply-To: <YoH5tJMnwuGTrn1Z@kili>
Hi Dan,
The analysis is correct. I'll post a patch for this.
Thanks!
Martin
On Mon, May 16, 2022 at 10:13:56AM +0300, Dan Carpenter wrote:
> Hello Martin Habets,
>
> The patch 956f2d86cb37: "sfc/siena: Remove build references to
> missing functionality" from May 9, 2022, leads to the following
> Smatch static checker warning:
>
> drivers/net/ethernet/sfc/siena/tx.c:184 __efx_siena_enqueue_skb()
> warn: duplicate check 'segments' (previous on line 158)
>
> drivers/net/ethernet/sfc/siena/tx.c
> 139 netdev_tx_t __efx_siena_enqueue_skb(struct efx_tx_queue *tx_queue,
> 140 struct sk_buff *skb)
> 141 {
> 142 unsigned int old_insert_count = tx_queue->insert_count;
> 143 bool xmit_more = netdev_xmit_more();
> 144 bool data_mapped = false;
> 145 unsigned int segments;
> 146 unsigned int skb_len;
> 147 int rc;
> 148
> 149 skb_len = skb->len;
> 150 segments = skb_is_gso(skb) ? skb_shinfo(skb)->gso_segs : 0;
> 151 if (segments == 1)
> 152 segments = 0; /* Don't use TSO for a single segment. */
> 153
> 154 /* Handle TSO first - it's *possible* (although unlikely) that we might
> 155 * be passed a packet to segment that's smaller than the copybreak/PIO
> 156 * size limit.
> 157 */
> 158 if (segments) {
> 159 rc = efx_siena_tx_tso_fallback(tx_queue, skb);
> 160 tx_queue->tso_fallbacks++;
> 161 if (rc == 0)
> 162 return 0;
> 163 goto err;
>
> If segments is non-zero then we hit this goto.
>
> 164 } else if (skb->data_len && skb_len <= EFX_TX_CB_SIZE) {
> 165 /* Pad short packets or coalesce short fragmented packets. */
> 166 if (efx_enqueue_skb_copy(tx_queue, skb))
> 167 goto err;
> 168 tx_queue->cb_packets++;
> 169 data_mapped = true;
> 170 }
> 171
> 172 /* Map for DMA and create descriptors if we haven't done so already. */
> 173 if (!data_mapped && (efx_siena_tx_map_data(tx_queue, skb, segments)))
> 174 goto err;
> 175
> 176 efx_tx_maybe_stop_queue(tx_queue);
> 177
> 178 tx_queue->xmit_pending = true;
> 179
> 180 /* Pass off to hardware */
> 181 if (__netdev_tx_sent_queue(tx_queue->core_txq, skb_len, xmit_more))
> 182 efx_tx_send_pending(tx_queue->channel);
> 183
> --> 184 if (segments) {
>
> So this if statement can be deleted.
>
> 185 tx_queue->tso_bursts++;
> 186 tx_queue->tso_packets += segments;
> 187 tx_queue->tx_packets += segments;
> 188 } else {
> 189 tx_queue->tx_packets++;
> 190 }
> 191
> 192 return NETDEV_TX_OK;
> 193
> 194
> 195 err:
> 196 efx_siena_enqueue_unwind(tx_queue, old_insert_count);
> 197 dev_kfree_skb_any(skb);
> 198
> 199 /* If we're not expecting another transmit and we had something to push
> 200 * on this queue or a partner queue then we need to push here to get the
> 201 * previous packets out.
> 202 */
> 203 if (!xmit_more)
> 204 efx_tx_send_pending(tx_queue->channel);
> 205
> 206 return NETDEV_TX_OK;
> 207 }
>
> regards,
> dan carpenter
prev parent reply other threads:[~2022-05-18 15:07 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-16 7:13 [bug report] sfc/siena: Remove build references to missing functionality Dan Carpenter
2022-05-18 15:07 ` Martin Habets [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220518150732.GA18437@gmail.com \
--to=habetsm.xilinx@gmail.com \
--cc=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.