netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Cc: Hsin-chen Chuang <chharry@google.com>,
	linux-bluetooth@vger.kernel.org,
	chromeos-bluetooth-upstreaming@chromium.org,
	Hsin-chen Chuang <chharry@chromium.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	Ying Hsu <yinghsu@chromium.org>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH v4 1/3] Bluetooth: Fix possible race with userspace of sysfs isoc_alt
Date: Thu, 13 Feb 2025 15:35:45 +0100	[thread overview]
Message-ID: <2025021347-exalted-calculate-b313@gregkh> (raw)
In-Reply-To: <CABBYNZL4tEBTT3Hrf3JUGNuseLg1SNLmazo88EitmMfhUWUQxw@mail.gmail.com>

On Thu, Feb 13, 2025 at 09:22:28AM -0500, Luiz Augusto von Dentz wrote:
> Hi Greg,
> 
> On Thu, Feb 13, 2025 at 8:45 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > On Thu, Feb 13, 2025 at 09:33:34PM +0800, Hsin-chen Chuang wrote:
> > > On Thu, Feb 13, 2025 at 8:10 PM Greg KH <gregkh@linuxfoundation.org> wrote:
> > > >
> > > > A: http://en.wikipedia.org/wiki/Top_post
> > > > Q: Were do I find info about this thing called top-posting?
> > > > A: Because it messes up the order in which people normally read text.
> > > > Q: Why is top-posting such a bad thing?
> > > > A: Top-posting.
> > > > Q: What is the most annoying thing in e-mail?
> > > >
> > > > A: No.
> > > > Q: Should I include quotations after my reply?
> > > >
> > > > http://daringfireball.net/2007/07/on_top
> > > >
> > > > On Thu, Feb 13, 2025 at 07:57:15PM +0800, Hsin-chen Chuang wrote:
> > > > > The btusb driver data is allocated by devm_kzalloc and is
> > > > > automatically freed on driver detach, so I guess we don't have
> > > > > anything to do here.
> > > >
> > > > What?  A struct device should NEVER be allocated with devm_kzalloc.
> > > > That's just not going to work at all.
> > >
> > > Noted. Perhaps that needs to be refactored together.
> > >
> > > >
> > > > > Or perhaps we should move btusb_disconnect's content here? Luiz, what
> > > > > do you think?
> > > >
> > > > I think something is really wrong here.  Why are you adding a new struct
> > > > device to the system?  What requires that?  What is this new device
> > > > going to be used for?
> > >
> > > The new device is only for exposing a new sysfs attribute.
> >
> > That feels crazy.
> >
> > > So originally we had a device called hci_dev, indicating the
> > > implementation of the Bluetooth HCI layer. hci_dev is directly the
> > > child of the usb_interface (the Bluetooth chip connected through USB).
> > > Now I would like to add an attribute for something that's not defined
> > > in the HCI layer, but lower layer only in Bluetooth USB.
> > > Thus we want to rephrase the structure: usb_interface -> btusb (new
> > > device) -> hci_dev, and then we could place the new attribute in the
> > > new device.
> > >
> > > Basically I kept the memory management in btusb unchanged in this
> > > patch, as the new device is only used for a new attribute.
> > > Would you suggest we revise the memory management since we added a
> > > device in this module?
> >
> > If you add a new device in the tree, it HAS to work properly with the
> > driver core (i.e. life cycles are unique, you can't have empty release
> > functions, etc.)  Put it on the proper bus it belongs to, bind the
> > needed drivers to it, and have it work that way, don't make a "fake"
> > device for no good reason.
> 
> Well we could just introduce it to USB device, since alternate setting
> is a concept that is coming from there, but apparently the likes of
> /sys/bus/usb/devices/usbX/bAlternateSetting is read-only, some
> Bluetooth profiles (HFP) requires switching the alternate setting and
> because Google is switching to handle this via userspace thus why
> there was this request to add a new sysfs to control it.

That's fine, just don't add devices where there shouldn't be devices, or
if you do, make them actually work properly (i.e. do NOT have empty
release callbacks...)

If you want to switch alternate settings in a USB device, do it the
normal way from userspace that has been there for decades!  Don't make
up some other random sysfs file for this please, that would be crazy,
and wrong.

So what's wrong with the current api we have today that doesn't work for
bluetooth devices?

thanks,

greg k-h

  reply	other threads:[~2025-02-13 15:39 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-13  3:43 [PATCH v4 1/3] Bluetooth: Fix possible race with userspace of sysfs isoc_alt Hsin-chen Chuang
2025-02-13 10:01 ` Greg KH
2025-02-13 11:57   ` Hsin-chen Chuang
2025-02-13 12:10     ` Greg KH
2025-02-13 13:33       ` Hsin-chen Chuang
2025-02-13 13:45         ` Greg KH
2025-02-13 14:06           ` Hsin-chen Chuang
2025-02-13 14:22           ` Luiz Augusto von Dentz
2025-02-13 14:35             ` Greg KH [this message]
2025-02-13 15:56               ` Luiz Augusto von Dentz
2025-02-13 16:05                 ` 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=2025021347-exalted-calculate-b313@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=chharry@chromium.org \
    --cc=chharry@google.com \
    --cc=chromeos-bluetooth-upstreaming@chromium.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=johan.hedberg@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    --cc=marcel@holtmann.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=yinghsu@chromium.org \
    /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).