All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
@ 2014-03-30 15:26 Amir Vadai
  2014-03-30 18:08 ` Or Gerlitz
  2014-03-31  3:12 ` Wei Yang
  0 siblings, 2 replies; 11+ messages in thread
From: Amir Vadai @ 2014-03-30 15:26 UTC (permalink / raw)
  To: David S. Miller
  Cc: netdev, Yevgeny Petrilin, Or Gerlitz, Amir Vadai, Bjorn Helgaas,
	Wei Yang

Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
pci_device_id.driver_data to __mlx4_init_one during reset".

pci_match_id() might return NULL if someone binds the driver to a device
manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
before using it.

Thanks to Bjorn who raised the problem.

CC: Bjorn Helgaas <bhelgaas@google.com>
CC: Wei Yang <weiyang@linux.vnet.ibm.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index f0ae95f..a2f6623 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -2759,6 +2759,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
 	int ret;
 
 	id = pci_match_id(mlx4_pci_table, pdev);
+	if (!id)
+		return PCI_ERS_RESULT_DISCONNECT;
+
 	ret = __mlx4_init_one(pdev, id->driver_data);
 
 	return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
-- 
1.8.3.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-30 15:26 [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id() Amir Vadai
@ 2014-03-30 18:08 ` Or Gerlitz
  2014-03-31  3:54   ` Wei Yang
  2014-03-31  3:12 ` Wei Yang
  1 sibling, 1 reply; 11+ messages in thread
From: Or Gerlitz @ 2014-03-30 18:08 UTC (permalink / raw)
  To: Amir Vadai, David S. Miller
  Cc: netdev, Yevgeny Petrilin, Bjorn Helgaas, Wei Yang

On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
> pci_device_id.driver_data to __mlx4_init_one during reset".
>
> pci_match_id() might return NULL if someone binds the driver to a device
> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
> before using it.
>
> Thanks to Bjorn who raised the problem.

Well, that commit was applied to net and is now present in Linus
tree... so assuming it's too late for 3.14, need to queue this for
-stable

Or.

>
> CC: Bjorn Helgaas <bhelgaas@google.com>
> CC: Wei Yang <weiyang@linux.vnet.ibm.com>
> Signed-off-by: Amir Vadai <amirv@mellanox.com>
> ---
>  drivers/net/ethernet/mellanox/mlx4/main.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
> index f0ae95f..a2f6623 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
> @@ -2759,6 +2759,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
>         int ret;
>
>         id = pci_match_id(mlx4_pci_table, pdev);
> +       if (!id)
> +               return PCI_ERS_RESULT_DISCONNECT;
> +
>         ret = __mlx4_init_one(pdev, id->driver_data);
>
>         return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
> --
> 1.8.3.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-30 15:26 [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id() Amir Vadai
  2014-03-30 18:08 ` Or Gerlitz
@ 2014-03-31  3:12 ` Wei Yang
  1 sibling, 0 replies; 11+ messages in thread
From: Wei Yang @ 2014-03-31  3:12 UTC (permalink / raw)
  To: Amir Vadai
  Cc: David S. Miller, netdev, Yevgeny Petrilin, Or Gerlitz,
	Bjorn Helgaas, Wei Yang

Thanks Amir and Bjorn,

I missed this code path, we should take dynids carefully.

On Sun, Mar 30, 2014 at 06:26:55PM +0300, Amir Vadai wrote:
>Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>pci_device_id.driver_data to __mlx4_init_one during reset".
>
>pci_match_id() might return NULL if someone binds the driver to a device
>manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>before using it.
>
>Thanks to Bjorn who raised the problem.
>
>CC: Bjorn Helgaas <bhelgaas@google.com>
>CC: Wei Yang <weiyang@linux.vnet.ibm.com>
>Signed-off-by: Amir Vadai <amirv@mellanox.com>
>---
> drivers/net/ethernet/mellanox/mlx4/main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
>index f0ae95f..a2f6623 100644
>--- a/drivers/net/ethernet/mellanox/mlx4/main.c
>+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
>@@ -2759,6 +2759,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
> 	int ret;
>
> 	id = pci_match_id(mlx4_pci_table, pdev);
>+	if (!id)
>+		return PCI_ERS_RESULT_DISCONNECT;
>+

So when there is really someone create a new dynamic id for this driver, this
change will fail to reset this device. And actually, in general, driver can
reset it. In my mind, we can't say it is disconnected, since we just not find it.

My suggestion is we find it both in dynamic ids and static ids. Will send a
fix soon.

> 	ret = __mlx4_init_one(pdev, id->driver_data);
>
> 	return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
>-- 
>1.8.3.4

-- 
Richard Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-30 18:08 ` Or Gerlitz
@ 2014-03-31  3:54   ` Wei Yang
  2014-03-31  4:52     ` Or Gerlitz
  2014-03-31 20:32     ` David Miller
  0 siblings, 2 replies; 11+ messages in thread
From: Wei Yang @ 2014-03-31  3:54 UTC (permalink / raw)
  To: Or Gerlitz
  Cc: Amir Vadai, David S. Miller, netdev, Yevgeny Petrilin,
	Bjorn Helgaas, Wei Yang

On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>
>> pci_match_id() might return NULL if someone binds the driver to a device
>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>> before using it.
>>
>> Thanks to Bjorn who raised the problem.
>
>Well, that commit was applied to net and is now present in Linus
>tree... so assuming it's too late for 3.14, need to queue this for
>-stable
>
>Or.

Sorry for this bothering, hope this will not block someone.

Here is my suggestion for fixing this, not sure this is a good way to export
pci_match_device() to modules. This is my current solution to this problem. If
you have any comments, please let me know.

------------------------------------------------------------------------------
>From 9361e1edd6776202c6e11dd44d3d4d72c990b111 Mon Sep 17 00:00:00 2001
From: Wei Yang <weiyang@linux.vnet.ibm.com>
Date: Mon, 31 Mar 2014 11:34:57 +0800
Subject: [PATCH net-next] net/mlx4_core: match pci_device_id including dynids

Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
pci_device_id.driver_data to __mlx4_init_one during reset".

pci_match_id() just match the static pci_device_id, which may return NULL if
someone binds the driver to a device manually using
/sys/bus/pci/drivers/.../new_id.

This patch match pci_device_id with pci_match_device() to cover both dynids
and static id_table.

Thanks to Bjorn finding this issue.

CC: Bjorn Helgaas <bhelgaas@google.com>
CC: Amir Vadai <amirv@mellanox.com>
Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
---
 drivers/net/ethernet/mellanox/mlx4/main.c |    4 +++-
 drivers/pci/pci-driver.c                  |    3 ++-
 include/linux/pci.h                       |    2 ++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index aa54ef7..b0edb5c 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -2673,7 +2673,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
 	const struct pci_device_id *id;
 	int ret;
 
-	id = pci_match_id(mlx4_pci_table, pdev);
+	id = pci_match_device(pci_dev_driver(pdev), pdev);
+	BUG_ON(!id);
+
 	ret = __mlx4_init_one(pdev, id->driver_data);
 
 	return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 25f0bc6..1ee26a1 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -225,7 +225,7 @@ const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
  * system is in its list of supported devices.  Returns the matching
  * pci_device_id structure or %NULL if there is no match.
  */
-static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
+const struct pci_device_id *pci_match_device(struct pci_driver *drv,
 						    struct pci_dev *dev)
 {
 	struct pci_dynid *dynid;
@@ -1355,6 +1355,7 @@ postcore_initcall(pci_driver_init);
 
 EXPORT_SYMBOL_GPL(pci_add_dynid);
 EXPORT_SYMBOL(pci_match_id);
+EXPORT_SYMBOL(pci_match_device);
 EXPORT_SYMBOL(__pci_register_driver);
 EXPORT_SYMBOL(pci_unregister_driver);
 EXPORT_SYMBOL(pci_dev_driver);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 6d1cc9e..d7a7d05 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1135,6 +1135,8 @@ int pci_add_dynid(struct pci_driver *drv,
 		  unsigned long driver_data);
 const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
 					 struct pci_dev *dev);
+const struct pci_device_id *pci_match_device(struct pci_driver *drv,
+						    struct pci_dev *dev);
 int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
 		    int pass);
 
-- 
1.7.9.5


-- 
Richard Yang
Help you, Help me

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-31  3:54   ` Wei Yang
@ 2014-03-31  4:52     ` Or Gerlitz
  2014-03-31  6:29       ` Amir Vadai
  2014-03-31  7:01       ` Wei Yang
  2014-03-31 20:32     ` David Miller
  1 sibling, 2 replies; 11+ messages in thread
From: Or Gerlitz @ 2014-03-31  4:52 UTC (permalink / raw)
  To: Wei Yang
  Cc: Amir Vadai, David S. Miller, netdev, Yevgeny Petrilin, Bjorn Helgaas

On Mon, Mar 31, 2014 at 6:54 AM, Wei Yang <weiyang@linux.vnet.ibm.com> wrote:
>
> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
> >On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
> >> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
> >> pci_device_id.driver_data to __mlx4_init_one during reset".
> >>
> >> pci_match_id() might return NULL if someone binds the driver to a device
> >> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
> >> before using it.
> >>
> >> Thanks to Bjorn who raised the problem.
> >
> >Well, that commit was applied to net and is now present in Linus
> >tree... so assuming it's too late for 3.14, need to queue this for
> >-stable
> >
> >Or.
>
> Sorry for this bothering, hope this will not block someone.
>
> Here is my suggestion for fixing this, not sure this is a good way to export
> pci_match_device() to modules. This is my current solution to this problem. If
> you have any comments, please let me know.
>
> ------------------------------------------------------------------------------
> From 9361e1edd6776202c6e11dd44d3d4d72c990b111 Mon Sep 17 00:00:00 2001
> From: Wei Yang <weiyang@linux.vnet.ibm.com>
> Date: Mon, 31 Mar 2014 11:34:57 +0800
> Subject: [PATCH net-next] net/mlx4_core: match pci_device_id including dynids



Your original commit went to net and same needs to be done for the fix



>
>
> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
> pci_device_id.driver_data to __mlx4_init_one during reset".
>
> pci_match_id() just match the static pci_device_id, which may return NULL if
> someone binds the driver to a device manually using
> /sys/bus/pci/drivers/.../new_id.
>
> This patch match pci_device_id with pci_match_device() to cover both dynids
> and static id_table.
>
> Thanks to Bjorn finding this issue.
>
> CC: Bjorn Helgaas <bhelgaas@google.com>
> CC: Amir Vadai <amirv@mellanox.com>
> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
> ---
>  drivers/net/ethernet/mellanox/mlx4/main.c |    4 +++-
>  drivers/pci/pci-driver.c                  |    3 ++-
>  include/linux/pci.h                       |    2 ++
>  3 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
> index aa54ef7..b0edb5c 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
> @@ -2673,7 +2673,9 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
>         const struct pci_device_id *id;
>         int ret;
>
> -       id = pci_match_id(mlx4_pci_table, pdev);
> +       id = pci_match_device(pci_dev_driver(pdev), pdev);
> +       BUG_ON(!id);
> +
>         ret = __mlx4_init_one(pdev, id->driver_data);
>
>         return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> index 25f0bc6..1ee26a1 100644
> --- a/drivers/pci/pci-driver.c
> +++ b/drivers/pci/pci-driver.c
> @@ -225,7 +225,7 @@ const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
>   * system is in its list of supported devices.  Returns the matching
>   * pci_device_id structure or %NULL if there is no match.
>   */
> -static const struct pci_device_id *pci_match_device(struct pci_driver *drv,
> +const struct pci_device_id *pci_match_device(struct pci_driver *drv,
>                                                     struct pci_dev *dev)
>  {
>         struct pci_dynid *dynid;
> @@ -1355,6 +1355,7 @@ postcore_initcall(pci_driver_init);
>
>  EXPORT_SYMBOL_GPL(pci_add_dynid);
>  EXPORT_SYMBOL(pci_match_id);
> +EXPORT_SYMBOL(pci_match_device);
>  EXPORT_SYMBOL(__pci_register_driver);
>  EXPORT_SYMBOL(pci_unregister_driver);
>  EXPORT_SYMBOL(pci_dev_driver);
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 6d1cc9e..d7a7d05 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1135,6 +1135,8 @@ int pci_add_dynid(struct pci_driver *drv,
>                   unsigned long driver_data);
>  const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
>                                          struct pci_dev *dev);
> +const struct pci_device_id *pci_match_device(struct pci_driver *drv,
> +                                                   struct pci_dev *dev);
>  int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
>                     int pass);
>
> --
> 1.7.9.5
>
>
> --
> Richard Yang
> Help you, Help me
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-31  4:52     ` Or Gerlitz
@ 2014-03-31  6:29       ` Amir Vadai
  2014-03-31  7:01       ` Wei Yang
  1 sibling, 0 replies; 11+ messages in thread
From: Amir Vadai @ 2014-03-31  6:29 UTC (permalink / raw)
  To: Or Gerlitz, Wei Yang
  Cc: Amir Vadai, David S. Miller, netdev, Yevgeny Petrilin, Bjorn Helgaas

On 3/31/2014 7:52 AM, Or Gerlitz wrote:
> On Mon, Mar 31, 2014 at 6:54 AM, Wei Yang <weiyang@linux.vnet.ibm.com> wrote:
>>
>> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>>> On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>>>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>>>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>>>
>>>> pci_match_id() might return NULL if someone binds the driver to a device
>>>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>>>> before using it.
>>>>
>>>> Thanks to Bjorn who raised the problem.
>>>
>>> Well, that commit was applied to net and is now present in Linus
>>> tree... so assuming it's too late for 3.14, need to queue this for
>>> -stable
>>>
>>> Or.
>>
>> Sorry for this bothering, hope this will not block someone.
>>
>> Here is my suggestion for fixing this, not sure this is a good way to export
>> pci_match_device() to modules. This is my current solution to this problem. If
>> you have any comments, please let me know.
>>
>> ------------------------------------------------------------------------------
>>  From 9361e1edd6776202c6e11dd44d3d4d72c990b111 Mon Sep 17 00:00:00 2001
>> From: Wei Yang <weiyang@linux.vnet.ibm.com>
>> Date: Mon, 31 Mar 2014 11:34:57 +0800
>> Subject: [PATCH net-next] net/mlx4_core: match pci_device_id including dynids
>
>
>
> Your original commit went to net and same needs to be done for the fix
>
>
>
>>
>>
>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>
>> pci_match_id() just match the static pci_device_id, which may return NULL if
>> someone binds the driver to a device manually using
>> /sys/bus/pci/drivers/.../new_id.
>>
>> This patch match pci_device_id with pci_match_device() to cover both dynids
>> and static id_table.
>>
>> Thanks to Bjorn finding this issue.
>>
>> CC: Bjorn Helgaas <bhelgaas@google.com>
>> CC: Amir Vadai <amirv@mellanox.com>
>> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>

Acked-By: Amir Vadai <amirv@mellanox.com>

And of-course need to fix the net/net-next/stable thing

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-31  4:52     ` Or Gerlitz
  2014-03-31  6:29       ` Amir Vadai
@ 2014-03-31  7:01       ` Wei Yang
  1 sibling, 0 replies; 11+ messages in thread
From: Wei Yang @ 2014-03-31  7:01 UTC (permalink / raw)
  To: Or Gerlitz
  Cc: Wei Yang, Amir Vadai, David S. Miller, netdev, Yevgeny Petrilin,
	Bjorn Helgaas

On Mon, Mar 31, 2014 at 07:52:20AM +0300, Or Gerlitz wrote:
>On Mon, Mar 31, 2014 at 6:54 AM, Wei Yang <weiyang@linux.vnet.ibm.com> wrote:
>>
>> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>> >On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>> >> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>> >> pci_device_id.driver_data to __mlx4_init_one during reset".
>> >>
>> >> pci_match_id() might return NULL if someone binds the driver to a device
>> >> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>> >> before using it.
>> >>
>> >> Thanks to Bjorn who raised the problem.
>> >
>> >Well, that commit was applied to net and is now present in Linus
>> >tree... so assuming it's too late for 3.14, need to queue this for
>> >-stable
>> >
>> >Or.
>>
>> Sorry for this bothering, hope this will not block someone.
>>
>> Here is my suggestion for fixing this, not sure this is a good way to export
>> pci_match_device() to modules. This is my current solution to this problem. If
>> you have any comments, please let me know.
>>
>> ------------------------------------------------------------------------------
>> From 9361e1edd6776202c6e11dd44d3d4d72c990b111 Mon Sep 17 00:00:00 2001
>> From: Wei Yang <weiyang@linux.vnet.ibm.com>
>> Date: Mon, 31 Mar 2014 11:34:57 +0800
>> Subject: [PATCH net-next] net/mlx4_core: match pci_device_id including dynids
>
>
>
>Your original commit went to net and same needs to be done for the fix
>

Thanks, seems I still misunderstand this rule.
I thought Amir is correct, so copyed his.

Will pay attention next time.

-- 
Richard Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-31  3:54   ` Wei Yang
  2014-03-31  4:52     ` Or Gerlitz
@ 2014-03-31 20:32     ` David Miller
  2014-04-01  1:41       ` Wei Yang
  1 sibling, 1 reply; 11+ messages in thread
From: David Miller @ 2014-03-31 20:32 UTC (permalink / raw)
  To: weiyang; +Cc: or.gerlitz, amirv, netdev, yevgenyp, bhelgaas

From: Wei Yang <weiyang@linux.vnet.ibm.com>
Date: Mon, 31 Mar 2014 11:54:39 +0800

> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>>On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>>
>>> pci_match_id() might return NULL if someone binds the driver to a device
>>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>>> before using it.
>>>
>>> Thanks to Bjorn who raised the problem.
>>
>>Well, that commit was applied to net and is now present in Linus
>>tree... so assuming it's too late for 3.14, need to queue this for
>>-stable
>>
>>Or.
> 
> Sorry for this bothering, hope this will not block someone.
> 
> Here is my suggestion for fixing this, not sure this is a good way to export
> pci_match_device() to modules. This is my current solution to this problem. If
> you have any comments, please let me know.

This needs to be ACK'd by the PCI maintainers, please make sure they see this.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-03-31 20:32     ` David Miller
@ 2014-04-01  1:41       ` Wei Yang
  2014-04-01  3:12         ` Bjorn Helgaas
  0 siblings, 1 reply; 11+ messages in thread
From: Wei Yang @ 2014-04-01  1:41 UTC (permalink / raw)
  To: David Miller; +Cc: weiyang, or.gerlitz, amirv, netdev, yevgenyp, bhelgaas

On Mon, Mar 31, 2014 at 04:32:40PM -0400, David Miller wrote:
>From: Wei Yang <weiyang@linux.vnet.ibm.com>
>Date: Mon, 31 Mar 2014 11:54:39 +0800
>
>> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>>>On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>>>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>>>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>>>
>>>> pci_match_id() might return NULL if someone binds the driver to a device
>>>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>>>> before using it.
>>>>
>>>> Thanks to Bjorn who raised the problem.
>>>
>>>Well, that commit was applied to net and is now present in Linus
>>>tree... so assuming it's too late for 3.14, need to queue this for
>>>-stable
>>>
>>>Or.
>> 
>> Sorry for this bothering, hope this will not block someone.
>> 
>> Here is my suggestion for fixing this, not sure this is a good way to export
>> pci_match_device() to modules. This is my current solution to this problem. If
>> you have any comments, please let me know.
>
>This needs to be ACK'd by the PCI maintainers, please make sure they see this.

Yes, I think Bjorn, maintainers of PCI, is in the list.

Bjorn,

Do you have some concern on this implementation?
Or, you suggest me to send this to pci maillist too?

-- 
Richard Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-04-01  1:41       ` Wei Yang
@ 2014-04-01  3:12         ` Bjorn Helgaas
  2014-04-01  3:14           ` Wei Yang
  0 siblings, 1 reply; 11+ messages in thread
From: Bjorn Helgaas @ 2014-04-01  3:12 UTC (permalink / raw)
  To: Wei Yang; +Cc: David Miller, or.gerlitz, Amir Vadai, netdev, yevgenyp

On Mon, Mar 31, 2014 at 7:41 PM, Wei Yang <weiyang@linux.vnet.ibm.com> wrote:
> On Mon, Mar 31, 2014 at 04:32:40PM -0400, David Miller wrote:
>>From: Wei Yang <weiyang@linux.vnet.ibm.com>
>>Date: Mon, 31 Mar 2014 11:54:39 +0800
>>
>>> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>>>>On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>>>>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>>>>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>>>>
>>>>> pci_match_id() might return NULL if someone binds the driver to a device
>>>>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>>>>> before using it.
>>>>>
>>>>> Thanks to Bjorn who raised the problem.
>>>>
>>>>Well, that commit was applied to net and is now present in Linus
>>>>tree... so assuming it's too late for 3.14, need to queue this for
>>>>-stable
>>>>
>>>>Or.
>>>
>>> Sorry for this bothering, hope this will not block someone.
>>>
>>> Here is my suggestion for fixing this, not sure this is a good way to export
>>> pci_match_device() to modules. This is my current solution to this problem. If
>>> you have any comments, please let me know.
>>
>>This needs to be ACK'd by the PCI maintainers, please make sure they see this.
>
> Yes, I think Bjorn, maintainers of PCI, is in the list.
>
> Bjorn,
>
> Do you have some concern on this implementation?
> Or, you suggest me to send this to pci maillist too?

I haven't looked at the patch yet, but yes, please do copy linux-pci as well.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id()
  2014-04-01  3:12         ` Bjorn Helgaas
@ 2014-04-01  3:14           ` Wei Yang
  0 siblings, 0 replies; 11+ messages in thread
From: Wei Yang @ 2014-04-01  3:14 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Wei Yang, David Miller, or.gerlitz, Amir Vadai, netdev, yevgenyp

On Mon, Mar 31, 2014 at 09:12:04PM -0600, Bjorn Helgaas wrote:
>On Mon, Mar 31, 2014 at 7:41 PM, Wei Yang <weiyang@linux.vnet.ibm.com> wrote:
>> On Mon, Mar 31, 2014 at 04:32:40PM -0400, David Miller wrote:
>>>From: Wei Yang <weiyang@linux.vnet.ibm.com>
>>>Date: Mon, 31 Mar 2014 11:54:39 +0800
>>>
>>>> On Sun, Mar 30, 2014 at 09:08:06PM +0300, Or Gerlitz wrote:
>>>>>On Sun, Mar 30, 2014 at 6:26 PM, Amir Vadai <amirv@mellanox.com> wrote:
>>>>>> Fix issue introduced by commit: 97a5221 "net/mlx4_core: pass
>>>>>> pci_device_id.driver_data to __mlx4_init_one during reset".
>>>>>>
>>>>>> pci_match_id() might return NULL if someone binds the driver to a device
>>>>>> manually using /sys/bus/pci/drivers/.../new_id. Need to check 'id'
>>>>>> before using it.
>>>>>>
>>>>>> Thanks to Bjorn who raised the problem.
>>>>>
>>>>>Well, that commit was applied to net and is now present in Linus
>>>>>tree... so assuming it's too late for 3.14, need to queue this for
>>>>>-stable
>>>>>
>>>>>Or.
>>>>
>>>> Sorry for this bothering, hope this will not block someone.
>>>>
>>>> Here is my suggestion for fixing this, not sure this is a good way to export
>>>> pci_match_device() to modules. This is my current solution to this problem. If
>>>> you have any comments, please let me know.
>>>
>>>This needs to be ACK'd by the PCI maintainers, please make sure they see this.
>>
>> Yes, I think Bjorn, maintainers of PCI, is in the list.
>>
>> Bjorn,
>>
>> Do you have some concern on this implementation?
>> Or, you suggest me to send this to pci maillist too?
>
>I haven't looked at the patch yet, but yes, please do copy linux-pci as well.

Ok, I will send this one again to both net and pci mail list.

-- 
Richard Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-04-01  3:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-30 15:26 [PATCH net-next] net/mlx4_core: Handle null return by pci_match_id() Amir Vadai
2014-03-30 18:08 ` Or Gerlitz
2014-03-31  3:54   ` Wei Yang
2014-03-31  4:52     ` Or Gerlitz
2014-03-31  6:29       ` Amir Vadai
2014-03-31  7:01       ` Wei Yang
2014-03-31 20:32     ` David Miller
2014-04-01  1:41       ` Wei Yang
2014-04-01  3:12         ` Bjorn Helgaas
2014-04-01  3:14           ` Wei Yang
2014-03-31  3:12 ` Wei Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.