Re: [PATCHv3 1/3] firmware_class: move NO_CACHE from private to driver_data_req_params

From: Greg KH
Date: Fri Jun 23 2017 - 16:25:25 EST


On Fri, Jun 16, 2017 at 05:58:29PM -0500, yi1.li@xxxxxxxxxxxxxxx wrote:
> From: Yi Li <yi1.li@xxxxxxxxxxxxxxx>
>
> This adds DRIVER_DATA_REQ_NO_CACHE flag with .req flag under struct
> driver_data_req_params. When this flag is set, the driver_data driver
> will not cache the firmware during PM cycle, which is expensive.

Why is it "expensive"? What do you mean by this? Caching was added to
help things out, why would you not want it?

> It will be used by streaming case and other drivers which implement
> their own cache thing.

Why would a driver implement their own cache? And what do you mean by
"streaming case"?

Again, as I said to Luis's patches, you need to show that the added code
is actually needed. You only convert one driver to this new interface
in this series, is that the only user of it? If so, that seems
excessive don't you think?

> Also added the debugfs interface to selftest.

In this patch? Why not have it be in a separate patch like it should
be?

> diff --git a/drivers/base/firmware_class-dbg.c b/drivers/base/firmware_class-dbg.c
> new file mode 100644
> index 0000000..102a4cd
> --- /dev/null
> +++ b/drivers/base/firmware_class-dbg.c
> @@ -0,0 +1,108 @@
> +/*
> + * Copyright (c) 2017 by Yi Li <yi1.li@xxxxxxxxxxxxxxx>
> + *
> + */
> +/* This is part of firmware_class.c for testing firmware cache */
> +
> +#ifndef CONFIG_TEST_DRIVER_DATA
> +static inline void create_debug_files(struct firmware_cache *cache) { }
> +static inline void remove_debug_files(struct firmware_cache *cache) { }
> +#else
> +#include <linux/debugfs.h>
> +#include <linux/seq_file.h>

This implies you are including a .c file into another one. Please never
do that.

> - /* don't cache firmware handled without uevent */

Um, I thought we didn't have this feature already? But this implies
that we do have it, so what exactly does this patch do?

thanks,

greg k-h