From: Dan Carpenter <dan.carpenter@linaro.org>
To: manivannan.sadhasivam@linaro.org
Cc: linux-pci@vger.kernel.org
Subject: [bug report] PCI: endpoint: Remove "core_init_notifier" flag
Date: Wed, 17 Apr 2024 15:47:48 +0300 [thread overview]
Message-ID: <024b5826-7180-4076-ae08-57d2584cca3f@moroto.mountain> (raw)
Hello Manivannan Sadhasivam,
Commit a01e7214bef9 ("PCI: endpoint: Remove "core_init_notifier"
flag") from Mar 27, 2024 (linux-next), leads to the following Smatch
static checker warning:
drivers/pci/endpoint/functions/pci-epf-test.c:784 pci_epf_test_core_init()
error: we previously assumed 'epc_features' could be null (see line 747)
drivers/pci/endpoint/functions/pci-epf-test.c
734 static int pci_epf_test_core_init(struct pci_epf *epf)
735 {
736 struct pci_epf_test *epf_test = epf_get_drvdata(epf);
737 struct pci_epf_header *header = epf->header;
738 const struct pci_epc_features *epc_features;
739 struct pci_epc *epc = epf->epc;
740 struct device *dev = &epf->dev;
741 bool linkup_notifier = false;
742 bool msix_capable = false;
743 bool msi_capable = true;
744 int ret;
745
746 epc_features = pci_epc_get_features(epc, epf->func_no, epf->vfunc_no);
747 if (epc_features) {
^^^^^^^^^^^^
epc_features can be NULL
748 msix_capable = epc_features->msix_capable;
749 msi_capable = epc_features->msi_capable;
750 }
751
752 if (epf->vfunc_no <= 1) {
753 ret = pci_epc_write_header(epc, epf->func_no, epf->vfunc_no, header);
754 if (ret) {
755 dev_err(dev, "Configuration header write failed\n");
756 return ret;
757 }
758 }
759
760 ret = pci_epf_test_set_bar(epf);
761 if (ret)
762 return ret;
763
764 if (msi_capable) {
765 ret = pci_epc_set_msi(epc, epf->func_no, epf->vfunc_no,
766 epf->msi_interrupts);
767 if (ret) {
768 dev_err(dev, "MSI configuration failed\n");
769 return ret;
770 }
771 }
772
773 if (msix_capable) {
774 ret = pci_epc_set_msix(epc, epf->func_no, epf->vfunc_no,
775 epf->msix_interrupts,
776 epf_test->test_reg_bar,
777 epf_test->msix_table_offset);
778 if (ret) {
779 dev_err(dev, "MSI-X configuration failed\n");
780 return ret;
781 }
782 }
783
--> 784 linkup_notifier = epc_features->linkup_notifier;
^^^^^^^^^^^^^^
Unchecked dereference.
785 if (!linkup_notifier)
786 queue_work(kpcitest_workqueue, &epf_test->cmd_handler.work);
787
788 return 0;
789 }
regards,
dan carpenter
next reply other threads:[~2024-04-17 12:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-17 12:47 Dan Carpenter [this message]
2024-04-17 15:38 ` [bug report] PCI: endpoint: Remove "core_init_notifier" flag Niklas Cassel
2024-04-17 15:58 ` Manivannan Sadhasivam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=024b5826-7180-4076-ae08-57d2584cca3f@moroto.mountain \
--to=dan.carpenter@linaro.org \
--cc=linux-pci@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).