2016-03-07 16:34:32

by Marciniszyn, Mike

[permalink] [raw]
Subject: RE: [PATCH RESEND] qib:Fix concurrent access in the function, qib_init_iba6120_funcs

> This fixes concurrent access in the function, qib_init_iba6120_funcs by locking
> around the calls to when setting up f_sendctrl and f_set_armlauch function
> pointers to the functions, sendctrl_6120_mod qib_set_6120_armlaunch due to
> these functions needing to have their caller to hold the spinlock that is part of
> the qib_ibport pointer they are using and due to the lock not being held by
> higher up functions in the caller stack we need to hold it in qib_init_iba6210 to
> avoid conncurrent access when setting up these function pointers.
>

I'm not sure I agree.

static struct pci_driver qib_driver = {
.name = QIB_DRV_NAME,
.probe = qib_init_one,
.remove = qib_remove_one,
.id_table = qib_pci_tbl,
.err_handler = &qib_pci_err_handler,
};

The only caller is the probe function, which naturally protects since the device cannot be used until the probe returns.

Are you actually having an issue with this older version of a qib card?

The other board specific routines if this indeed is an issue, would need to be fixed as well since that have the same chip specific routine.

Mike





2016-03-07 20:50:04

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH RESEND] qib:Fix concurrent access in the function, qib_init_iba6120_funcs

On Mon, Mar 07, 2016 at 04:34:04PM +0000, Marciniszyn, Mike wrote:
> > This fixes concurrent access in the function, qib_init_iba6120_funcs by locking
> > around the calls to when setting up f_sendctrl and f_set_armlauch function
> > pointers to the functions, sendctrl_6120_mod qib_set_6120_armlaunch due to
> > these functions needing to have their caller to hold the spinlock that is part of
> > the qib_ibport pointer they are using and due to the lock not being held by
> > higher up functions in the caller stack we need to hold it in qib_init_iba6210 to
> > avoid conncurrent access when setting up these function pointers.
> >
>
> I'm not sure I agree.
>
> static struct pci_driver qib_driver = {
> .name = QIB_DRV_NAME,
> .probe = qib_init_one,
> .remove = qib_remove_one,
> .id_table = qib_pci_tbl,
> .err_handler = &qib_pci_err_handler,
> };
>
> The only caller is the probe function, which naturally protects since the device cannot be used until the probe returns.
>
> Are you actually having an issue with this older version of a qib card?

IMHO no,
The author is famous developer - Nick Krause [1].

[1]
http://news.softpedia.com/news/Malevolent-Developer-Trolls-Linux-Kernel-Development-with-Lots-of-Broken-Patches-453709.shtml

>
> The other board specific routines if this indeed is an issue, would need to be fixed as well since that have the same chip specific routine.
>
> Mike
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html