Skip to content

Commit

Permalink
media: dvb: symbol fixup for dvb_attach()
Browse files Browse the repository at this point in the history
commit 86495af upstream.

In commit 9011e49 ("modules: only allow symbol_get of
EXPORT_SYMBOL_GPL modules") the use of symbol_get is properly restricted
to GPL-only marked symbols.  This interacts oddly with the DVB logic
which only uses dvb_attach() to load the dvb driver which then uses
symbol_get().

Fix this up by properly marking all of the dvb_attach attach symbols as
EXPORT_SYMBOL_GPL().

Fixes: 9011e49 ("modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules")
Cc: stable <stable@kernel.org>
Reported-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: linux-media@vger.kernel.org
Cc: linux-modules@vger.kernel.org
Acked-by: Luis Chamberlain <mcgrof@kernel.org>
Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Link: https://lore.kernel.org/r/20230908092035.3815268-2-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
gregkh committed Sep 13, 2023
1 parent fd4d61f commit 25934d8
Show file tree
Hide file tree
Showing 105 changed files with 112 additions and 112 deletions.
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/ascot2e.c
Expand Up @@ -533,7 +533,7 @@ struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c);
return fe;
}
EXPORT_SYMBOL(ascot2e_attach);
EXPORT_SYMBOL_GPL(ascot2e_attach);

MODULE_DESCRIPTION("Sony ASCOT2E terr/cab tuner driver");
MODULE_AUTHOR("info@netup.ru");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/atbm8830.c
Expand Up @@ -489,7 +489,7 @@ struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config,
return NULL;

}
EXPORT_SYMBOL(atbm8830_attach);
EXPORT_SYMBOL_GPL(atbm8830_attach);

MODULE_DESCRIPTION("AltoBeam ATBM8830/8831 GB20600 demodulator driver");
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/au8522_dig.c
Expand Up @@ -879,7 +879,7 @@ struct dvb_frontend *au8522_attach(const struct au8522_config *config,
au8522_release_state(state);
return NULL;
}
EXPORT_SYMBOL(au8522_attach);
EXPORT_SYMBOL_GPL(au8522_attach);

