All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	open list <linux-kernel@vger.kernel.org>,
	linux-security-module@vger.kernel.org,
	tpmdd-devel@lists.sourceforge.net
Subject: Re: [tpmdd-devel] [PATCH RFC v2 5/5] tpm2: expose resource manager via a device link /dev/tpms<n>
Date: Fri, 13 Jan 2017 10:11:02 -0800	[thread overview]
Message-ID: <1484331062.2527.22.camel@HansenPartnership.com> (raw)
In-Reply-To: <20170113180110.GA31397@obsidianresearch.com>

On Fri, 2017-01-13 at 11:01 -0700, Jason Gunthorpe wrote:
> On Fri, Jan 13, 2017 at 09:40:08AM -0800, James Bottomley wrote:
> > On Fri, 2017-01-13 at 10:25 -0700, Jason Gunthorpe wrote:
> > > On Thu, Jan 12, 2017 at 10:56:28PM +0200, Jarkko Sakkinen wrote:
> > > 
> > > > >  dev_t tpm_devt;
> > > > 
> > > > But they should have different major device numbers.
> > > 
> > > major/minors don't really matter these days since they are
> > > dynamic
> > 
> > Right, although we have this weird piece of code:
> > 
> > 
> > 	if (chip->dev_num == 0)
> > 		chip->dev.devt = MKDEV(MISC_MAJOR, TPM_MINOR);
> > 	else
> > 		chip->dev.devt = MKDEV(MAJOR(tpm_devt), chip->dev_num);
> > 
> > So the first TPM device gets the MISC_MAJOR with TPM_MINOR and the
> > rest
> > get the dynamic major/minor.  It means when you do an ls on a
> > complex
> > system you get something like:
> 
> The TPM has always used a static major/minor for tpm0 and dynamic for
> the following. Originally this used a misc_device and did:
> 
>         } else if (chip->dev_num == 0)
>                 chip->vendor.miscdev.minor = TPM_MINOR;
>         else
>                 chip->vendor.miscdev.minor = MISC_DYNAMIC_MINOR;
> 
> When we moved to struct device the !0 tpms got a dynamic major as
> well.
> 
> I don't really know what the broad kernel feeling is on historical
> major/minor stability - this was mainly continuing what had always
> been done in this code for pre-udev userspace compatibility.
> 
> Does it harm anything?

Devices are either supposed to be static, so you can rely on the
major/minor without needing udev or fully dynamic, so you need udev to
get the nodes and you may not rely on the major/minor number.  The
potential harm is that we're neither one nor the other, which sounds
like an accident waiting to happen if someone decides to rely on our
numbers but gets the wrong node.  Chances are that, since most linux
devices are fully dynamic, no-one ever thinks of relying on fixed
major/minor numbers anymore, so everyone avoids this banana skin and
perhaps it doesn't matter.

James

  reply	other threads:[~2017-01-13 18:11 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-12 17:46 [PATCH RFC v2 0/5] RFC: in-kernel resource manager Jarkko Sakkinen
2017-01-12 17:46 ` Jarkko Sakkinen
     [not found] ` <20170112174612.9314-1-jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-01-12 17:46   ` [PATCH RFC v2 1/5] tpm: validate TPM 2.0 commands Jarkko Sakkinen
2017-01-12 17:46     ` Jarkko Sakkinen
2017-01-12 20:34     ` Jarkko Sakkinen
2017-01-12 17:46   ` [PATCH RFC v2 2/5] tpm: export tpm2_flush_context_cmd Jarkko Sakkinen
2017-01-12 17:46     ` Jarkko Sakkinen
2017-01-12 17:46   ` [PATCH RFC v2 3/5] tpm: infrastructure for TPM spaces Jarkko Sakkinen
2017-01-12 17:46     ` Jarkko Sakkinen
     [not found]     ` <20170112174612.9314-4-jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-01-12 18:38       ` James Bottomley
2017-01-12 18:38         ` [tpmdd-devel] " James Bottomley
     [not found]         ` <1484246310.2417.15.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-01-12 20:31           ` Jarkko Sakkinen
2017-01-12 20:31             ` [tpmdd-devel] " Jarkko Sakkinen
2017-01-12 20:50       ` Jarkko Sakkinen
2017-01-12 20:50         ` Jarkko Sakkinen
2017-01-12 20:38     ` [tpmdd-devel] " James Bottomley
2017-01-13 16:28       ` Jarkko Sakkinen
2017-01-14 17:53         ` Ken Goldman
2017-01-16  9:52           ` Jarkko Sakkinen
2017-01-16  9:52             ` [tpmdd-devel] " Jarkko Sakkinen
2017-01-13  1:17     ` James Bottomley
2017-01-13 16:31       ` Jarkko Sakkinen
2017-01-16  9:09       ` Jarkko Sakkinen
2017-01-16 14:24         ` James Bottomley
2017-01-16 14:48           ` Jarkko Sakkinen
2017-01-16 14:58             ` James Bottomley
2017-01-16 16:52               ` Jarkko Sakkinen
2017-01-12 17:46   ` [PATCH RFC v2 4/5] tpm: split out tpm-dev.c into tpm-dev.c and tpm-common-dev.c Jarkko Sakkinen
2017-01-12 17:46     ` Jarkko Sakkinen
2017-01-13 19:18     ` [tpmdd-devel] " James Bottomley
2017-01-12 17:46   ` [PATCH RFC v2 5/5] tpm2: expose resource manager via a device link /dev/tpms<n> Jarkko Sakkinen
2017-01-12 17:46     ` Jarkko Sakkinen
     [not found]     ` <20170112174612.9314-6-jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2017-01-12 18:39       ` Jason Gunthorpe
2017-01-12 18:39         ` Jason Gunthorpe
2017-01-13 19:20         ` [tpmdd-devel] " James Bottomley
     [not found]           ` <1484335247.2527.28.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2017-01-13 19:47             ` Jason Gunthorpe
2017-01-13 19:47               ` [tpmdd-devel] " Jason Gunthorpe
     [not found]               ` <20170113194730.GA32214-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-01-13 20:02                 ` James Bottomley
2017-01-13 20:02                   ` [tpmdd-devel] " James Bottomley
2017-01-13 21:23                   ` Jason Gunthorpe
2017-01-14  1:10                     ` James Bottomley
2017-01-16 16:54                       ` Jason Gunthorpe
2017-01-12 19:46       ` James Bottomley
2017-01-12 19:46         ` [tpmdd-devel] " James Bottomley
2017-01-12 20:56     ` Jarkko Sakkinen
2017-01-13 17:25       ` Jason Gunthorpe
     [not found]         ` <20170113172537.GA31125-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-01-13 17:40           ` James Bottomley
2017-01-13 17:40             ` [tpmdd-devel] " James Bottomley
2017-01-13 18:01             ` Jason Gunthorpe
2017-01-13 18:11               ` James Bottomley [this message]
2017-01-16  9:45             ` Jarkko Sakkinen

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=1484331062.2527.22.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=tpmdd-devel@lists.sourceforge.net \
    /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.