netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Kumar, M Chetan" <m.chetan.kumar@linux.intel.com>
To: Jiri Pirko <jiri@resnulli.us>
Cc: Jakub Kicinski <kuba@kernel.org>,
	netdev@vger.kernel.org, davem@davemloft.net, idosch@nvidia.com,
	pabeni@redhat.com, edumazet@google.com, saeedm@nvidia.com,
	jacob.e.keller@intel.com, vikas.gupta@broadcom.com,
	gospo@broadcom.com, chandrashekar.devegowda@intel.com,
	soumya.prakash.mishra@intel.com, linuxwwan@intel.com,
	hua.yang@mediatek.com
Subject: Re: [patch net-next 0/4] net: devlink: sync flash and dev info command
Date: Fri, 26 Aug 2022 14:24:52 +0530	[thread overview]
Message-ID: <474077db-df42-6791-0253-74ca6e0d7b34@linux.intel.com> (raw)
In-Reply-To: <YwXliFeA9f/j9Ud9@nanopsycho>

Looped hua.yang@mediatek.com to email.

On 8/24/2022 2:17 PM, Jiri Pirko wrote:
> Tue, Aug 23, 2022 at 06:29:48PM CEST, m.chetan.kumar@linux.intel.com wrote:
>> On 8/23/2022 5:50 PM, Jiri Pirko wrote:
>>> Tue, Aug 23, 2022 at 12:09:06PM CEST, m.chetan.kumar@linux.intel.com wrote:
>>>> On 8/19/2022 1:55 PM, Jiri Pirko wrote:
>>>>> Fri, Aug 19, 2022 at 04:49:40AM CEST, kuba@kernel.org wrote:
>>>>>> On Thu, 18 Aug 2022 15:00:38 +0200 Jiri Pirko wrote:
>>>>>>> Currently it is up to the driver what versions to expose and what flash
>>>>>>> update component names to accept. This is inconsistent. Thankfully, only
>>>>>>> netdevsim is currently using components, so it is a good time
>>>>>>> to sanitize this.
>>>>>>
>>>>>> Please take a look at recently merged code - 5417197dd516 ("Merge branch
>>>>>> 'wwan-t7xx-fw-flashing-and-coredump-support'"), I don't see any versions
>>>>>> there so I think you're gonna break them?
>>>>>
>>>>> Ah, crap. Too late :/ They are passing the string to FW (cmd is
>>>>> the component name here):
>>>>> static int t7xx_devlink_fb_flash(const char *cmd, struct t7xx_port *port)
>>>>> {
>>>>>            char flash_command[T7XX_FB_COMMAND_SIZE];
>>>>>
>>>>>            snprintf(flash_command, sizeof(flash_command), "%s:%s", T7XX_FB_CMD_FLASH, cmd);
>>>>>            return t7xx_devlink_fb_raw_command(flash_command, port, NULL);
>>>>> }
>>>>>
>>>>> This breaks the pairing with info.versions assumption. Any possibility
>>>>> to revert this and let them redo?
>>>>>
>>>>> Ccing m.chetan.kumar@linux.intel.com, chandrashekar.devegowda@intel.com,
>>>>> soumya.prakash.mishra@intel.com
>>>>>
>>>>> Guys, could you expose one version for component you are flashing? We
>>>>> need 1:1 mapping here.
>>>>
>>>> Thanks for the heads-up.
>>>> I had a look at the patch & my understanding is driver is supposed
>>>> to expose flash update component name & version details via
>>>> devlink_info_version_running_put_ext().
>>>
>>> Yes.
>>>
>>>>
>>>> Is version value a must ? Internally version value is not used for making any
>>>> decision so in case driver/device doesn't support it should be ok to pass
>>>> empty string ?
>>>
>>> No.
>>>
>>>>
>>>> Ex:
>>>> devlink_info_version_running_put_ext(req, "fw", "",
>>>> DEVLINK_INFO_VERSION_TYPE_COMPONENT);
>>>>
>>>> One observation:-
>>>> While testing I noticed "flash_components:" is not getting displayed as
>>>> mentioned in cover note.
>>>
>>> You need iproute2 patch for that which is still in my queue:
>>> https://github.com/jpirko/iproute2_mlxsw/commit/e1d36409362257cc42a435f6695d2058ab7ab683
>>
>> Thanks. After applying this patch "flash_components" details are getting
>> displayed.
>>
>> Another observation is if NULL is passed for version_value there is a crash.
> 
> So don't pass NULL :)
> 
> 
>> Below is the backtrace.
>>
>> 3187.556637] BUG: kernel NULL pointer dereference, address: 0000000000000000
>> [ 3187.556659] #PF: supervisor read access in kernel mode
>> [ 3187.556666] #PF: error_code(0x0000) - not-present page
>> 3187.556791] Call Trace:
>> [ 3187.556796]  <TASK>
>> [ 3187.556801]  ? devlink_info_version_put+0x112/0x1d0
>> [ 3187.556823]  ? __nla_put+0x20/0x30
>> [ 3187.556833]  devlink_info_version_running_put_ext+0x1c/0x30
>> [ 3187.556851]  t7xx_devlink_info_get+0x37/0x40 [mtk_t7xx]
>> [ 3187.556880]  devlink_nl_info_fill.constprop.0+0xa1/0x120
>> [ 3187.556892]  devlink_nl_cmd_info_get_dumpit+0xa8/0x140
>> [ 3187.556901]  netlink_dump+0x1a3/0x340
>> [ 3187.556913]  __netlink_dump_start+0x1d0/0x290
>>
>> Is driver expected to set version number along with component name ?
> 
> Of course.
> 
> 
>>
>> mtk_t7xx WWAN driver is using the devlink interface for flashing the fw to
>> WWAN device. If WWAN device is not capable of supporting the versioning for
>> each component how should we handle ? Please suggest.
> 
> The user should have a visibility about what version is currently
> stored/running in the device. You should expose it.

