The field is read only in __vmbus_open() and it is already stored twice (after a call to hv_cpu_number_to_vp_number()) in target_cpu_store() and init_vp_index(); there is no need to "cache" its value in the channel data structure.
Showing the changes to include/linux (1 of 4 files). Show all
Unified · Split
| @@ -803,15 +803,14 @@ struct vmbus_channel { · 802 unmodified lines | |||
| 803 | u64 sig_event; | 803 | u64 sig_event; |
| 804 | 804 | ||
| 805 | /* | 805 | /* |
| 806 | * Starting with win8, this field will be used to specify | 806 | * Starting with win8, this field will be used to specify the |
| 807 | * the target virtual processor on which to deliver the interrupt for | 807 | * target CPU on which to deliver the interrupt for the host |
| 808 | * the host to guest communication. | 808 | * to guest communication. |
| 809 | * Prior to win8, incoming channel interrupts would only | 809 | * |
| 810 | * be delivered on cpu 0. Setting this value to 0 would | 810 | * Prior to win8, incoming channel interrupts would only be |
| 811 | * preserve the earlier behavior. | 811 | * delivered on CPU 0. Setting this value to 0 would preserve |
| 812 | * the earlier behavior. | ||
| 812 | */ | 813 | */ |
| 813 | u32 target_vp; | ||
| 814 | /* The corresponding CPUID in the guest */ | ||
| 815 | u32 target_cpu; | 814 | u32 target_cpu; |
| 816 | int numa_node; | 815 | int numa_node; |
| 817 | /* | 816 | /* |