static const struct dvb_frontend_ops au8522_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/bcm3510.c
Expand Up @@ -835,7 +835,7 @@ struct dvb_frontend* bcm3510_attach(const struct bcm3510_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(bcm3510_attach);
EXPORT_SYMBOL_GPL(bcm3510_attach);

static const struct dvb_frontend_ops bcm3510_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx22700.c
Expand Up @@ -432,4 +432,4 @@ MODULE_DESCRIPTION("Conexant CX22700 DVB-T Demodulator driver");
MODULE_AUTHOR("Holger Waechtler");
MODULE_LICENSE("GPL");

EXPORT_SYMBOL(cx22700_attach);
EXPORT_SYMBOL_GPL(cx22700_attach);
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx22702.c
Expand Up @@ -604,7 +604,7 @@ struct dvb_frontend *cx22702_attach(const struct cx22702_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(cx22702_attach);
EXPORT_SYMBOL_GPL(cx22702_attach);

static const struct dvb_frontend_ops cx22702_ops = {
.delsys = { SYS_DVBT },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx24110.c
Expand Up @@ -653,4 +653,4 @@ MODULE_DESCRIPTION("Conexant CX24110 DVB-S Demodulator driver");
MODULE_AUTHOR("Peter Hettkamp");
MODULE_LICENSE("GPL");

EXPORT_SYMBOL(cx24110_attach);
EXPORT_SYMBOL_GPL(cx24110_attach);
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx24113.c
Expand Up @@ -590,7 +590,7 @@ struct dvb_frontend *cx24113_attach(struct dvb_frontend *fe,

return NULL;
}
EXPORT_SYMBOL(cx24113_attach);
EXPORT_SYMBOL_GPL(cx24113_attach);

module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx24116.c
Expand Up @@ -1133,7 +1133,7 @@ struct dvb_frontend *cx24116_attach(const struct cx24116_config *config,
state->frontend.demodulator_priv = state;
return &state->frontend;
}
EXPORT_SYMBOL(cx24116_attach);
EXPORT_SYMBOL_GPL(cx24116_attach);

/*
* Initialise or wake up device
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx24120.c
Expand Up @@ -305,7 +305,7 @@ struct dvb_frontend *cx24120_attach(const struct cx24120_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(cx24120_attach);
EXPORT_SYMBOL_GPL(cx24120_attach);

static int cx24120_test_rom(struct cx24120_state *state)
{
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cx24123.c
Expand Up @@ -1096,7 +1096,7 @@ struct dvb_frontend *cx24123_attach(const struct cx24123_config *config,

return NULL;
}
EXPORT_SYMBOL(cx24123_attach);
EXPORT_SYMBOL_GPL(cx24123_attach);

static const struct dvb_frontend_ops cx24123_ops = {
.delsys = { SYS_DVBS },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cxd2820r_core.c
Expand Up @@ -536,7 +536,7 @@ struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *config,

return pdata.get_dvb_frontend(client);
}
EXPORT_SYMBOL(cxd2820r_attach);
EXPORT_SYMBOL_GPL(cxd2820r_attach);

static struct dvb_frontend *cxd2820r_get_dvb_frontend(struct i2c_client *client)
{
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/dvb-frontends/cxd2841er.c
Expand Up @@ -3930,14 +3930,14 @@ struct dvb_frontend *cxd2841er_attach_s(struct cxd2841er_config *cfg,
{
return cxd2841er_attach(cfg, i2c, SYS_DVBS);
}
EXPORT_SYMBOL(cxd2841er_attach_s);
EXPORT_SYMBOL_GPL(cxd2841er_attach_s);

struct dvb_frontend *cxd2841er_attach_t_c(struct cxd2841er_config *cfg,
struct i2c_adapter *i2c)
{
return cxd2841er_attach(cfg, i2c, 0);
}
EXPORT_SYMBOL(cxd2841er_attach_t_c);
EXPORT_SYMBOL_GPL(cxd2841er_attach_t_c);

static const struct dvb_frontend_ops cxd2841er_dvbs_s2_ops = {
.delsys = { SYS_DVBS, SYS_DVBS2 },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/cxd2880/cxd2880_top.c
Expand Up @@ -1950,7 +1950,7 @@ struct dvb_frontend *cxd2880_attach(struct dvb_frontend *fe,

return fe;
}
EXPORT_SYMBOL(cxd2880_attach);
EXPORT_SYMBOL_GPL(cxd2880_attach);

MODULE_DESCRIPTION("Sony CXD2880 DVB-T2/T tuner + demod driver");
MODULE_AUTHOR("Sony Semiconductor Solutions Corporation");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib0070.c
Expand Up @@ -762,7 +762,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter
fe->tuner_priv = NULL;
return NULL;
}
EXPORT_SYMBOL(dib0070_attach);
EXPORT_SYMBOL_GPL(dib0070_attach);

MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_DESCRIPTION("Driver for the DiBcom 0070 base-band RF Tuner");
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/dvb-frontends/dib0090.c
Expand Up @@ -2634,7 +2634,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte
return NULL;
}

EXPORT_SYMBOL(dib0090_register);
EXPORT_SYMBOL_GPL(dib0090_register);

struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config)
{
Expand All @@ -2660,7 +2660,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada
fe->tuner_priv = NULL;
return NULL;
}
EXPORT_SYMBOL(dib0090_fw_register);
EXPORT_SYMBOL_GPL(dib0090_fw_register);

MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_AUTHOR("Olivier Grenie <olivier.grenie@parrot.com>");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib3000mb.c
Expand Up @@ -815,4 +815,4 @@ MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");

EXPORT_SYMBOL(dib3000mb_attach);
EXPORT_SYMBOL_GPL(dib3000mb_attach);
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib3000mc.c
Expand Up @@ -935,7 +935,7 @@ struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr
kfree(st);
return NULL;
}
EXPORT_SYMBOL(dib3000mc_attach);
EXPORT_SYMBOL_GPL(dib3000mc_attach);

static const struct dvb_frontend_ops dib3000mc_ops = {
.delsys = { SYS_DVBT },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib7000m.c
Expand Up @@ -1434,7 +1434,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
kfree(st);
return NULL;
}
EXPORT_SYMBOL(dib7000m_attach);
EXPORT_SYMBOL_GPL(dib7000m_attach);

static const struct dvb_frontend_ops dib7000m_ops = {
.delsys = { SYS_DVBT },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib7000p.c
Expand Up @@ -2822,7 +2822,7 @@ void *dib7000p_attach(struct dib7000p_ops *ops)

return ops;
}
EXPORT_SYMBOL(dib7000p_attach);
EXPORT_SYMBOL_GPL(dib7000p_attach);

static const struct dvb_frontend_ops dib7000p_ops = {
.delsys = { SYS_DVBT },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib8000.c
Expand Up @@ -4527,7 +4527,7 @@ void *dib8000_attach(struct dib8000_ops *ops)

return ops;
}
EXPORT_SYMBOL(dib8000_attach);
EXPORT_SYMBOL_GPL(dib8000_attach);

MODULE_AUTHOR("Olivier Grenie <Olivier.Grenie@parrot.com, Patrick Boettcher <patrick.boettcher@posteo.de>");
MODULE_DESCRIPTION("Driver for the DiBcom 8000 ISDB-T demodulator");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dib9000.c
Expand Up @@ -2546,7 +2546,7 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c
kfree(st);
return NULL;
}
EXPORT_SYMBOL(dib9000_attach);
EXPORT_SYMBOL_GPL(dib9000_attach);

static const struct dvb_frontend_ops dib9000_ops = {
.delsys = { SYS_DVBT },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/drx39xyj/drxj.c
Expand Up @@ -12368,7 +12368,7 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)

return NULL;
}
EXPORT_SYMBOL(drx39xxj_attach);
EXPORT_SYMBOL_GPL(drx39xxj_attach);

static const struct dvb_frontend_ops drx39xxj_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/drxd_hard.c
Expand Up @@ -2939,7 +2939,7 @@ struct dvb_frontend *drxd_attach(const struct drxd_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(drxd_attach);
EXPORT_SYMBOL_GPL(drxd_attach);

MODULE_DESCRIPTION("DRXD driver");
MODULE_AUTHOR("Micronas");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/drxk_hard.c
Expand Up @@ -6833,7 +6833,7 @@ struct dvb_frontend *drxk_attach(const struct drxk_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(drxk_attach);
EXPORT_SYMBOL_GPL(drxk_attach);

MODULE_DESCRIPTION("DRX-K driver");
MODULE_AUTHOR("Ralph Metzler");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/ds3000.c
Expand Up @@ -859,7 +859,7 @@ struct dvb_frontend *ds3000_attach(const struct ds3000_config *config,
ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF);
return &state->frontend;
}
EXPORT_SYMBOL(ds3000_attach);
EXPORT_SYMBOL_GPL(ds3000_attach);

static int ds3000_set_carrier_offset(struct dvb_frontend *fe,
s32 carrier_offset_khz)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/dvb-pll.c
Expand Up @@ -866,7 +866,7 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,

return NULL;
}
EXPORT_SYMBOL(dvb_pll_attach);
EXPORT_SYMBOL_GPL(dvb_pll_attach);


static int
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/ec100.c
Expand Up @@ -299,7 +299,7 @@ struct dvb_frontend *ec100_attach(const struct ec100_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(ec100_attach);
EXPORT_SYMBOL_GPL(ec100_attach);

static const struct dvb_frontend_ops ec100_ops = {
.delsys = { SYS_DVBT },
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/dvb-frontends/helene.c
Expand Up @@ -1025,7 +1025,7 @@ struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c);
return fe;
}
EXPORT_SYMBOL(helene_attach_s);
EXPORT_SYMBOL_GPL(helene_attach_s);

struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
const struct helene_config *config,
Expand Down Expand Up @@ -1061,7 +1061,7 @@ struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c);
return fe;
}
EXPORT_SYMBOL(helene_attach);
EXPORT_SYMBOL_GPL(helene_attach);

static int helene_probe(struct i2c_client *client,
const struct i2c_device_id *id)
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/horus3a.c
Expand Up @@ -395,7 +395,7 @@ struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe,
priv->i2c_address, priv->i2c);
return fe;
}
EXPORT_SYMBOL(horus3a_attach);
EXPORT_SYMBOL_GPL(horus3a_attach);

MODULE_DESCRIPTION("Sony HORUS3A satellite tuner driver");
MODULE_AUTHOR("Sergey Kozlov <serjk@netup.ru>");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/isl6405.c
Expand Up @@ -141,7 +141,7 @@ struct dvb_frontend *isl6405_attach(struct dvb_frontend *fe, struct i2c_adapter

return fe;
}
EXPORT_SYMBOL(isl6405_attach);
EXPORT_SYMBOL_GPL(isl6405_attach);

MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6405");
MODULE_AUTHOR("Hartmut Hackmann & Oliver Endriss");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/isl6421.c
Expand Up @@ -213,7 +213,7 @@ struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter

return fe;
}
EXPORT_SYMBOL(isl6421_attach);
EXPORT_SYMBOL_GPL(isl6421_attach);

MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421");
MODULE_AUTHOR("Andrew de Quincey & Oliver Endriss");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/isl6423.c
Expand Up @@ -289,7 +289,7 @@ struct dvb_frontend *isl6423_attach(struct dvb_frontend *fe,
fe->sec_priv = NULL;
return NULL;
}
EXPORT_SYMBOL(isl6423_attach);
EXPORT_SYMBOL_GPL(isl6423_attach);

MODULE_DESCRIPTION("ISL6423 SEC");
MODULE_AUTHOR("Manu Abraham");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/itd1000.c
Expand Up @@ -389,7 +389,7 @@ struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter

return fe;
}
EXPORT_SYMBOL(itd1000_attach);
EXPORT_SYMBOL_GPL(itd1000_attach);

MODULE_AUTHOR("Patrick Boettcher <pb@linuxtv.org>");
MODULE_DESCRIPTION("Integrant ITD1000 driver");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/ix2505v.c
Expand Up @@ -302,7 +302,7 @@ struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(ix2505v_attach);
EXPORT_SYMBOL_GPL(ix2505v_attach);

module_param_named(debug, ix2505v_debug, int, 0644);
MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/l64781.c
Expand Up @@ -593,4 +593,4 @@ MODULE_DESCRIPTION("LSI L64781 DVB-T Demodulator driver");
MODULE_AUTHOR("Holger Waechtler, Marko Kohtala");
MODULE_LICENSE("GPL");

EXPORT_SYMBOL(l64781_attach);
EXPORT_SYMBOL_GPL(l64781_attach);
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lg2160.c
Expand Up @@ -1426,7 +1426,7 @@ struct dvb_frontend *lg2160_attach(const struct lg2160_config *config,

return &state->frontend;
}
EXPORT_SYMBOL(lg2160_attach);
EXPORT_SYMBOL_GPL(lg2160_attach);

MODULE_DESCRIPTION("LG Electronics LG216x ATSC/MH Demodulator Driver");
MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lgdt3305.c
Expand Up @@ -1148,7 +1148,7 @@ struct dvb_frontend *lgdt3305_attach(const struct lgdt3305_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(lgdt3305_attach);
EXPORT_SYMBOL_GPL(lgdt3305_attach);

static const struct dvb_frontend_ops lgdt3304_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lgdt3306a.c
Expand Up @@ -1859,7 +1859,7 @@ struct dvb_frontend *lgdt3306a_attach(const struct lgdt3306a_config *config,
kfree(state);
return NULL;
}
EXPORT_SYMBOL(lgdt3306a_attach);
EXPORT_SYMBOL_GPL(lgdt3306a_attach);

#ifdef DBG_DUMP

Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lgdt330x.c
Expand Up @@ -928,7 +928,7 @@ struct dvb_frontend *lgdt330x_attach(const struct lgdt330x_config *_config,

return lgdt330x_get_dvb_frontend(client);
}
EXPORT_SYMBOL(lgdt330x_attach);
EXPORT_SYMBOL_GPL(lgdt330x_attach);

static const struct dvb_frontend_ops lgdt3302_ops = {
.delsys = { SYS_ATSC, SYS_DVBC_ANNEX_B },
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lgs8gxx.c
Expand Up @@ -1043,7 +1043,7 @@ struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
return NULL;

}
EXPORT_SYMBOL(lgs8gxx_attach);
EXPORT_SYMBOL_GPL(lgs8gxx_attach);

MODULE_DESCRIPTION("Legend Silicon LGS8913/LGS8GXX DMB-TH demodulator driver");
MODULE_AUTHOR("David T. L. Wong <davidtlwong@gmail.com>");
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb-frontends/lnbh25.c
Expand Up @@ -173,7 +173,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
__func__, priv->i2c_address);
return fe;
}
EXPORT_SYMBOL(lnbh25_attach);
EXPORT_SYMBOL_GPL(lnbh25_attach);

MODULE_DESCRIPTION("ST LNBH25 driver");
MODULE_AUTHOR("info@netup.ru");
Expand Down

0 comments on commit 25934d8

Please sign in to comment.