Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp834551pxj; Thu, 20 May 2021 23:39:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJznDlBOrw9K83r1eeTZEkstiZhhmp97UqGeaxFq7YvYhjvuhDHmVjrjQZ8qeBcK7fGljY4Z X-Received: by 2002:a17:906:cc9:: with SMTP id l9mr8728203ejh.454.1621579197606; Thu, 20 May 2021 23:39:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621579197; cv=none; d=google.com; s=arc-20160816; b=YYrH2rZ7Lz2wFi4FOXlZoANAeErE1R4L0LGys2gX+iJzqbek9EqHeiNlKdr0EHR0ve QZKUpRkdyd25Bq1v4RgM8X8hifASHj58MOUUrkLOfGxv7+l1MLDGCCOjqqgm+pW93i9K XzWwuOF4gikAvSs52kUaJo0gnav4Rnop826zwOSrFNznYPdhbAglVKCG9+X3BSixZuKg uwIFenxdGufXFHlB6WjU9nNNLGhJS+FsMqiAzQtiyXsdrqLBkLM9nA0QkI8L1UoEEXgS wYbEvgKBy62A8S5eBiWmv1tNu1a1R4Xm8KWwcTmipY1BeSMle8S4yywAp510UD2PDLZi OmXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=GnCcM4kag0zi75Uj3XnSUlN1BTLRGuzOS27Epni0zmo=; b=tg6nSFyJGlcYPyg4qNSyYVS88dM6wF1U3aQ7cPGXh3KfidG2kUbVGxS0xwUf9hlZoO 5lTzXMha/UODeucL69tk/jA76rjn7TJdEMSbuRTK1nxn2aTGvY7RScMYEju3shcjsvZI DmbMAS/agjILtWXh5RMA5fShEwPQF3HoGj08OF5hzQmeyPHyAuDE/riTkntyEl37bI1o NR4OAooB+hccSLzpqj8ULJWwjqvvIxgeJzLTudoffHpEwVQud3e0fMGm5VvKk+rJBxfj GLDAfOu+rWu3gVqZzN5bSqaO3bgq78Afw81m01gIsncQ1mbmyA4kaOr44FnPxHgfQZHb jDiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eak30O+k; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bi14si4515066ejb.441.2021.05.20.23.39.33; Thu, 20 May 2021 23:39:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eak30O+k; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232234AbhETRDR (ORCPT + 99 others); Thu, 20 May 2021 13:03:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231587AbhETRDQ (ORCPT ); Thu, 20 May 2021 13:03:16 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F392FC061574 for ; Thu, 20 May 2021 10:01:54 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id k127so16882195qkc.6 for ; Thu, 20 May 2021 10:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=GnCcM4kag0zi75Uj3XnSUlN1BTLRGuzOS27Epni0zmo=; b=eak30O+kEa209QuEDAZAJMFUbuAf2bsnMkD8l28owJBdDM/gZzDyLdO6bbWJTTHFBs A/OoRkWEINWzols+VuxAtmCddsz6VIaJGwfcEAveNenaOTEg8QJ7XH0eD+El4ZEYmJe3 5X6h1rS6gpu/aqmZhEXJwcXWQf/DhXGzVP99D4obEySNIGPfWg9u8QtJXsxHOQx4OD8r tqrOQJrz9pZNNfsgJEb/hM/ULv5nSidgffjAAkXAn79jnNpetxan/l/WW4+hv121+A7r wjmygZ7y70h7nqBJuic3ByMxT0A6m7wD1LB8kEfisi33s4BD0ZhMnQwnQztTG3a+AaK6 Teqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=GnCcM4kag0zi75Uj3XnSUlN1BTLRGuzOS27Epni0zmo=; b=ZqALsFzeDqXprc7QDEP+k0d2VjRJO8SVB/zvthmh6dUt1FOkHNc9jYHX0ByuYGaiGi LpglX5v9kvJ+5ik47TPCdFuiMhqh8O3Vfmgo821k+oDWljYjkwv11/s9e5FwT3vZxmTQ VT0kmOhVF3651kX95B5Bb+9gMQkLrfVHibtDpcdB860WxA6RdjtO8Sw85CmjkMiwif6m QmmPUzWtu7Vq8Qipiw7ZDVHv3hC7xT/vvfmZtIgt3/GeuF015xXeY1j78K0JJtjECn47 0YSqxBdan+fG2VZ6xnIEys0xsjEYcV2YtnfIQtsq146qE7Il0AAno0Zj7h4ObiAW9F9s aP0w== X-Gm-Message-State: AOAM53218rPxLGdCSJBtmdIiKQ0hA40HADzAnwaJ/XpGQPPwE949fEYK D3R8ATzoqXuWp0WT5KvxjIw= X-Received: by 2002:a37:9b51:: with SMTP id d78mr6195648qke.441.1621530114179; Thu, 20 May 2021 10:01:54 -0700 (PDT) Received: from localhost ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id y8sm2312647qtn.61.2021.05.20.10.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 May 2021 10:01:53 -0700 (PDT) Sender: Guenter Roeck From: Guenter Roeck To: Derek Kiernan Cc: Dragan Cvetic , Arnd Bergmann , Greg Kroah-Hartman , Michal Simek , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Guenter Roeck Subject: [RFC PATCH] misc: xilinx-sdfec: Check if file->private_data is NULL Date: Thu, 20 May 2021 10:01:50 -0700 Message-Id: <20210520170150.1615956-1-linux@roeck-us.net> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org container_of() only returns NULL if the passed pointer is NULL _and_ the embedded element is the first element of the structure. Even if that is the case, testing against it is misleading and possibly dangerous because the position of the embedded element may change. Explicitly check if the parameter is NULL and bail out if so instead of checking the result of container_of(). Signed-off-by: Guenter Roeck --- RFC: The NULL check in the poll function is likely unnecessary. Interestingly, there is no NULL check in the ioctl function, even though there is a similar container_of() in that function. However, I do not feel comfortable enough to change the functionality of this code and drop the check entirely. drivers/misc/xilinx_sdfec.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/misc/xilinx_sdfec.c b/drivers/misc/xilinx_sdfec.c index 23c8448a9c3b..0a3721d31dea 100644 --- a/drivers/misc/xilinx_sdfec.c +++ b/drivers/misc/xilinx_sdfec.c @@ -1011,11 +1011,11 @@ static __poll_t xsdfec_poll(struct file *file, poll_table *wait) __poll_t mask = 0; struct xsdfec_dev *xsdfec; - xsdfec = container_of(file->private_data, struct xsdfec_dev, miscdev); - - if (!xsdfec) + if (!file->private_data) return EPOLLNVAL | EPOLLHUP; + xsdfec = container_of(file->private_data, struct xsdfec_dev, miscdev); + poll_wait(file, &xsdfec->waitq, wait); /* XSDFEC ISR detected an error */ -- 2.25.1