Received: by 10.213.65.68 with SMTP id h4csp1066542imn; Tue, 27 Mar 2018 14:08:40 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+ylivjoA2yT6430RqERKJmKhMCH+DbJSELUvkgaAPQynFQ6+dS/NHNF0TDrRup/a+M7U0I X-Received: by 2002:a17:902:b181:: with SMTP id s1-v6mr831430plr.263.1522184920411; Tue, 27 Mar 2018 14:08:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522184920; cv=none; d=google.com; s=arc-20160816; b=0YGF0kAFpbGa4B/u80WahNWyeN4RXREOr6yIAAT9oGyTGDqCmIWZdYQGZI90RdzuYp VCn6gXtpBBJtIF7xWu+9xYc6BJEKC6o2A20qPBccsfPvGn9ZXdnITPazHEf8U0/KKdBS pE2EvOfx2jztRR2dC0vJo2o/9NH+9nxa/LmLlhhRmo56okw0ZcotJqQFiGXIQo2tI3RR yyzj62gKwi2eoY53eLEakfF8DsQSIU1+RYjvwdkLca7g0GSy7CZrvlQeP6DJetUR/R5q iOW0UorybRN/7jnCFVhZHS2npWlt0V/qS/T6xNxEMWeZRXeCIcWxuCcQlZH4pOWyK4UU /BrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=JOyCSxRCNwAGM9T8tAZ1j+Kqpdw7zZ+DwYKfNJeLmr0=; b=xTSv2YBa4xlqKwqCAWLbhdpMg099MHbUYkZ/s2z19r5fD+kHEw9PHPJ+4Oro6/GlwW RGpT1/uOz3JxzCH9Dj/La0Zqf1U7dTUxnh/UnA7Q6c+gpZNjDBCXRYoxRR6J/1ERMVL2 +pBFa4Ce/UbCjZJdbFIgOL+knt2SjOJocOTIuULxsbKTsvQcmrevL+f/+bputP3t2ZGG SPSAxm5Rc8+MUrQs7YhFmkh0TYQLC76q84xc9bEr9bM9b6ryzE/xcXGD7XZVyTyLSZyM 6DAxnHsjZEwNYvs2oxAid2XL5kkq3xwZZy+3kQu5pLrn0kpTGQxZQr1syjRh3mUrlPnA Vddw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NbTc08ry; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m32-v6si2023681pld.174.2018.03.27.14.08.21; Tue, 27 Mar 2018 14:08:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NbTc08ry; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752427AbeC0VGt (ORCPT + 99 others); Tue, 27 Mar 2018 17:06:49 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:47040 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752359AbeC0VGr (ORCPT ); Tue, 27 Mar 2018 17:06:47 -0400 Received: by mail-pl0-f67.google.com with SMTP id f5-v6so176042plj.13 for ; Tue, 27 Mar 2018 14:06:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=JOyCSxRCNwAGM9T8tAZ1j+Kqpdw7zZ+DwYKfNJeLmr0=; b=NbTc08rymChEv/x+W/CpZTdqUbiglUe78HU3IyCbMKOvxAUUNOZTmyOlGaKLmkOicA ykluPJIw8sFBB4faJq4sjn0+67jyyacTP+6HScPu8C7ACqlSMBA4bxFApcP4yjgrVcFA AfLoDQYnNBqr4FUE7K5H3rflGDQqZJuQVap00= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=JOyCSxRCNwAGM9T8tAZ1j+Kqpdw7zZ+DwYKfNJeLmr0=; b=qRvoKidiEJ7efvRAbwamUFVDlSvWsyxq8h8gcWYPWbi/1RRCSaAgSlu5Iv13RWk2cM vGe0Fso+Zeso5Oxz5CVLnJZDD4l8zVilV80EfssI4Ii9g4I1wBU/Zl5skLp68AZvlsf1 0mU6nUB9h0U3CDAQmcHanr5Vh3AtoE+1Jqyp8oHDoi+PsMnuKTCzNkQjnCWYZvIe3iY+ oMjS5ALNUNzr0mTmKlnzeaxjFbo5o1wFGdXHYtpm/I9bTQWhi6TFpEcuFS+GGjT+bBXk kBsogcLLRCa/SEVvNieKYacScbyd9aP4nD8tbqZU1/vJU6bHNrAuFnCinmxw/EDDAXV/ 0LSg== X-Gm-Message-State: AElRT7GpN2G57GnRZfpIAFIVADw9LBdOaU7fINZRhWhVM16FTpRRPtNg T+Y01uaupgAi1+nVM7WgZ4Q/1Q== X-Received: by 2002:a17:902:3041:: with SMTP id u59-v6mr850958plb.208.1522184807096; Tue, 27 Mar 2018 14:06:47 -0700 (PDT) Received: from localhost.localdomain (104-188-17-28.lightspeed.sndgca.sbcglobal.net. [104.188.17.28]) by smtp.gmail.com with ESMTPSA id b64sm4661907pfl.148.2018.03.27.14.06.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Mar 2018 14:06:46 -0700 (PDT) From: Bjorn Andersson To: Ohad Ben-Cohen , Bjorn Andersson Cc: linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH 0/3] rpmsg: smd: Redeliver messages after probe Date: Tue, 27 Mar 2018 14:06:40 -0700 Message-Id: <20180327210643.3436-1-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.16.2 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A race condition exists in SMD where incoming messages might be processed before we've finished executing the rpmsg device's probe function. The driver's callback function will in this case be unable to handle the incoming message and might return an error. Using the announce_create ops we can invoke the handler for incoming messages once again after probe returns, solving this issue. With SMD and QRTR this shows a high failure rate, but there are (at least theoretical) similar issues in glink and virtio-rpmsg, so this needs to be further investigated. Bjorn Andersson (3): rpmsg: smd: Fix container_of macros rpmsg: Only invoke announce_create for rpdev with endpoints rpmsg: smd: Use announce_create to process any receive work drivers/rpmsg/qcom_smd.c | 22 ++++++++++++++++++++-- drivers/rpmsg/rpmsg_core.c | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) -- 2.16.2