If the only intention of this component version is to give a visbility 
to user, the WWAN Driver exposes the AT & MBIM control ports. 
Applications like Modem Manager uses AT/MBIM commands to obtain fw 
version info.

So would it be ok to keep component version as an optional for WWAN 
drivers ?

-- 
Chetan

  reply	other threads:[~2022-08-26  8:55 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-18 13:00 [patch net-next 0/4] net: devlink: sync flash and dev info commands Jiri Pirko
2022-08-18 13:00 ` [patch net-next 1/4] net: devlink: extend info_get() version put to indicate a flash component Jiri Pirko
2022-08-18 21:23   ` Keller, Jacob E
2022-08-19  8:10     ` Jiri Pirko
2022-08-18 13:00 ` [patch net-next 2/4] net: devlink: expose the info about version representing a component Jiri Pirko
2022-08-18 13:00 ` [patch net-next 3/4] netdevsim: expose version of default flash target Jiri Pirko
2022-08-18 13:00 ` [patch net-next 4/4] net: devlink: expose default flash update target Jiri Pirko
2022-08-19  2:53   ` Jakub Kicinski
2022-08-19  8:12     ` Jiri Pirko
2022-08-19 21:54       ` Jakub Kicinski
2022-08-20  5:44         ` Jiri Pirko
2022-08-20 20:11           ` Jakub Kicinski
2022-08-19 20:59     ` Keller, Jacob E
2022-08-19 21:45       ` Jakub Kicinski
2022-08-19 22:07         ` Keller, Jacob E
2022-08-20  5:46           ` Jiri Pirko
2022-08-22 17:09             ` Keller, Jacob E
2022-08-23  6:38               ` Jiri Pirko
2022-08-18 21:16 ` [patch net-next 0/4] net: devlink: sync flash and dev info commands Keller, Jacob E
2022-08-19  2:49 ` Jakub Kicinski
2022-08-19  8:25   ` [patch net-next 0/4] net: devlink: sync flash and dev info command Jiri Pirko
2022-08-23 10:09     ` Kumar, M Chetan
2022-08-23 12:20       ` Jiri Pirko
2022-08-23 16:29         ` Kumar, M Chetan
2022-08-24  8:47           ` Jiri Pirko
2022-08-26  8:54             ` Kumar, M Chetan [this message]
2022-08-26 11:01               ` Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=474077db-df42-6791-0253-74ca6e0d7b34@linux.intel.com \
    --to=m.chetan.kumar@linux.intel.com \
    --cc=chandrashekar.devegowda@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gospo@broadcom.com \
    --cc=hua.yang@mediatek.com \
    --cc=idosch@nvidia.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=linuxwwan@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.com \
    --cc=soumya.prakash.mishra@intel.com \
    --cc=vikas.gupta@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).