ethtool: Expand ethtool_cmd.speed to 32 bits
Introduce the speed_hi field to ethtool_cmd, using the reserved space, to expand the speed field to 2^32 Megabits/second. Making this field expansion now gives us plenty of time to fix up the user-space pieces that use SIOCETHTOOL before hardware faster than 64 Gb/s is available. Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
		
					parent
					
						
							
								4f63135eb2
							
						
					
				
			
			
				commit
				
					
						b11f8d8cc3
					
				
			
		
					 1 changed files with 16 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -27,9 +27,24 @@ struct ethtool_cmd {
 | 
			
		|||
	__u8	autoneg;	/* Enable or disable autonegotiation */
 | 
			
		||||
	__u32	maxtxpkt;	/* Tx pkts before generating tx int */
 | 
			
		||||
	__u32	maxrxpkt;	/* Rx pkts before generating rx int */
 | 
			
		||||
	__u32	reserved[4];
 | 
			
		||||
	__u16	speed_hi;
 | 
			
		||||
	__u16	reserved2;
 | 
			
		||||
	__u32	reserved[3];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
 | 
			
		||||
						__u32 speed)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	ep->speed = (__u16)speed;
 | 
			
		||||
	ep->speed_hi = (__u16)(speed >> 16);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline __u32 ethtool_cmd_speed(struct ethtool_cmd *ep)
 | 
			
		||||
{
 | 
			
		||||
	return (ep->speed_hi << 16) | ep->speed;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define ETHTOOL_BUSINFO_LEN	32
 | 
			
		||||
/* these strings are set to whatever the driver author decides... */
 | 
			
		||||
struct ethtool_drvinfo {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue