forked from Minki/linux
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
|
||||
{
|
||||
unsigned int max;
|
||||
unsigned int elemsize;
|
||||
unsigned int *num;
|
||||
const struct kernel_param_ops *ops;
|
||||
unsigned int elemsize;
|
||||
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) \
|
||||
static const struct kparam_array __param_arr_##name \
|
||||
= { ARRAY_SIZE(array), nump, ¶m_ops_##type, \
|
||||
sizeof(array[0]), array }; \
|
||||
= { .max = ARRAY_SIZE(array), .num = nump, \
|
||||
.ops = ¶m_ops_##type, \
|
||||
.elemsize = sizeof(array[0]), .elem = array }; \
|
||||
__module_param_call(MODULE_PARAM_PREFIX, name, \
|
||||
¶m_array_ops, \
|
||||
.arr = &__param_arr_##name, \
|
||||
|
Loading…
Reference in New Issue
Block a user