module: reorder kparam_array to remove alignment padding on 64 bit builds
Reorder structure kparam_array to remove 8 bytes of alignment padding on 64 bit builds, dropping its size from 40 to 32 bytes. Also update the macro module_param_array_named to initialise the structure using its member names to allow it to be changed without touching all its call sites. 'git grep' finds module_param_array in 1037 places so this patch will save a small amount of data space across many modules. Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
a288bd651f
commit
c5be0b2eb1
|
@ -67,9 +67,9 @@ struct kparam_string {
|
||||||
struct kparam_array
|
struct kparam_array
|
||||||
{
|
{
|
||||||
unsigned int max;
|
unsigned int max;
|
||||||
|
unsigned int elemsize;
|
||||||
unsigned int *num;
|
unsigned int *num;
|
||||||
const struct kernel_param_ops *ops;
|
const struct kernel_param_ops *ops;
|
||||||
unsigned int elemsize;
|
|
||||||
void *elem;
|
void *elem;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -371,8 +371,9 @@ extern int param_get_invbool(char *buffer, const struct kernel_param *kp);
|
||||||
*/
|
*/
|
||||||
#define module_param_array_named(name, array, type, nump, perm) \
|
#define module_param_array_named(name, array, type, nump, perm) \
|
||||||
static const struct kparam_array __param_arr_##name \
|
static const struct kparam_array __param_arr_##name \
|
||||||
= { ARRAY_SIZE(array), nump, ¶m_ops_##type, \
|
= { .max = ARRAY_SIZE(array), .num = nump, \
|
||||||
sizeof(array[0]), array }; \
|
.ops = ¶m_ops_##type, \
|
||||||
|
.elemsize = sizeof(array[0]), .elem = array }; \
|
||||||
__module_param_call(MODULE_PARAM_PREFIX, name, \
|
__module_param_call(MODULE_PARAM_PREFIX, name, \
|
||||||
¶m_array_ops, \
|
¶m_array_ops, \
|
||||||
.arr = &__param_arr_##name, \
|
.arr = &__param_arr_##name, \
|
||||||
|
|
Loading…
Reference in New Issue