The technique used to get the next VMBus version seems increasisly clumsy as the number of VMBus versions increases. Performance is not a concern since this is only done once during system boot; it's just that we'll end up with more lines of code than is really needed. As an alternative, introduce a table with the version numbers listed in order (from the most recent to the oldest). vmbus_connect() loops through the versions listed in the table until it gets an accepted connection or gets to the end of the table (invalid version).
Showing the changes to include/linux (1 of 3 files). Show all
Unified · Split
| @@ -192,10 +192,6 @@ static inline u32 hv_get_avail_to_write_percent( · 191 unmodified lines | |||
| 192 | #define VERSION_WIN10 ((4 << 16) | (0)) | 192 | #define VERSION_WIN10 ((4 << 16) | (0)) |
| 193 | #define VERSION_WIN10_V5 ((5 << 16) | (0)) | 193 | #define VERSION_WIN10_V5 ((5 << 16) | (0)) |
| 194 | 194 | ||
| 195 | #define VERSION_INVAL -1 | ||
| 196 | |||
| 197 | #define VERSION_CURRENT VERSION_WIN10_V5 | ||
| 198 | |||
| 199 | /* Make maximum size of pipe payload of 16K */ | 195 | /* Make maximum size of pipe payload of 16K */ |
| 200 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) | 196 | #define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384) |
| 201 | 197 | ||