[dpdk-dev] [PATCH 1/2] net/virtio: do not re-enter clean up routines

Chas Williams 3chas3 at gmail.com
Fri Nov 2 16:19:49 CET 2018



On 11/02/2018 10:33 AM, Ferruh Yigit wrote:
> On 11/1/2018 2:45 PM, Luca Boccassi wrote:
>> On Mon, 2017-07-17 at 19:05 -0400, Charles (Chas) Williams wrote:
>>> .dev_uninit calls .dev_stop and .dev_close.  The work that is done in
>>> those routines doesn't need repeated.  Use started and opened to
>>> track
>>> the adapter's status.
>>>
>>> Signed-off-by: Chas Williams <ciwillia at brocade.com>
> 
> <...>
> 
>>> @@ -253,7 +254,7 @@ struct virtio_hw {
>>>   	uint64_t    req_guest_features;
>>>   	uint64_t    guest_features;
>>>   	uint32_t    max_queue_pairs;
>>> -	uint16_t    started;
>>> +	bool        started;
>>>   	uint16_t	max_mtu;
>>>   	uint16_t    vtnet_hdr_size;
>>>   	uint8_t	    vlan_strip;
>>> @@ -268,6 +269,7 @@ struct virtio_hw {
>>>   	struct virtio_pci_common_cfg *common_cfg;
>>>   	struct virtio_net_config *dev_cfg;
>>>   	void	    *virtio_user_dev;
>>> +	bool        opened;
> 
> This is already merged into next-net-virtio, but I would like to hightlight the
> checkpatch warning about `bool` usage in struct [1].
> Briefly it suggests preferring primitive data types against `bool` in structures
> because its size is not clear.
> 
> What do you think about it, do you have strong opinion to have them as bool?

Yes, I suppose I do.  bool is the "proper" representation for yes/no.
The arguments cited aren't convincing.

The size of bool is the size of bool. The compiler gets to make that
decision.  I don't get to decide the size of int either.  The size and
alignemnt of bool should be optimal because your compiler probably knows
more about the target than you do.  If your compiler can't figure out
alignment in a structure, please fix the compiler.

bool is a primitive data type per the C99 standard.

> [1]
> CHECK:BOOL_MEMBER: Avoid using bool structure members because of possible
> alignment issues - see: https://lkml.org/lkml/2017/11/21/384
> #85: FILE: drivers/net/virtio/virtio_pci.h:234:
> +       bool        started;
> 
> CHECK:BOOL_MEMBER: Avoid using bool structure members because of possible
> alignment issues - see: https://lkml.org/lkml/2017/11/21/384
> #93: FILE: drivers/net/virtio/virtio_pci.h:260:
> +       bool        opened;
> 


More information about the dev mailing list