mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
media: dvb-usb-v2: Constify struct i2c_algorithm
'struct i2c_algorithm' are not modified in these drivers. Constifying this structure moves some data to a read-only section, so increase overall security, especially when the structure holds some function pointers. More over, dvb_usb_device_properties->i2c_algo seems to only be copied in i2c_adapter->algo, which is already a "const struct i2c_algorithm". This is done in dvb_usbv2_i2c_init() On a x86_64, with allmodconfig, as an example: Before: ====== text data bss dec hex filename 35366 5832 36 41234 a112 drivers/media/usb/dvb-usb-v2/af9015.o After: ===== text data bss dec hex filename 35430 5768 36 41234 a112 drivers/media/usb/dvb-usb-v2/af9015.o Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
fc91d334e0
commit
d22d91fb1d
@@ -260,7 +260,7 @@ static u32 af9015_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm af9015_i2c_algo = {
|
||||
static const struct i2c_algorithm af9015_i2c_algo = {
|
||||
.master_xfer = af9015_i2c_xfer,
|
||||
.functionality = af9015_i2c_func,
|
||||
};
|
||||
|
||||
@@ -483,7 +483,7 @@ static u32 af9035_i2c_functionality(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm af9035_i2c_algo = {
|
||||
static const struct i2c_algorithm af9035_i2c_algo = {
|
||||
.master_xfer = af9035_i2c_master_xfer,
|
||||
.functionality = af9035_i2c_functionality,
|
||||
};
|
||||
|
||||
@@ -235,7 +235,7 @@ static u32 anysee_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm anysee_i2c_algo = {
|
||||
static const struct i2c_algorithm anysee_i2c_algo = {
|
||||
.master_xfer = anysee_master_xfer,
|
||||
.functionality = anysee_i2c_func,
|
||||
};
|
||||
|
||||
@@ -115,7 +115,7 @@ static u32 au6610_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm au6610_i2c_algo = {
|
||||
static const struct i2c_algorithm au6610_i2c_algo = {
|
||||
.master_xfer = au6610_i2c_xfer,
|
||||
.functionality = au6610_i2c_func,
|
||||
};
|
||||
|
||||
@@ -838,7 +838,7 @@ static u32 az6007_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm az6007_i2c_algo = {
|
||||
static const struct i2c_algorithm az6007_i2c_algo = {
|
||||
.master_xfer = az6007_i2c_xfer,
|
||||
.functionality = az6007_i2c_func,
|
||||
};
|
||||
|
||||
@@ -154,7 +154,7 @@ static u32 ce6230_i2c_functionality(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm ce6230_i2c_algorithm = {
|
||||
static const struct i2c_algorithm ce6230_i2c_algorithm = {
|
||||
.master_xfer = ce6230_i2c_master_xfer,
|
||||
.functionality = ce6230_i2c_functionality,
|
||||
};
|
||||
|
||||
@@ -243,7 +243,7 @@ struct dvb_usb_device_properties {
|
||||
int (*download_firmware) (struct dvb_usb_device *,
|
||||
const struct firmware *);
|
||||
|
||||
struct i2c_algorithm *i2c_algo;
|
||||
const struct i2c_algorithm *i2c_algo;
|
||||
|
||||
unsigned int num_adapters;
|
||||
int (*get_adapter_count) (struct dvb_usb_device *);
|
||||
|
||||
@@ -169,7 +169,7 @@ static u32 dvbsky_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm dvbsky_i2c_algo = {
|
||||
static const struct i2c_algorithm dvbsky_i2c_algo = {
|
||||
.master_xfer = dvbsky_i2c_xfer,
|
||||
.functionality = dvbsky_i2c_func,
|
||||
};
|
||||
|
||||
@@ -176,7 +176,7 @@ static u32 ec168_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm ec168_i2c_algo = {
|
||||
static const struct i2c_algorithm ec168_i2c_algo = {
|
||||
.master_xfer = ec168_i2c_xfer,
|
||||
.functionality = ec168_i2c_func,
|
||||
};
|
||||
|
||||
@@ -162,7 +162,7 @@ static u32 gl861_i2c_functionality(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm gl861_i2c_algo = {
|
||||
static const struct i2c_algorithm gl861_i2c_algo = {
|
||||
.master_xfer = gl861_i2c_master_xfer,
|
||||
.functionality = gl861_i2c_functionality,
|
||||
};
|
||||
|
||||
@@ -559,7 +559,7 @@ static u32 lme2510_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm lme2510_i2c_algo = {
|
||||
static const struct i2c_algorithm lme2510_i2c_algo = {
|
||||
.master_xfer = lme2510_i2c_xfer,
|
||||
.functionality = lme2510_i2c_func,
|
||||
};
|
||||
|
||||
@@ -911,7 +911,7 @@ static u32 mxl111sf_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm mxl111sf_i2c_algo = {
|
||||
static const struct i2c_algorithm mxl111sf_i2c_algo = {
|
||||
.master_xfer = mxl111sf_i2c_xfer,
|
||||
.functionality = mxl111sf_i2c_func,
|
||||
#ifdef NEED_ALGO_CONTROL
|
||||
|
||||
@@ -290,7 +290,7 @@ static u32 rtl28xxu_i2c_func(struct i2c_adapter *adapter)
|
||||
return I2C_FUNC_I2C;
|
||||
}
|
||||
|
||||
static struct i2c_algorithm rtl28xxu_i2c_algo = {
|
||||
static const struct i2c_algorithm rtl28xxu_i2c_algo = {
|
||||
.master_xfer = rtl28xxu_i2c_xfer,
|
||||
.functionality = rtl28xxu_i2c_func,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user