All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Rajat Jain <rajatja@google.com>
Cc: Andreas Noever <andreas.noever@gmail.com>,
	Michael Jamet <michael.jamet@intel.com>,
	Yehezkel Bernat <yehezkelshb@gmail.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	rajatxjain@gmail.com
Subject: Re: [PATCH v2] thunderbolt: For dev authorization changes, include the actual event in udev change notification
Date: Mon, 26 Jul 2021 16:40:37 +0300	[thread overview]
Message-ID: <YP67VTcyFhro9wyX@lahna> (raw)
In-Reply-To: <CACK8Z6GsNi9FVUdqdfj0vUFj0mJtMQ_pm4aPH8d3ozsa5Zswhg@mail.gmail.com>

Hi Rajat,

On Fri, Jul 23, 2021 at 05:41:58PM -0700, Rajat Jain wrote:
> (fixing the typo in the email ID for Greg).
> 
> On Fri, Jul 23, 2021 at 5:40 PM Rajat Jain <rajatja@google.com> wrote:
> >
> > For security, we would like to monitor and track when the thunderbolt
> > devices are authorized and deauthorized (i.e. when the thunderbolt sysfs
> > "authorized" attribute changes). Currently the userspace gets a udev
> > change notification when there is a change, but the state may have
> > changed (again) by the time we look at the authorized attribute in
> > sysfs. So an authorization event may go unnoticed. Thus make it easier
> > by informing the actual change (new value of authorized attribute) in
> > the udev change notification.
> >
> > The change is included as a key value "authorized=<val>" where <val>
> > is the new value of sysfs attribute "authorized", and is described at
> > Documentation/ABI/testing/sysfs-bus-thunderbolt under
> > /sys/bus/thunderbolt/devices/.../authorized

Looking good, a couple of minor nits below.

> >
> > Signed-off-by: Rajat Jain <rajatja@google.com>
> > ---
> >  drivers/thunderbolt/switch.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
> > index 83b1ef3d5d03..382128dfbdee 100644
> > --- a/drivers/thunderbolt/switch.c
> > +++ b/drivers/thunderbolt/switch.c
> > @@ -1499,6 +1499,7 @@ static ssize_t authorized_show(struct device *dev,
> >  static int disapprove_switch(struct device *dev, void *not_used)
> >  {
> >         struct tb_switch *sw;
> > +       char *envp[] = { "AUTHORIZED=0", NULL };

Can you move arrange this to be before sw, like:

	char *envp[] = { "AUTHORIZED=0", NULL };
	struct tb_switch *sw;

> >
> >         sw = tb_to_switch(dev);
> >         if (sw && sw->authorized) {
> > @@ -1514,7 +1515,7 @@ static int disapprove_switch(struct device *dev, void *not_used)
> >                         return ret;
> >
> >                 sw->authorized = 0;
> > -               kobject_uevent(&sw->dev.kobj, KOBJ_CHANGE);
> > +               kobject_uevent_env(&sw->dev.kobj, KOBJ_CHANGE, envp);
> >         }
> >
> >         return 0;
> > @@ -1523,6 +1524,8 @@ static int disapprove_switch(struct device *dev, void *not_used)
> >  static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val)
> >  {
> >         int ret = -EINVAL;
> > +       char envp_string[13];
> > +       char *envp[] = { envp_string, NULL };

Ditto.

> >
> >         if (!mutex_trylock(&sw->tb->lock))
> >                 return restart_syscall();
> > @@ -1560,7 +1563,8 @@ static int tb_switch_set_authorized(struct tb_switch *sw, unsigned int val)
> >         if (!ret) {
> >                 sw->authorized = val;
> >                 /* Notify status change to the userspace */
> > -               kobject_uevent(&sw->dev.kobj, KOBJ_CHANGE);
> > +               sprintf(envp_string, "AUTHORIZED=%u", sw->authorized);
> > +               kobject_uevent_env(&sw->dev.kobj, KOBJ_CHANGE, envp);
> >         }
> >
> >  unlock:
> > --
> > 2.32.0.432.gabb21c7263-goog
> >

  reply	other threads:[~2021-07-26 13:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-24  0:40 [PATCH v2] thunderbolt: For dev authorization changes, include the actual event in udev change notification Rajat Jain
2021-07-24  0:41 ` Rajat Jain
2021-07-26 13:40   ` Mika Westerberg [this message]
2021-07-30 23:55     ` Rajat Jain
2021-07-24  6:48 ` Greg KH

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=YP67VTcyFhro9wyX@lahna \
    --to=mika.westerberg@linux.intel.com \
    --cc=andreas.noever@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=michael.jamet@intel.com \
    --cc=rajatja@google.com \
    --cc=rajatxjain@gmail.com \
    --cc=yehezkelshb@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.