This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".

The branch, master has been updated
       via  1ce4c9449d06bd20e6af4f13763d01fad3c7e484 (commit)
      from  9723c18737011b723ed7d00334b898a0ca72f212 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1ce4c9449d06bd20e6af4f13763d01fad3c7e484
Author: David Bidner <[email protected]>
Date:   Mon Oct 12 20:28:25 2026 +0200

    pfinet: Serialize the backlog queue with net_bh_lock
    
    The loopback send path reaches netif_rx() without net_bh_lock:
    start_bh_atomic() is a no-op, so an application send or a TCP retransmit
    runs dev_queue_xmit() -> loopback_xmit() holding only global_lock, while
    the ethernet and tunnel receive paths enqueue under net_bh_lock.  The skb
    queue spinlocks are no-ops on Hurd, so the two enqueues can corrupt the
    receive backlog.  net_bh_lock is the lock meant to protect the backlog.
    loopback_xmit() and dev_loopback_xmit() must take it around netif_rx().
    
    net_bh() never holds both locks, and the receive threads are not blocked
    while the protocol handlers run.  dev_clear_backlog() also touches the
    backlog, so protect it with net_bh_lock.  Correct the loopback.c and
    sched.c comments.
    
    * pfinet/sched.c (net_bh_worker): Do not take global_lock around net_bh();
    release net_bh_lock for the duration of net_bh().
    * pfinet/loopback.c (loopback_xmit): Take net_bh_lock around netif_rx().
    * pfinet/linux-src/net/core/dev.c (dev_loopback_xmit): Likewise.
    (net_bh): Run protocol handlers under global_lock, take net_bh_lock only
    for the backlog dequeue, and never hold both locks at once.
    (dev_clear_backlog): Protect the backlog with net_bh_lock.
    * pfinet/glue-include/linux/interrupt.h: Update the start_bh_atomic()
    comment.
    Message-ID: <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 pfinet/glue-include/linux/interrupt.h |  2 +-
 pfinet/linux-src/net/core/dev.c       | 57 +++++++++++++++++++++--------------
 pfinet/loopback.c                     |  6 ++--
 pfinet/sched.c                        |  9 +++---
 4 files changed, 43 insertions(+), 31 deletions(-)


hooks/post-receive
-- 
Hurd

Reply via email to