Re: [PATCH 3/3] firmware loader: allow distribution to choose default search paths

From: Takashi Iwai
Date: Wed Jun 05 2013 - 08:45:08 EST


At Wed, 5 Jun 2013 20:36:19 +0800,
Ming Lei wrote:
>
> On Wed, Jun 5, 2013 at 7:57 PM, Takashi Iwai <tiwai@xxxxxxx> wrote:
> >
> > Hmm, separating with semicolons isn't so common, but we can live with
>
> Looks there are seldom such usage patterns in kernel, so could you let me
> know which separator is more common?

$PATH uses colon, but I don't know of many others.

> > it. I thought the previous loop can be kept but just pass each member
> > to fw_get_file_firmware() unconditionally. This will reduce the
> > changes, I guess. But it's just a matter of taste, here is no
> > critically hot path, after all.
>
> Yes, aother way is to move 'fw_path_para' out of fw_path[], and only
> let fw_get_fw_file_from_paths() deal with 'fw_path_para' and
> CONFIG_FW_CUSTOMIZED_PATH. Looks it is still clean.

Why not just pass all strings to fw_get_fw_file_from_paths(), no
matter whether it's a single or multiple path strings?

static const char * const fw_path[] = {
fw_path_para,
#ifdef CONFIG_FW_CUSTOMIZED_PATH
CONFIG_FW_CUSTOMIZED_PATH,
#endif
"/lib/firmware/updates/" UTS_RELEASE,
"/lib/firmware/updates",
"/lib/firmware/" UTS_RELEASE,
};

....

for (i = 0; i < ARRAY_SIZE(fw_path); i++) {
/* skip the unset customized path */
if (!fw_path[i][0])
continue;
success = fw_get_fw_file_from_paths(fw_path[i], path, buf);
if (success)
break;
}

>
>
> >> + if (strstr(path, ".."))
> >> + continue;
> >
> > I expect you'll prepare this path sanity check part in a separate
> > patch, right? It's basically independent from the new kconfig.
>
> Yes, it will be submitted as another patch, also I plan to add
> the check on firmware_name in _request_firmware_prepare()
> so that the similar problem can be found earlier.

Sounds good.


Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/