On Sat, May 16, 2020 at 1:07 AM Saravana Kannan saravanak@google.com wrote:
When SYNC_STATE_ONLY support was added in commit 05ef983e0d65 ("driver core: Add device link support for SYNC_STATE_ONLY flag"), device_link_add() incorrectly skipped adding the new SYNC_STATE_ONLY device link to the supplier's and consumer's "device link" list. So the "device link" is lost forever from driver core if the caller didn't keep track of it (typically isn't expected to).
If the same SYNC_STATE_ONLY device link is created again using device_link_add(), instead of returning the pointer to the previously created device link, a new device link is created and returned. This can cause memory leaks in conjunction with fw_devlinks.
Cc: stable@vger.kernel.org Fixes: 05ef983e0d65 ("driver core: Add device link support for SYNC_STATE_ONLY flag") Signed-off-by: Saravana Kannan saravanak@google.com
Greg/Rafael,
This patch causes a warning for SYNC_STATE_ONLY links because they allow consumers to probe before suppliers but the device link status/state change code wasn't written with that possibility in mind. So I need to fix up that warning or state change code.
Depending on how urgent you think memory leak fixes are, you can take it as is for now and I can send a separate patch to fix the warning/state change code later. Or if we can sit on this memory leak for a week, I might be able to fix the warning before then.
Thanks, Saravana