CV-Bowen opened a new pull request, #17787:
URL: https://github.com/apache/nuttx/pull/17787

   ## Summary
   
   This PR includes three commits that fix critical issues in the RPMSG/RPTUN 
driver subsystem:
   
   1. **Fix notify wait return type after OpenAMP upgrade** (commit 4779fab)
      - Changed the return value handling in rptun notify wait logic to prevent 
immediate breaks in the OpenAMP `rpmsg_virtio_get_tx_payload_buffer()` function
      - Ensures proper sleep/wait behavior when waiting for buffer returns 
instead of breaking immediately with -EAGAIN
   
   2. **Fix rptun_dev_stop crash in simulator** (commit ee1b988)
      - Resolved a NULL pointer dereference crash that occurred when executing 
`rptun stop /dev/rptun/proxy` command in NSH
      - The issue was caused by `rpmsg_deinit_vdev()` setting `rvdev->vdev` to 
NULL before `remoteproc_remove_virtio()` attempted to use it
      - Solution: Save the `rvdev->vdev` pointer to a local variable before 
deinitializing
   
   3. **Fix poweroff deadlock issue** (commit 17521d3)
      - Resolved a deadlock that occurred during system poweroff when using 
rpmsg/rptun
      - The deadlock was caused by `rpmsg_ioctl()` holding a read lock while 
`rpmsg_dev_destroy()` tried to acquire a write lock
      - Solution: Introduced a standalone list for rptun instances to avoid 
holding the rpmsg lock during `rptun_poweroff()` execution
   
   ## Impact
   rptun/rpmsg_virtio_lite and rpmsg services
   
   ## Testing
   qemu-armv8a:rpserver, rpproxy and sim:rpserver, rpproxy
   ```c
   ❯ ./nuttx/cmake_out/sim_server/nuttx
   
   NuttShell (NSH) NuttX-12.10.0
   server> 
   server> 
   server> cu
   
   NuttShell (NSH) NuttX-12.10.0
   proxy> 
   proxy> 
   proxy> 
   proxy> ps
     PID GROUP PRI POLICY   TYPE    NPX STATE    EVENT     SIGMASK            
STACK COMMAND
       0     0   0 FIFO     Kthread   - Ready              0000000000000000 
0069616 Idle_Task
       1     0 224 FIFO     Kthread   - Waiting  Semaphore 0000000000000000 
0067512 hpwork 0x400bc0a0 0x400bc0e8
       2     2 100 FIFO     Task      - Running            0000000000000000 
0067536 nsh_main
       3     0 224 FIFO     Kthread   - Waiting  Semaphore 0000000000000000 
0069568 rptun server 0xf3035050
   proxy> 
   proxy> 
   proxy> server> 
   server> 
   server> 
   server> 
   server> rptun dump all
   [   13.870000] [server] Remote: proxy headrx 43
   [   13.870000] [server] Dump rpmsg info between cpu (master: yes)server <==> 
proxy:
   [   13.870000] [server] rpmsg vq RX:
   [   13.870000] [server] rpmsg vq TX:
   [   13.870000] [server]   rpmsg ept list:
   [   13.870000] [server]     ept NS
   [   13.870000] [server]     ept rpmsg-ttyproxy
   [   13.870000] [server]     ept rpmsg-uinput-utouch
   [   13.870000] [server]     ept rpmsg-uinput-ubutton
   [   13.870000] [server]     ept rpmsg-uinput-ukeyboard
   [   13.870000] [server]     ept rpmsg-sensor
   [   13.870000] [server]     ept rpmsg-rtc
   [   13.870000] [server]     ept rpmsg-usrsock
   [   13.870000] [server]     ept rpmsg-syslog
   [   13.870000] [server]     ept rpdev/dev/console
   [   13.870000] [server]     ept rpdev/dev/null
   [   13.870000] [server]     ept rpdev/dev/ttyUSB0
   [   13.870000] [server]     ept rpmsgblk-/dev/ram1
   [   13.870000] [server]     ept rpmsgmtd-/dev/rammtd
   [   13.870000] [server]   rpmsg buffer list:
   [   13.870000] [server]     RX buffer, total 8, pending 0
   [   13.870000] [server]     TX buffer, total 8, pending 0
   server> rptun stop /dev/rptun/proxy
   [   26.820000] [server] rx_vq: freeing non-empty virtqueue
   [   26.820000] [server] tx_vq: freeing non-empty virtqueue
   server> 
   server> 
   server> 
   server> ls /dev/rptun
   /dev/rptun:
    proxy
   server> rptun dump all
   [   36.780000] [server] Remote: proxy headrx 43
   server> uname -a
   NuttX server 12.10.0 86abe322661 Jan  7 2026 15:53:28 sim sim
   server> poweroff
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to