<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/qlogic/qed/qed_devlink.c, branch linux-6.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2022-12-01T05:49:38Z</updated>
<entry>
<title>net: devlink: let the core report the driver name instead of the drivers</title>
<updated>2022-12-01T05:49:38Z</updated>
<author>
<name>Vincent Mailhol</name>
<email>mailhol.vincent@wanadoo.fr</email>
</author>
<published>2022-11-29T09:51:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=226bf980550627c88549b112ac6c8fb40873afb4'/>
<id>urn:sha1:226bf980550627c88549b112ac6c8fb40873afb4</id>
<content type='text'>
The driver name is available in device_driver::name. Right now,
drivers still have to report this piece of information themselves in
their devlink_ops::info_get callback function.

In order to factorize code, make devlink_nl_info_fill() add the driver
name attribute.

Now that the core sets the driver name attribute, drivers are not
supposed to call devlink_info_driver_name_put() anymore. Remove
devlink_info_driver_name_put() and clean-up all the drivers using this
function in their callback.

Signed-off-by: Vincent Mailhol &lt;mailhol.vincent@wanadoo.fr&gt;
Tested-by: Ido Schimmel &lt;idosch@nvidia.com&gt; # mlxsw
Reviewed-by: Jacob Keller  &lt;jacob.e.keller@intel.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>qed: Move devlink registration to be last devlink command</title>
<updated>2021-09-27T15:31:59Z</updated>
<author>
<name>Leon Romanovsky</name>
<email>leonro@nvidia.com</email>
</author>
<published>2021-09-25T11:22:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1b8e0bdbea654bd11d285e4e01e68b3bdab196b4'/>
<id>urn:sha1:1b8e0bdbea654bd11d285e4e01e68b3bdab196b4</id>
<content type='text'>
This change prevents from users to access device before devlink is
fully configured.

Signed-off-by: Leon Romanovsky &lt;leonro@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>devlink: Make devlink_register to be void</title>
<updated>2021-09-22T13:15:12Z</updated>
<author>
<name>Leon Romanovsky</name>
<email>leonro@nvidia.com</email>
</author>
<published>2021-09-22T08:58:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=db4278c55fa53760893266538e86e638330b03bb'/>
<id>urn:sha1:db4278c55fa53760893266538e86e638330b03bb</id>
<content type='text'>
devlink_register() can't fail and always returns success, but all drivers
are obligated to check returned status anyway. This adds a lot of boilerplate
code to handle impossible flow.

Make devlink_register() void and simplify the drivers that use that
API call.

Signed-off-by: Leon Romanovsky &lt;leonro@nvidia.com&gt;
Acked-by: Simon Horman &lt;simon.horman@corigine.com&gt;
Acked-by: Vladimir Oltean &lt;olteanv@gmail.com&gt; # dsa
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed: Enable automatic recovery on error condition.</title>
<updated>2021-08-25T09:38:16Z</updated>
<author>
<name>Alok Prasad</name>
<email>palok@marvell.com</email>
</author>
<published>2021-08-24T04:02:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=755f905340802e2efb1ea96b9ce0f442916c2645'/>
<id>urn:sha1:755f905340802e2efb1ea96b9ce0f442916c2645</id>
<content type='text'>
This patch enables automatic recovery by default in case of various
error condition like fw assert , hardware error etc.
This also ensure driver can handle multiple iteration of assertion
conditions.

Signed-off-by: Ariel Elior &lt;aelior@marvell.com&gt;
Signed-off-by: Shai Malin &lt;smalin@marvell.com&gt;
Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alok Prasad &lt;palok@marvell.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>devlink: Set device as early as possible</title>
<updated>2021-08-09T09:21:40Z</updated>
<author>
<name>Leon Romanovsky</name>
<email>leonro@nvidia.com</email>
</author>
<published>2021-08-08T18:57:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=919d13a7e455c2e7676042d7a5f94c164e859d8a'/>
<id>urn:sha1:919d13a7e455c2e7676042d7a5f94c164e859d8a</id>
<content type='text'>
All kernel devlink implementations call to devlink_alloc() during
initialization routine for specific device which is used later as
a parent device for devlink_register().

Such late device assignment causes to the situation which requires us to
call to device_register() before setting other parameters, but that call
opens devlink to the world and makes accessible for the netlink users.

Any attempt to move devlink_register() to be the last call generates the
following error due to access to the devlink-&gt;dev pointer.

[    8.758862]  devlink_nl_param_fill+0x2e8/0xe50
[    8.760305]  devlink_param_notify+0x6d/0x180
[    8.760435]  __devlink_params_register+0x2f1/0x670
[    8.760558]  devlink_params_register+0x1e/0x20

The simple change of API to set devlink device in the devlink_alloc()
instead of devlink_register() fixes all this above and ensures that
prior to call to devlink_register() everything already set.

