[dpdk-dev] [PATCH] kni: add support for core_id param in single threaded mode
Stephen Hemminger
stephen at networkplumber.org
Thu Sep 22 01:44:44 CEST 2016
On Wed, 21 Sep 2016 19:23:47 +0100
Ferruh Yigit <ferruh.yigit at intel.com> wrote:
> On 9/21/2016 6:15 PM, Vladyslav Buslov wrote:
> >> On 9/20/2016 7:36 PM, Stephen Hemminger wrote:
> >>> On Tue, 20 Sep 2016 21:16:37 +0300
> >>> Vladyslav Buslov <vladyslav.buslov at harmonicinc.com> wrote:
> >>>
> >>>> @@ -123,6 +125,9 @@ static int __net_init kni_init_net(struct net *net)
> >>>> /* Clear the bit of device in use */
> >>>> clear_bit(KNI_DEV_IN_USE_BIT_NUM, &knet->device_in_use);
> >>>>
> >>>> + mutex_init(&knet->kni_kthread_lock);
> >>>> + knet->kni_kthread = NULL;
> >>>> +
> >>>
> >>> Why not just use kzalloc() here? You would still need to init the
> >>> mutex etc, but it would be safer.
> >>>
> >>
> >> Hi Vladyslav,
> >>
> >> This is good suggestion, if you send a new version for this update, please
> >> keep my Ack.
> >>
> >> Thanks,
> >> ferruh
> >
> > Hi Ferruh, Stephen,
> >
> > Could you please elaborate on using kzalloc for this code.
> > Currently kni_thread_lock is value member of kni_net structure and never explicitly allocated or deallocated.
> > Kni_kthread is pointer member of kni_net and is implicitly created and destroyed by kthread_run, kthread_stop functions.
> > Which one of those do you suggest to allocate with kzalloc() and how would it improve safety?
> >
>
> Currently:
>
> kni_init_net() {
> knet = kmalloc(..);
> ..
> mutex_init(..);
> knet->kni_thread = NULL;
> }
>
> If you allocate knet via kzalloc(), no need to assign NULL to
> kni_thread. Also this is safer because any uninitialized knet field will
> be zero instead of random value.
>
> This is what I understood at least J
Also any additional fields in knet will be set, avoiding any present
or future uninitialized memory bugs.
More information about the dev
mailing list