Excerpts from Haren Myneni's message of February 20, 2022 5:55 am: > > The kernel sets the VAS window with PID when it is opened in > the hypervisor. During DLPAR operation, windows can be closed and > reopened in the hypervisor when the credit is available. So saves > this PID in pseries_vas_window struct when the window is opened > initially and reuse it later during DLPAR operation.
Thanks for renaming it lpid->pid and adding the comment. Reviewed-by: Nicholas Piggin <npig...@gmail.com> > > Signed-off-by: Haren Myneni <ha...@linux.ibm.com> > --- > arch/powerpc/platforms/pseries/vas.c | 9 +++++---- > arch/powerpc/platforms/pseries/vas.h | 1 + > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/vas.c > b/arch/powerpc/platforms/pseries/vas.c > index 18aae037ffe9..1035446f985b 100644 > --- a/arch/powerpc/platforms/pseries/vas.c > +++ b/arch/powerpc/platforms/pseries/vas.c > @@ -107,7 +107,6 @@ static int h_deallocate_vas_window(u64 winid) > static int h_modify_vas_window(struct pseries_vas_window *win) > { > long rc; > - u32 lpid = mfspr(SPRN_PID); > > /* > * AMR value is not supported in Linux VAS implementation. > @@ -115,7 +114,7 @@ static int h_modify_vas_window(struct pseries_vas_window > *win) > */ > do { > rc = plpar_hcall_norets(H_MODIFY_VAS_WINDOW, > - win->vas_win.winid, lpid, 0, > + win->vas_win.winid, win->pid, 0, > VAS_MOD_WIN_FLAGS, 0); > > rc = hcall_return_busy_check(rc); > @@ -124,8 +123,8 @@ static int h_modify_vas_window(struct pseries_vas_window > *win) > if (rc == H_SUCCESS) > return 0; > > - pr_err("H_MODIFY_VAS_WINDOW error: %ld, winid %u lpid %u\n", > - rc, win->vas_win.winid, lpid); > + pr_err("H_MODIFY_VAS_WINDOW error: %ld, winid %u pid %u\n", > + rc, win->vas_win.winid, win->pid); > return -EIO; > } > > @@ -338,6 +337,8 @@ static struct vas_window *vas_allocate_window(int vas_id, > u64 flags, > } > } > > + txwin->pid = mfspr(SPRN_PID); > + > /* > * Allocate / Deallocate window hcalls and setup / free IRQs > * have to be protected with mutex. > diff --git a/arch/powerpc/platforms/pseries/vas.h > b/arch/powerpc/platforms/pseries/vas.h > index d6ea8ab8b07a..2872532ed72a 100644 > --- a/arch/powerpc/platforms/pseries/vas.h > +++ b/arch/powerpc/platforms/pseries/vas.h > @@ -114,6 +114,7 @@ struct pseries_vas_window { > u64 domain[6]; /* Associativity domain Ids */ > /* this window is allocated */ > u64 util; > + u32 pid; /* PID associated with this window */ > > /* List of windows opened which is used for LPM */ > struct list_head win_list; > -- > 2.27.0 > > >