Input: iqs626a - prohibit inlining of channel parsing functions
Some automated builds report a stack frame size in excess of 2 kB for iqs626_probe(); the culprit appears to be the call to iqs626_parse_prop(). To solve this problem, specify noinline_for_stack for all of the iqs626_parse_*() helper functions which are called inside a for loop within iqs626_parse_prop(). As a result, a build with '-Wframe-larger-than' as low as 512 is free of any such warnings. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Jeff LaBundy <jeff@labundy.com> Link: https://lore.kernel.org/r/20211129004104.453930-1-jeff@labundy.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
9222ba68c3
commit
e1f5e84820
|
@ -456,9 +456,10 @@ struct iqs626_private {
|
|||
unsigned int suspend_mode;
|
||||
};
|
||||
|
||||
static int iqs626_parse_events(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
static noinline_for_stack int
|
||||
iqs626_parse_events(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
{
|
||||
struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
|
||||
struct i2c_client *client = iqs626->client;
|
||||
|
@ -604,9 +605,10 @@ static int iqs626_parse_events(struct iqs626_private *iqs626,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int iqs626_parse_ati_target(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
static noinline_for_stack int
|
||||
iqs626_parse_ati_target(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
{
|
||||
struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
|
||||
struct i2c_client *client = iqs626->client;
|
||||
|
@ -885,9 +887,10 @@ static int iqs626_parse_trackpad(struct iqs626_private *iqs626,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int iqs626_parse_channel(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
static noinline_for_stack int
|
||||
iqs626_parse_channel(struct iqs626_private *iqs626,
|
||||
const struct fwnode_handle *ch_node,
|
||||
enum iqs626_ch_id ch_id)
|
||||
{
|
||||
struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg;
|
||||
struct i2c_client *client = iqs626->client;
|
||||
|
|
Loading…
Reference in New Issue