Signed-off-by: Leon Romanovsky &lt;leonro@nvidia.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed: implement devlink dump</title>
<updated>2020-08-25T01:01:33Z</updated>
<author>
<name>Igor Russkikh</name>
<email>irusskikh@marvell.com</email>
</author>
<published>2020-08-23T11:19:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=27fed78737aeb692efe525d74fcb54dbe9d67973'/>
<id>urn:sha1:27fed78737aeb692efe525d74fcb54dbe9d67973</id>
<content type='text'>
Gather and push out full device dump to devlink.
Device dump is the same as with `ethtool -d`, but now its generated
exactly at the moment bad thing happens.

Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alexander Lobakin &lt;alobakin@marvell.com&gt;
Signed-off-by: Michal Kalderon &lt;michal.kalderon@marvell.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed*: make use of devlink recovery infrastructure</title>
<updated>2020-08-25T01:01:33Z</updated>
<author>
<name>Igor Russkikh</name>
<email>irusskikh@marvell.com</email>
</author>
<published>2020-08-23T11:19:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b228cb1602ead97be5449cb87b68addea0e8243c'/>
<id>urn:sha1:b228cb1602ead97be5449cb87b68addea0e8243c</id>
<content type='text'>
Remove forcible recovery trigger and put it as a normal devlink
callback.

This allows user to enable/disable it via

    devlink health set pci/0000:03:00.0 reporter fw_fatal auto_recover false

Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alexander Lobakin &lt;alobakin@marvell.com&gt;
Signed-off-by: Michal Kalderon &lt;michal.kalderon@marvell.com&gt;
Acked-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed: use devlink logic to report errors</title>
<updated>2020-08-25T01:01:33Z</updated>
<author>
<name>Igor Russkikh</name>
<email>irusskikh@marvell.com</email>
</author>
<published>2020-08-23T11:19:30Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4f5a8db27eb926616500f827d9b81dc40595b0ef'/>
<id>urn:sha1:4f5a8db27eb926616500f827d9b81dc40595b0ef</id>
<content type='text'>
Use devlink_health_report to push error indications.
We implement this in qede via callback function to make it possible
to reuse the same for other drivers sitting on top of qed in future.

Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alexander Lobakin &lt;alobakin@marvell.com&gt;
Signed-off-by: Michal Kalderon &lt;michal.kalderon@marvell.com&gt;
Acked-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed: health reporter init deinit seq</title>
<updated>2020-08-25T01:01:32Z</updated>
<author>
<name>Igor Russkikh</name>
<email>irusskikh@marvell.com</email>
</author>
<published>2020-08-23T11:19:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9524067b9a91dce2a096a0de7727c217495e3d2e'/>
<id>urn:sha1:9524067b9a91dce2a096a0de7727c217495e3d2e</id>
<content type='text'>
Here we declare health reporter ops (empty for now)
and register these in qed probe and remove callbacks.

This way we get devlink attached to all kind of qed* PCI
device entities: networking or storage offload entity.

Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alexander Lobakin &lt;alobakin@marvell.com&gt;
Signed-off-by: Michal Kalderon &lt;michal.kalderon@marvell.com&gt;
Reviewed-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>qed: implement devlink info request</title>
<updated>2020-08-25T01:01:32Z</updated>
<author>
<name>Igor Russkikh</name>
<email>irusskikh@marvell.com</email>
</author>
<published>2020-08-23T11:19:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=53916a67c3306bf3afbd1cbf6ea847aa0ef3c21c'/>
<id>urn:sha1:53916a67c3306bf3afbd1cbf6ea847aa0ef3c21c</id>
<content type='text'>
Here we return existing fw &amp; mfw versions, we also fetch device's
serial number:

~$ sudo ~/iproute2/devlink/devlink  dev info
pci/0000:01:00.1:
  driver qed
  board.serial_number REE1915E44552
  versions:
      running:
        fw.app 8.42.2.0
      stored:
        fw.mgmt 8.52.10.0

MFW and FW are different firmwares on device.
Management is a firmware responsible for link configuration and
various control plane features. Its permanent and resides in NVM.

Running FW (or fastpath FW) is an embedded microprogram implementing
all the packet processing, offloads, etc. This FW is being loaded
on each start by the driver from FW binary blob.

The base device specific structure (qed_dev_info) was not directly
available to the base driver before. Thus, here we create and store
a private copy of this structure in qed_dev root object to
access the data.

Signed-off-by: Igor Russkikh &lt;irusskikh@marvell.com&gt;
Signed-off-by: Alexander Lobakin &lt;alobakin@marvell.com&gt;
Signed-off-by: Michal Kalderon &lt;michal.kalderon@marvell.com&gt;
Reviewed-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
