[dpdk-dev] virtio: check if devargs is NULL before checking its value
Commit Message
Fixes: ac5e1d838dc1 ("virtio: skip error when probing kernel managed device")
Signed-off-by: Huawei Xie <huawei.xie@intel.com>
---
drivers/net/virtio/virtio_pci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
> - dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI) {
> + (!dev->devargs ||
> + dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI)) {
Should the title be something like "fix crash ..."?
I would also add
Reported-by: Vincent Li <vincent.mc.li@gmail.com>
On Wed, May 25, 2016 at 12:47:30PM +0200, Thomas Monjalon wrote:
> > - dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI) {
> > + (!dev->devargs ||
> > + dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI)) {
>
> Should the title be something like "fix crash ..."?
>
> I would also add
> Reported-by: Vincent Li <vincent.mc.li@gmail.com>
Huawei, the two are good comments (Thomas, thanks for the review, BTW :).
So, mind to send v2? BTW, I think this patch deserves some explanation,
say, why dev->devargs could be NULL.
--yliu
On 5/27/2016 10:08 AM, Yuanhan Liu wrote:
> On Wed, May 25, 2016 at 12:47:30PM +0200, Thomas Monjalon wrote:
>>> - dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI) {
>>> + (!dev->devargs ||
>>> + dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI)) {
>> Should the title be something like "fix crash ..."?
>>
>> I would also add
>> Reported-by: Vincent Li <vincent.mc.li@gmail.com>
> Huawei, the two are good comments (Thomas, thanks for the review, BTW :).
np.
>
> So, mind to send v2? BTW, I think this patch deserves some explanation,
> say, why dev->devargs could be NULL.
>
>
>
> --yliu
>
@@ -626,6 +626,7 @@ next:
* Return -1:
* if there is error mapping with VFIO/UIO.
* if port map error when driver type is KDRV_NONE.
+ * if whitelisted but driver type is KDRV_UNKNOWN.
* Return 1 if kernel driver is managing the device.
* Return 0 on success.
*/
@@ -651,7 +652,8 @@ vtpci_init(struct rte_pci_device *dev, struct virtio_hw *hw,
PMD_INIT_LOG(INFO, "trying with legacy virtio pci.");
if (legacy_virtio_resource_init(dev, hw, dev_flags) < 0) {
if (dev->kdrv == RTE_KDRV_UNKNOWN &&
- dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI) {
+ (!dev->devargs ||
+ dev->devargs->type != RTE_DEVTYPE_WHITELISTED_PCI)) {
PMD_INIT_LOG(INFO,
"skip kernel managed virtio device.");
return 1;