incubator-nuttx/net
chao.an 8ae8c10954 net/poll: fix race condition if connect free before poll teardown
Net poll teardown is not protected by net lock, if the conn is released
before teardown, the assertion failure will be triggered during free dev
callback, this patch will add the net lock around net poll teardown to
fix race condition

nuttx/libs/libc/assert/lib_assert.c:36
nuttx/net/devif/devif_callback.c:85
nuttx/net/tcp/tcp_netpoll.c:405
nuttx/fs/vfs/fs_poll.c:244
nuttx/fs/vfs/fs_poll.c:500

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-07-09 19:11:42 +08:00
..
arp net: Remove devif_timer from comment 2022-06-07 20:15:41 +03:00
bluetooth net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
can net: Fix typos, update comments in Kconfigs 2022-05-06 08:54:58 +02:00
devif Packet dropped in IPv4/v6 input is now an info, not a warning 2022-06-09 16:07:34 +02:00
icmp net/poll: fix race condition if connect free before poll teardown 2022-07-09 19:11:42 +08:00
icmpv6 net/poll: fix race condition if connect free before poll teardown 2022-07-09 19:11:42 +08:00
ieee802154 net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
igmp net/igmp: Remove igmp_initialize 2022-03-12 19:24:17 +02:00
inet
ipforward net: Remove devif_timer from comment 2022-06-07 20:15:41 +03:00
local fs/poll: change format for type pollevent_t 2022-04-07 12:14:06 +08:00
mld
neighbor
netdev net_if: add IFF_LOOPBACK/POINTOPOINT/MULTICAST/BROADCAST 2022-07-03 09:57:10 -04:00
netlink Fix ENOENT errors when polling on Netlink socket 2022-05-14 00:35:29 +03:00
pkt net: Remove the unnecessary initialization code 2022-03-12 19:24:17 +02:00
procfs
route use rmutex inside of all repeated implementation 2022-05-30 19:43:48 +08:00
rpmsg openamp: Change the dependence from OPENAMP to RPTUN 2022-04-05 10:05:41 +03:00
sixlowpan net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout 2022-06-28 06:19:13 +03:00
socket net:fix coverity warning 2022-04-03 14:37:53 +03:00
tcp net/poll: fix race condition if connect free before poll teardown 2022-07-09 19:11:42 +08:00
udp net/poll: fix race condition if connect free before poll teardown 2022-07-09 19:11:42 +08:00
usrsock fix: usrsock iovec_do skip empty iov 2022-04-14 02:47:31 +08:00
utils Replace nxsem_timedwait_uninterruptible with nxsem_tickwait_uninterruptible 2022-05-15 13:55:58 +03:00
Kconfig net: Fix typos, update comments in Kconfigs 2022-05-06 08:54:58 +02:00
Makefile
README.txt
net_initialize.c net: Reoder the initialize sequence(mac->ip->tcp/udp) 2022-03-12 19:24:17 +02:00

README.txt

README
======

Directory Structure
===================

  nuttx/
   |
   `- net/
       |
       +- arp        - Address resolution protocol (IPv4)
       +- bluetooth  - PF_BLUETOOTH socket interface
       +- devif      - Stack/device interface layer
       +- icmp       - Internet Control Message Protocol (IPv4)
       +- icmpv6     - Internet Control Message Protocol (IPv6)
       +- ieee802154 - PF_IEEE802154 socket interface
       +- inet       - PF_INET/PF_INET6 socket interface
       +- ipforward  - IP forwarding logic
       +- local      - Unix domain (local) sockets
       +- mld        - Multicast Listener Discovery (MLD)
       +- neighbor   - Neighbor Discovery Protocol (IPv6)
       +- netdev     - Socket network device interface
       +- netlink    - Netlink IPC socket interface
       +- pkt        - "Raw" packet socket support
       +- sixlowpan  - 6LoWPAN implementation
       +- socket     - BSD socket interface
       +- route      - Routing table support
       +- tcp        - Transmission Control Protocol
       +- udp        - User Datagram Protocol
       +- usrsock    - User socket API for user-space networking stack
       `- utils      - Miscellaneous utility functions

    +-------------------------------------------------------------------++------------------------+
    |                     Application layer                             || usrsock daemon         |
    +-------------------------------------------------------------------++------------------------+
    +-------------------------------------------------------------------++----------------+ +-----+
    |                   Socket layer (socket/)                          || /dev/usrsock   | |     |
    +-------------------------------------------------------------------++----------------+ |     |
    +------------++--------------------------------------------------++-------------------+ |     |
    |  Network   || Protocol stacks (arp, ipv6, icmp, pkt, tcp, udp) || usrsock/          | |     |
    |   Device   |+--------------------------------------------------++-------------------+ |     |
    | Interface  |+------------------------------------++---------------------------------+ |     |
    | (netdev/)  ||  Network Device Interface (devif/) || Utilities                       | |     |
    +------------++------------------------------------++---------------------------------+ |     |
    +----------------------------------------------------------------+                      |     |
    |                    Network Device Drivers                      |                      | HAL |
    +----------------------------------------------------------------+                      +-----+
    +----------------------------------------------------------------+ +--------------------------+
    |                    Networking Hardware                         | |  Hardware TCP/IP Stack   |
    +----------------------------------------------------------------+ +--------------------------+