forked from mirrors/linux
		
	rtc: cros-ec: Avoid a couple of -Wflex-array-member-not-at-end warnings
Use the `DEFINE_RAW_FLEX()` helper for an on-stack definition of a flexible structure where the size of the flexible-array member is known at compile-time, and refactor the rest of the code, accordingly. So, with these changes, fix the following warning: drivers/rtc/rtc-cros-ec.c:62:40: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] drivers/rtc/rtc-cros-ec.c:40:40: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end] Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> Link: https://lore.kernel.org/r/Z9PpPg06OK8ghNvm@kspp Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
		
							parent
							
								
									6c2b833525
								
							
						
					
					
						commit
						0176188220
					
				
					 1 changed files with 12 additions and 18 deletions
				
			
		|  | @ -35,21 +35,18 @@ struct cros_ec_rtc { | |||
| static int cros_ec_rtc_get(struct cros_ec_device *cros_ec, u32 command, | ||||
| 			   u32 *response) | ||||
| { | ||||
| 	DEFINE_RAW_FLEX(struct cros_ec_command, msg, data, | ||||
| 			sizeof(struct ec_response_rtc)); | ||||
| 	int ret; | ||||
| 	struct { | ||||
| 		struct cros_ec_command msg; | ||||
| 		struct ec_response_rtc data; | ||||
| 	} __packed msg; | ||||
| 
 | ||||
| 	memset(&msg, 0, sizeof(msg)); | ||||
| 	msg.msg.command = command; | ||||
| 	msg.msg.insize = sizeof(msg.data); | ||||
| 	msg->command = command; | ||||
| 	msg->insize = sizeof(struct ec_response_rtc); | ||||
| 
 | ||||
| 	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg); | ||||
| 	ret = cros_ec_cmd_xfer_status(cros_ec, msg); | ||||
| 	if (ret < 0) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	*response = msg.data.time; | ||||
| 	*response = ((struct ec_response_rtc *)msg->data)->time; | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
|  | @ -57,18 +54,15 @@ static int cros_ec_rtc_get(struct cros_ec_device *cros_ec, u32 command, | |||
| static int cros_ec_rtc_set(struct cros_ec_device *cros_ec, u32 command, | ||||
| 			   u32 param) | ||||
| { | ||||
| 	DEFINE_RAW_FLEX(struct cros_ec_command, msg, data, | ||||
| 			sizeof(struct ec_response_rtc)); | ||||
| 	int ret; | ||||
| 	struct { | ||||
| 		struct cros_ec_command msg; | ||||
| 		struct ec_response_rtc data; | ||||
| 	} __packed msg; | ||||
| 
 | ||||
| 	memset(&msg, 0, sizeof(msg)); | ||||
| 	msg.msg.command = command; | ||||
| 	msg.msg.outsize = sizeof(msg.data); | ||||
| 	msg.data.time = param; | ||||
| 	msg->command = command; | ||||
| 	msg->outsize = sizeof(struct ec_response_rtc); | ||||
| 	((struct ec_response_rtc *)msg->data)->time = param; | ||||
| 
 | ||||
| 	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg); | ||||
| 	ret = cros_ec_cmd_xfer_status(cros_ec, msg); | ||||
| 	if (ret < 0) | ||||
| 		return ret; | ||||
| 	return 0; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Gustavo A. R. Silva
						Gustavo A. R. Silva