All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Finn Thain <fthain@telegraphics.com.au>
Cc: Michael Schmitz <schmitzmic@gmail.com>,
	Andreas Schwab <schwab@linux-m68k.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 08/12] macintosh/via-pmu68k: Don't load driver on unsupported hardware
Date: Sun, 10 Jun 2018 10:29:45 +0200	[thread overview]
Message-ID: <CAMuHMdUHnFKzhe3x3=bG63HwnM7psu7AA=nba8q+nTDnxBAryw@mail.gmail.com> (raw)
In-Reply-To: <alpine.LNX.2.21.1806092140410.26@nippy.intranet>

Hi Finn,

On Sat, Jun 9, 2018 at 2:20 PM Finn Thain <fthain@telegraphics.com.au> wrote:
> > > > Is this enum used by any user space code? If so, perhaps rather
> > > > leave the PMU_68K_V1 in there to avoid upsetting that?
> > >
> > > It also changes the value of PMU_68K_V2, which is an ABI break.
> >
> > Yes, that's what I worry about - but do we know of any users of that
> > particular interface?
>
> There is no ABI issue AFAIK. The value of pmu_kind is visible to userland
> only on powerpc. /dev/pmu and /proc/pmu/* do not exist on m68k. This patch
> series will make these UAPIs available on m68k, and for that reason I've
> chosen the value PMU_UNKNOWN for pmu_kind.

While /dev/pmu and /proc/pmu/* may not exist on m68k, definitions in
include/uapi/linux/pmu.h are part of the ABI, and cannot be changed or removed,
unless we are 100% sure there are no users.

If I would write a program interfacing with /dev/pmu and /proc/pmu/*, and
needing to check the PMU type, it would have a switch() statement with
all existing values defined in <linux/pmu.h>. So that would become broken
by your change.

Hence the enum is append-only.

> New pmu_kind values can be defined as and when the need arises. But that
> would imply a useful classification scheme for pre-PCI powerbooks, and I
> don't know what that scheme will look like because at this stage there is
> neither userland nor kernel code to support backlight, buttons and battery
> for pre-PCI powerbooks.
>
> In anycase, the "v1" and "v2" scheme is obviously inadequate when you
> consider the range of m68k powerbook models. Also, consider the

New values can be added at the bottom.

> out-of-tree adaptation of via-pmu by the Nubus-PMac project, which has
> this ABI break:
>
> diff --git a/include/linux/pmu.h b/include/linux/pmu.h
> index cafe98d9694..9882a185a52 100644
> --- a/include/linux/pmu.h
> +++ b/include/linux/pmu.h
> @@ -90,6 +90,7 @@ enum {
>          PMU_HEATHROW_BASED,     /* PowerBook G3 series */
>          PMU_PADDINGTON_BASED,   /* 1999 PowerBook G3 */
>          PMU_KEYLARGO_BASED,     /* Core99 motherboard (PMU99) */
> +        PMU_NUBUS_BASED,        /* 1400, 2300, 5300 */
>          PMU_68K_V1,             /* 68K PMU, version 1 */
>          PMU_68K_V2,             /* 68K PMU, version 2 */
>  };

That's bad.  But as long as the NuBus-PMac project is out-of-tree, the
enum values it uses are not part of the Linux ABI, IMHO.
During upstreaming, PMU_NUBUS_BASED should be moved to the bottom.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  parent reply	other threads:[~2018-06-10  8:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-08  2:24 [PATCH v2 00/12] macintosh: Resolve various PMU driver problems Finn Thain
2018-06-08  2:24 ` [PATCH v2 02/12] macintosh/via-pmu: Add missing mmio accessors Finn Thain
2018-06-08  2:24 ` [PATCH v2 01/12] macintosh/via-pmu: Fix section mismatch warning Finn Thain
2018-06-08  2:24 ` [PATCH v2 03/12] macintosh/via-pmu: Don't clear shift register interrupt flag twice Finn Thain
2018-06-08  2:24 ` [PATCH v2 07/12] macintosh/via-pmu: Make CONFIG_PPC_PMAC Kconfig deps explicit Finn Thain
2018-06-08  2:24 ` [PATCH v2 10/12] macintosh: Use common code to access RTC Finn Thain
2018-06-08  2:24   ` Finn Thain
2018-06-08  2:24 ` [PATCH v2 08/12] macintosh/via-pmu68k: Don't load driver on unsupported hardware Finn Thain
2018-06-09  6:42   ` Michael Schmitz
2018-06-09  7:14     ` Andreas Schwab
2018-06-09  7:55       ` Michael Schmitz
2018-06-09 12:21         ` Finn Thain
2018-06-09 13:24           ` Andreas Schwab
2018-06-10  2:11             ` Finn Thain
2018-06-10  6:55           ` Benjamin Herrenschmidt
2018-06-11 23:47             ` Finn Thain
2018-06-12  6:53               ` Laurent Vivier
2018-06-12 20:12                 ` Michael Schmitz
2018-06-10  8:29           ` Geert Uytterhoeven [this message]
2018-06-10  9:12             ` Michael Schmitz
2018-06-11  0:05               ` Benjamin Herrenschmidt
2018-06-11  1:45                 ` Michael Schmitz
2018-06-08  2:24 ` [PATCH v2 05/12] macintosh/via-pmu: Replace via pointer with via1 and via2 pointers Finn Thain
2018-06-08  2:24 ` [PATCH v2 09/12] macintosh/via-pmu: Replace via-pmu68k driver with via-pmu driver Finn Thain
2018-06-08  2:24 ` [PATCH v2 06/12] macintosh/via-pmu: Add support for m68k PowerBooks Finn Thain
2018-06-08  2:24 ` [PATCH v2 12/12] macintosh/via-pmu: Disambiguate interrupt statistics Finn Thain
2018-06-08  2:24 ` [PATCH v2 11/12] macintosh/via-pmu: Clean up " Finn Thain
2018-06-08  2:24 ` [PATCH v2 04/12] macintosh/via-pmu: Enhance state machine with new 'uninitialized' state Finn Thain

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='CAMuHMdUHnFKzhe3x3=bG63HwnM7psu7AA=nba8q+nTDnxBAryw@mail.gmail.com' \
    --to=geert@linux-m68k.org \
    --cc=benh@kernel.crashing.org \
    --cc=fthain@telegraphics.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=schmitzmic@gmail.com \
    --cc=schwab@linux-m68k.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 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.