From: Dan Carpenter <dan.carpenter@oracle.com>
To: kernel-janitors@vger.kernel.org
Subject: re: VMCI: queue pairs implementation.
Date: Thu, 30 Jan 2014 11:51:36 +0000 [thread overview]
Message-ID: <20140130115136.GC12734@elgon.mountain> (raw)
In-Reply-To: <20130110193238.GB17997@elgon.mountain>
Hello George Zhang,
The patch 06164d2b72aa: "VMCI: queue pairs implementation." from Jan
8, 2013, leads to the following static checker warning:
drivers/misc/vmw_vmci/vmci_queue_pair.c:1800 qp_broker_alloc()
warn: we tested 'is_local' before and it was 'false'
drivers/misc/vmw_vmci/vmci_queue_pair.c
1763 static int qp_broker_alloc(struct vmci_handle handle,
1764 u32 peer,
1765 u32 flags,
1766 u32 priv_flags,
1767 u64 produce_size,
1768 u64 consume_size,
1769 struct vmci_qp_page_store *page_store,
1770 struct vmci_ctx *context,
1771 vmci_event_release_cb wakeup_cb,
1772 void *client_data,
1773 struct qp_broker_entry **ent,
1774 bool *swap)
1775 {
1776 const u32 context_id = vmci_ctx_get_id(context);
1777 bool create;
1778 struct qp_broker_entry *entry = NULL;
1779 bool is_local = flags & VMCI_QPFLAG_LOCAL;
1780 int result;
1781
1782 if (vmci_handle_is_invalid(handle) ||
1783 (flags & ~VMCI_QP_ALL_FLAGS) || is_local ||
^^^^^^^^
We return if is_local is non-zero.
1784 !(produce_size || consume_size) ||
1785 !context || context_id = VMCI_INVALID_ID ||
1786 handle.context = VMCI_INVALID_ID) {
1787 return VMCI_ERROR_INVALID_ARGS;
1788 }
1789
1790 if (page_store && !VMCI_QP_PAGESTORE_IS_WELLFORMED(page_store))
1791 return VMCI_ERROR_INVALID_ARGS;
1792
1793 /*
1794 * In the initial argument check, we ensure that non-vmkernel hosts
1795 * are not allowed to create local queue pairs.
1796 */
1797
1798 mutex_lock(&qp_broker_list.mutex);
1799
1800 if (!is_local && vmci_ctx_qp_exists(context, handle)) {
^^^^^^^^^
We already know this is that is_local is zero.
1801 pr_devel("Context (ID=0x%x) already attached to queue pair (handle=0x%x:0x%x)\n",
1802 context_id, handle.context, handle.resource);
1803 mutex_unlock(&qp_broker_list.mutex);
1804 return VMCI_ERROR_ALREADY_EXISTS;
1805 }
1806
1807 if (handle.resource != VMCI_INVALID_ID)
1808 entry = qp_broker_handle_to_entry(handle);
1809
1810 if (!entry) {
1811 create = true;
1812 result 1813 qp_broker_create(handle, peer, flags, priv_flags,
1814 produce_size, consume_size, page_store,
1815 context, wakeup_cb, client_data, ent);
1816 } else {
1817 create = false;
1818 result 1819 qp_broker_attach(entry, peer, flags, priv_flags,
1820 produce_size, consume_size, page_store,
1821 context, wakeup_cb, client_data, ent);
1822 }
1823
1824 mutex_unlock(&qp_broker_list.mutex);
1825
1826 if (swap)
1827 *swap = (context_id = VMCI_HOST_CONTEXT_ID) &&
1828 !(create && is_local);
^^^^^^^^
Another duplicative check.
1829
1830 return result;
1831 }
regards,
dan carpenter
next prev parent reply other threads:[~2014-01-30 11:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-10 19:32 VMCI: queue pairs implementation Dan Carpenter
2013-01-10 19:36 ` George Zhang
2014-01-30 11:51 ` Dan Carpenter [this message]
2014-01-30 11:52 ` Dan Carpenter
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=20140130115136.GC12734@elgon.mountain \
--to=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.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