Re: How to fix CHECK warning: testing a 'safe expression' ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/17/2014 09:39 PM, Christopher Li wrote:
On Thu, Dec 18, 2014 at 6:37 AM, Murali Karicheri<m-karicheri2@xxxxxx>  wrote:
         if (!ks_pcie) {
                 dev_err(dev, "no memory for keystone pcie\n");
                 return -ENOMEM;
         }
         pp =&ks_pcie->pp;

         /* initialize SerDes Phy if present */
         phy = devm_phy_get(dev, "pcie-phy");
===>     if (!IS_ERR_OR_NULL(phy)) {
                 ret = phy_init(phy);
                 if (ret<  0)
                         return ret;


Hi,

Do you have a smaller stand alone test case which I can reproduce with sparse?

Thanks

Chris
Thanks Chris for responding.

You could add this piece of code for testing

struct foo {
	int x;
	int y;
};

static struct foo *func1(struct device *dev)
{
	struct foo *fp;

	fp = devm_kzalloc(dev, sizeof(*fp), GFP_KERNEL);
	if (fp == NULL)
		return ERR_PTR(-ENOMEM);
	return fp;
}

And in one of your module in kernel add

	struct foo *fp;

	if (IS_ERR_OR_NULL(fp))
		return -ENOMEM;

and do

make C=2 CF="-D__CHECK_ENDIAN__" CHECK=sparse

You will see the CHECK warning against your module as

include/linux/err.h:40:16: warning: testing a 'safe expression'

Hope this helps.

--
Murali Karicheri
Linux Kernel, Texas Instruments
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux