Commits
Suman Anna committed e648b181049
net/rpmsg: use a list to track all connected sockets The rpmsg proto driver uses a single rpmsg_channel device published from a remote processor to transmit all socket-based messages intended for that remote processor. There can be any number of Tx sockets to a particular remote processor, and a connection is established using the connect() socket API. The current implementation stores the connected socket pointer in the private field of the rpmsg_channel device's endpoint (ept->priv), but this means a subsequent connection will overwrite the previously stored socket pointer. Create and add a list pointer to the endpoint's private field instead, and add all the connected sockets to this list. Note that this list is maintained only for Tx sockets, as the Rx sockets create their own rpmsg_channel and store their socket pointer in the corresponding end-point's private field. A published rpmsg channel will be auto-removed and recreated if the associated remote processor goes through an error recovery process, and the rpmsg_channel device's private field can be used to mark an error status for all the sockets associated with that rpmsg channel. The list allows all the Tx connected sockets to be marked at once during the removal of the published rpmsg_channel device. The error status can be used to gracefully deny any further transmissions on those sockets. Signed-off-by: Suman Anna <s-anna@ti.com>