All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: "linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Ben Hutchings <ben@decadent.org.uk>,
	Stable <stable@vger.kernel.org>
Subject: Re: FAILED: patch "[PATCH] mtd: m25p80,spi-nor: Fix module aliases for m25p80" failed to apply to 3.17-stable tree
Date: Wed, 12 Nov 2014 15:21:50 +0900	[thread overview]
Message-ID: <20141112062150.GA3256@kroah.com> (raw)
In-Reply-To: <CACna6rzGgC3SvakPStqnydC1cgwrbSyX2WL6xVdfTdUE3mV6og@mail.gmail.com>

On Wed, Nov 12, 2014 at 07:06:57AM +0100, Rafał Miłecki wrote:
> On 11 November 2014 23:11, Brian Norris <computersforpeace@gmail.com> wrote:
> > How about the following backport? I compile tested with
> > CONFIG_MTD_M25P80 as 'm' and 'y', and I made sure the module aliases
> > show up in modinfo.
> >
> > From: Ben Hutchings <ben@decadent.org.uk>
> > Date: Tue, 30 Sep 2014 03:14:55 +0100
> > Subject: [PATCH] mtd: m25p80: Fix module aliases for m25p80
> >
> > m25p80's device ID table is now spi_nor_ids, defined in spi-nor.  The
> > MODULE_DEVICE_TABLE() macro doesn't work with extern definitions, but
> > its use was also removed at the same time.  Now if m25p80 is built as
> > a module it doesn't get the necessary aliases to be loaded
> > automatically.
> >
> > A clean solution to this will involve defining the list of device
> > IDs in spi-nor.h and removing struct spi_device_id from the spi-nor
> > API, but this is quite a large change.
> >
> > As a quick fix suitable for stable, copy the device IDs back into
> > m25p80.
> >
> > Fixes: 03e296f613af ("mtd: m25p80: use the SPI nor framework")
> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> > [Brian: backport without the dependencies]
> > Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> > ---
> >  drivers/mtd/devices/m25p80.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 50 insertions(+)
> >
> > diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> > index ed7e0a1bed3c..5935f0a3ac6f 100644
> > --- a/drivers/mtd/devices/m25p80.c
> > +++ b/drivers/mtd/devices/m25p80.c
> > @@ -245,6 +245,56 @@ static int m25p_remove(struct spi_device *spi)
> >  }
> >
> >
> > +/*
> > + * XXX This needs to be kept in sync with spi_nor_ids.  We can't share
> > + * it with spi-nor, because if this is built as a module then modpost
> > + * won't be able to read it and add appropriate aliases.
> > + */
> > +static const struct spi_device_id m25p_ids[] = {
> > +       {"at25fs010"},  {"at25fs040"},  {"at25df041a"}, {"at25df321a"},
> > +       {"at25df641"},  {"at26f004"},   {"at26df081a"}, {"at26df161a"},
> > +       {"at26df321"},  {"at45db081d"},
> > +       {"en25f32"},    {"en25p32"},    {"en25q32b"},   {"en25p64"},
> > +       {"en25q64"},    {"en25qh128"},  {"en25qh256"},
> > +       {"f25l32pa"},
> > +       {"mr25h256"},   {"mr25h10"},
> > +       {"gd25q32"},    {"gd25q64"},
> > +       {"160s33b"},    {"320s33b"},    {"640s33b"},
> > +       {"mx25l2005a"}, {"mx25l4005a"}, {"mx25l8005"},  {"mx25l1606e"},
> > +       {"mx25l3205d"}, {"mx25l3255e"}, {"mx25l6405d"}, {"mx25l12805d"},
> > +       {"mx25l12855e"},{"mx25l25635e"},{"mx25l25655e"},{"mx66l51235l"},
> > +       {"mx66l1g55g"},
> > +       {"n25q064"},    {"n25q128a11"}, {"n25q128a13"}, {"n25q256a"},
> > +       {"n25q512a"},   {"n25q512ax3"}, {"n25q00"},
> > +       {"pm25lv512"},  {"pm25lv010"},  {"pm25lq032"},
> > +       {"s25sl032p"},  {"s25sl064p"},  {"s25fl256s0"}, {"s25fl256s1"},
> > +       {"s25fl512s"},  {"s70fl01gs"},  {"s25sl12800"}, {"s25sl12801"},
> > +       {"s25fl129p0"}, {"s25fl129p1"}, {"s25sl004a"},  {"s25sl008a"},
> > +       {"s25sl016a"},  {"s25sl032a"},  {"s25sl064a"},  {"s25fl008k"},
> > +       {"s25fl016k"},  {"s25fl064k"},
> > +       {"sst25vf040b"},{"sst25vf080b"},{"sst25vf016b"},{"sst25vf032b"},
> > +       {"sst25vf064c"},{"sst25wf512"}, {"sst25wf010"}, {"sst25wf020"},
> > +       {"sst25wf040"},
> > +       {"m25p05"},     {"m25p10"},     {"m25p20"},     {"m25p40"},
> > +       {"m25p80"},     {"m25p16"},     {"m25p32"},     {"m25p64"},
> > +       {"m25p128"},    {"n25q032"},
> > +       {"m25p05-nonjedec"},    {"m25p10-nonjedec"},    {"m25p20-nonjedec"},
> > +       {"m25p40-nonjedec"},    {"m25p80-nonjedec"},    {"m25p16-nonjedec"},
> > +       {"m25p32-nonjedec"},    {"m25p64-nonjedec"},    {"m25p128-nonjedec"},
> > +       {"m45pe10"},    {"m45pe80"},    {"m45pe16"},
> > +       {"m25pe20"},    {"m25pe80"},    {"m25pe16"},
> > +       {"m25px16"},    {"m25px32"},    {"m25px32-s0"}, {"m25px32-s1"},
> > +       {"m25px64"},
> > +       {"w25x10"},     {"w25x20"},     {"w25x40"},     {"w25x80"},
> > +       {"w25x16"},     {"w25x32"},     {"w25q32"},     {"w25q32dw"},
> > +       {"w25x64"},     {"w25q64"},     {"w25q128"},    {"w25q80"},
> > +       {"w25q80bl"},   {"w25q128"},    {"w25q256"},    {"cat25c11"},
> > +       {"cat25c03"},   {"cat25c09"},   {"cat25c17"},   {"cat25128"},
> > +       { },
> > +};
> > +MODULE_DEVICE_TABLE(spi, m25p_ids);
> 
> One question: is changing MODULE_DEVICE_TABLE enough to trigger proper
> module auto-load?

Yes.

> So far I believed MODULE_DEVICE_TABLE is used for "modinfo" only. I
> also believed that loading module is triggered by the "id_table".

Nope MODULE_DEVICE_TABLE() does it all.

greg k-h

  reply	other threads:[~2014-11-12  6:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <14155940648@kroah.com>
     [not found] ` <20141110235349.GA24364@ld-irv-0074>
     [not found]   ` <20141111051759.GC23920@kroah.com>
     [not found]     ` <1415725705.3398.98.camel@decadent.org.uk>
2014-11-11 22:11       ` FAILED: patch "[PATCH] mtd: m25p80,spi-nor: Fix module aliases for m25p80" failed to apply to 3.17-stable tree Brian Norris
2014-11-11 23:26         ` Greg KH
2014-11-12  6:06         ` Rafał Miłecki
2014-11-12  6:21           ` Greg KH [this message]
2014-11-12  6:47             ` Rafał Miłecki

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=20141112062150.GA3256@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=ben@decadent.org.uk \
    --cc=computersforpeace@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=zajec5@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.