From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FA2B233147 for ; Mon, 13 Jan 2025 08:27:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736756823; cv=none; b=JHmTFZwsFKWMzqoYb2o1wCOm5REhC67lsjliHtLUokwYYioU5HPhoq3FBhUxU8g8dVjl13AeGQcYt9oic+fgiORrh1xSdbugcYuc5660wV/wIYye/7VRzCyLYmYTXDdOKNaETst135bookah/zfyMDDo61XO4vLle0Eemgd0oYE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736756823; c=relaxed/simple; bh=l9OHTObN7XQ5JUO42fVJHPwm8XDBJkQvoeU8aITtzts=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=bqBucrmB5T/OupJQhXpvO8hAgIVq58cOsFdV/XRY+X5Kup4qYGrp9D7wMiYE7mTnOwa85GXrlFzZGJsCtScAA0gAARL8nnpjxj4Hp7KT2jA20Yol0Tdka5w7N4XxFrLOhVKApItJVkY2BOf9liL9nsOtqo3KFYA3n2awxc+n4RA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=jR/ZO+CG; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="jR/ZO+CG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1736756821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NZEaafJZstJIFByjDm+P6F0jQ+mx9f+pSKn8vl03MSU=; b=jR/ZO+CGGYtDV1Tuk5JFQNMpy9VCl0QIxKVNDbcmbs/zZJ2wocbTk24Jw8Vhv14+ZyTkye P+ssNlr++XoZj9XUbCobhSvSwm0ntY9DgWiC1KXxHVgnaJHryfHu+n1+LTaH1tiNDnrjiy DACszoTILPO7y8wAMdvaNbrzM7ZrxgM= Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-615-I-6VoYclMJS4RI-36jDyqQ-1; Mon, 13 Jan 2025 03:26:59 -0500 X-MC-Unique: I-6VoYclMJS4RI-36jDyqQ-1 X-Mimecast-MFC-AGG-ID: I-6VoYclMJS4RI-36jDyqQ Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-aa6704ffcaeso374071066b.2 for ; Mon, 13 Jan 2025 00:26:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736756818; x=1737361618; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NZEaafJZstJIFByjDm+P6F0jQ+mx9f+pSKn8vl03MSU=; b=eqmTZQ1zMetQgJsNTnRcTedwlKSwLT+dzxtgzSyk5ncWb7KOIW3u7rfOR2/LL+oApu Z/3WIm9Tz3XLpCdqRrc/C/8bSOpIsyLbsNGmRRbqGl2IoPQFoi2+7vWVwfx1ajik/FaI HYw/HbhlWn6KKRCfYfgL4qEYdeq+/jfwrQqcc6qwsFPagoxAwzlVUI/3u1l/CnIwRkh4 5f3KBDNmD3kQwkgTJ3w+kVR8Y8dEb4Q4eCeDg8kCTDX4VAc0JGcJ2J1Cm1GuPgPqW403 p1x6QVh3OW72A7zUSwKaqi3OthXQIMwkZYnQCm3/duQvtYUWgv2GyUgg3lHcBYHeyi5/ 51/A== X-Forwarded-Encrypted: i=1; AJvYcCVWN0iU8hPt2VZXxUeCAoCLGsOGRLG59ogBTERYUDkcFgWeBRxcCdg87zSfJsA3o44uZ96FwZUvDheASPc=@vger.kernel.org X-Gm-Message-State: AOJu0YyWRxA22EpuKcseqiYI6JLN+20T/ElMfFvy/eorCd6omRtUWZAE hlht8h8QCSyujiQkOoDpXBefSd20ssncQP2cc5CyfBx7rhGHyvCUMgZ2Nns914HEeLnjA54SPn/ pvOel5QiuZ2gE4iYoQiPtKca75wBQVW4UBhm5qndmyqHtHscA20eI3ujVwI0GQA== X-Gm-Gg: ASbGnctuNMzjAfXglw42/SCNtm74870k1zuLNBKkkah4HDHWLklCCbtoNyBBylbnI2T Fz7S1fOx4KMZjSnrjvKPqsksoa7ufmiJCBWaCCu1V6k0zLfuD+mtefFIjWDlPqmsTrNwpprgIvU cWpb9MGwGJF4TdqT2lwXyvmNoD8+JKNd9t2OTTwLypZmE6yxeWsORhh0NT+9xKkwcqvET95aD8l dc89mvjAR6ccygShgVp0WJmI3D1RXk5udkKlAHD4qU9ORW5K4Ovvs2XGDXs X-Received: by 2002:a17:907:720e:b0:aa6:6c08:dc79 with SMTP id a640c23a62f3a-ab2ab741567mr1830307766b.35.1736756817743; Mon, 13 Jan 2025 00:26:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IEUSvV7l8qqUlR5kHhwR9j1q87q1wKuHv4gJ7LeVt3N13BcvoWZVPKi19WGFJEJYLWtuyIytA== X-Received: by 2002:a17:907:720e:b0:aa6:6c08:dc79 with SMTP id a640c23a62f3a-ab2ab741567mr1830304466b.35.1736756817291; Mon, 13 Jan 2025 00:26:57 -0800 (PST) Received: from [10.40.98.179] ([78.108.130.194]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab2c906009bsm467355266b.25.2025.01.13.00.26.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Jan 2025 00:26:56 -0800 (PST) Message-ID: <779aa078-96b6-4f97-821f-4454e65ab7bf@redhat.com> Date: Mon, 13 Jan 2025 09:26:56 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix race condition To: Chenyuan Yang , ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, zijie98@gmail.com References: <20250111180951.2277757-1-chenyuan0y@gmail.com> Content-Language: en-US From: Hans de Goede In-Reply-To: <20250111180951.2277757-1-chenyuan0y@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi, On 11-Jan-25 7:09 PM, Chenyuan Yang wrote: > The yt2_1380_fc_serdev_probe() function calls devm_serdev_device_open() > before setting the client ops via serdev_device_set_client_ops(). This > ordering can trigger a NULL pointer dereference in the serdev controller's > receive_buf handler, as it assumes serdev->ops is valid when > SERPORT_ACTIVE is set. > > This is similar to the issue fixed in commit 5e700b384ec1 > ("platform/chrome: cros_ec_uart: properly fix race condition") where > devm_serdev_device_open() was called before fully initializing the > device. > > Fix the race by ensuring client ops are set before enabling the port via > devm_serdev_device_open(). > > Note, serdev_device_set_baudrate() and serdev_device_set_flow_control() > calls should be after the devm_serdev_device_open() call. > > Fixes: b2ed33e8d486 ("platform/x86: Add lenovo-yoga-tab2-pro-1380-fastcharger driver") > Signed-off-by: Chenyuan Yang > CC: Hans de Goede Thanks, patch looks good to me: Reviewed-by: Hans de Goede Regards, Hans > --- > drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c b/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c > index d2699ca24f34..a96b215cd2c5 100644 > --- a/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c > +++ b/drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c > @@ -199,14 +199,15 @@ static int yt2_1380_fc_serdev_probe(struct serdev_device *serdev) > if (ret) > return ret; > > + serdev_device_set_drvdata(serdev, fc); > + serdev_device_set_client_ops(serdev, &yt2_1380_fc_serdev_ops); > + > ret = devm_serdev_device_open(dev, serdev); > if (ret) > return dev_err_probe(dev, ret, "opening UART device\n"); > > serdev_device_set_baudrate(serdev, 600); > serdev_device_set_flow_control(serdev, false); > - serdev_device_set_drvdata(serdev, fc); > - serdev_device_set_client_ops(serdev, &yt2_1380_fc_serdev_ops); > > ret = devm_extcon_register_notifier_all(dev, fc->extcon, &fc->nb); > if (ret)