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, | static int cros_ec_rtc_get(struct cros_ec_device *cros_ec, u32 command, | ||||||
| 			   u32 *response) | 			   u32 *response) | ||||||
| { | { | ||||||
|  | 	DEFINE_RAW_FLEX(struct cros_ec_command, msg, data, | ||||||
|  | 			sizeof(struct ec_response_rtc)); | ||||||
| 	int ret; | 	int ret; | ||||||
| 	struct { |  | ||||||
| 		struct cros_ec_command msg; |  | ||||||
| 		struct ec_response_rtc data; |  | ||||||
| 	} __packed msg; |  | ||||||
| 
 | 
 | ||||||
| 	memset(&msg, 0, sizeof(msg)); | 	msg->command = command; | ||||||
| 	msg.msg.command = command; | 	msg->insize = sizeof(struct ec_response_rtc); | ||||||
| 	msg.msg.insize = sizeof(msg.data); |  | ||||||
| 
 | 
 | ||||||
| 	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg); | 	ret = cros_ec_cmd_xfer_status(cros_ec, msg); | ||||||
| 	if (ret < 0) | 	if (ret < 0) | ||||||
| 		return ret; | 		return ret; | ||||||
| 
 | 
 | ||||||
| 	*response = msg.data.time; | 	*response = ((struct ec_response_rtc *)msg->data)->time; | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	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, | static int cros_ec_rtc_set(struct cros_ec_device *cros_ec, u32 command, | ||||||
| 			   u32 param) | 			   u32 param) | ||||||
| { | { | ||||||
|  | 	DEFINE_RAW_FLEX(struct cros_ec_command, msg, data, | ||||||
|  | 			sizeof(struct ec_response_rtc)); | ||||||
| 	int ret; | 	int ret; | ||||||
| 	struct { |  | ||||||
| 		struct cros_ec_command msg; |  | ||||||
| 		struct ec_response_rtc data; |  | ||||||
| 	} __packed msg; |  | ||||||
| 
 | 
 | ||||||
| 	memset(&msg, 0, sizeof(msg)); | 	msg->command = command; | ||||||
| 	msg.msg.command = command; | 	msg->outsize = sizeof(struct ec_response_rtc); | ||||||
| 	msg.msg.outsize = sizeof(msg.data); | 	((struct ec_response_rtc *)msg->data)->time = param; | ||||||
| 	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) | 	if (ret < 0) | ||||||
| 		return ret; | 		return ret; | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Gustavo A. R. Silva
						Gustavo A. R. Silva