linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] thunderbolt: Correct access permissions for active NVM contents
@ 2017-06-29 11:19 Mika Westerberg
  2017-07-05  9:55 ` Andreas Noever
  0 siblings, 1 reply; 2+ messages in thread
From: Mika Westerberg @ 2017-06-29 11:19 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Andreas Noever, Michael Jamet, Yehezkel Bernat, Mika Westerberg,
	linux-kernel

Firmware upgrade tools that decide which NVM image should be uploaded to
the Thunderbolt controller need to access active parts of the NVM even
if they are not run as root. The information in active NVM is not
considered security critical so we can use the default permissions set
by the NVMem framework.

Writing the NVM image is still left as root only operation.

While there mark the active NVM as read-only in the filesystem.

Reported-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
Hi,

This applies on top of my Thunderbolt patches in Greg's char-misc-next
branch.

Thanks.

 drivers/thunderbolt/switch.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index ab3e8f410444..40219a706309 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -281,9 +281,11 @@ static struct nvmem_device *register_nvmem(struct tb_switch *sw, int id,
 	if (active) {
 		config.name = "nvm_active";
 		config.reg_read = tb_switch_nvm_read;
+		config.read_only = true;
 	} else {
 		config.name = "nvm_non_active";
 		config.reg_write = tb_switch_nvm_write;
+		config.root_only = true;
 	}
 
 	config.id = id;
@@ -292,7 +294,6 @@ static struct nvmem_device *register_nvmem(struct tb_switch *sw, int id,
 	config.size = size;
 	config.dev = &sw->dev;
 	config.owner = THIS_MODULE;
-	config.root_only = true;
 	config.priv = sw;
 
 	return nvmem_register(&config);
-- 
2.11.0

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

* Re: [PATCH] thunderbolt: Correct access permissions for active NVM contents
  2017-06-29 11:19 [PATCH] thunderbolt: Correct access permissions for active NVM contents Mika Westerberg
@ 2017-07-05  9:55 ` Andreas Noever
  0 siblings, 0 replies; 2+ messages in thread
From: Andreas Noever @ 2017-07-05  9:55 UTC (permalink / raw)
  To: Mika Westerberg
  Cc: Greg Kroah-Hartman, Michael Jamet, Yehezkel Bernat, linux-kernel

On Thu, Jun 29, 2017 at 9:19 PM, Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
> Firmware upgrade tools that decide which NVM image should be uploaded to
> the Thunderbolt controller need to access active parts of the NVM even
> if they are not run as root. The information in active NVM is not
> considered security critical so we can use the default permissions set
> by the NVMem framework.
>
> Writing the NVM image is still left as root only operation.
>
> While there mark the active NVM as read-only in the filesystem.
>
> Reported-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>

Sorry for the late reply (I'm on vacation :P).

Signed-off-by: Andreas Noever <andreas.noever@gmail.com>

> ---
> Hi,
>
> This applies on top of my Thunderbolt patches in Greg's char-misc-next
> branch.
>
> Thanks.
>
>  drivers/thunderbolt/switch.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
> index ab3e8f410444..40219a706309 100644
> --- a/drivers/thunderbolt/switch.c
> +++ b/drivers/thunderbolt/switch.c
> @@ -281,9 +281,11 @@ static struct nvmem_device *register_nvmem(struct tb_switch *sw, int id,
>         if (active) {
>                 config.name = "nvm_active";
>                 config.reg_read = tb_switch_nvm_read;
> +               config.read_only = true;
>         } else {
>                 config.name = "nvm_non_active";
>                 config.reg_write = tb_switch_nvm_write;
> +               config.root_only = true;
>         }
>
>         config.id = id;
> @@ -292,7 +294,6 @@ static struct nvmem_device *register_nvmem(struct tb_switch *sw, int id,
>         config.size = size;
>         config.dev = &sw->dev;
>         config.owner = THIS_MODULE;
> -       config.root_only = true;
>         config.priv = sw;
>
>         return nvmem_register(&config);
> --
> 2.11.0
>

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

end of thread, other threads:[~2017-07-05  9:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-29 11:19 [PATCH] thunderbolt: Correct access permissions for active NVM contents Mika Westerberg
2017-07-05  9:55 ` Andreas Noever

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).