diff options
author | Mario Preksavec <mario@slackware.hr> | 2017-08-16 00:25:56 +0200 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2017-08-19 07:11:07 +0700 |
commit | d226051fa7c1d845192603bf4c6d7e9eb8164900 (patch) | |
tree | ac07a4caaaf86729458596210b114bbe65e15323 /system/xen/xsa/xsa230.patch | |
parent | cded8a857bf212404bae9e98da2e7f6c21963863 (diff) | |
download | slackbuilds-d226051fa7c1d845192603bf4c6d7e9eb8164900.tar.gz |
system/xen: XSA 226-228 and 230 update.
Signed-off-by: Mario Preksavec <mario@slackware.hr>
Diffstat (limited to 'system/xen/xsa/xsa230.patch')
-rw-r--r-- | system/xen/xsa/xsa230.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/system/xen/xsa/xsa230.patch b/system/xen/xsa/xsa230.patch new file mode 100644 index 0000000000..c3b50c8aaa --- /dev/null +++ b/system/xen/xsa/xsa230.patch @@ -0,0 +1,38 @@ +From: Jan Beulich <jbeulich@suse.com> +Subject: gnttab: correct pin status fixup for copy + +Regardless of copy operations only setting GNTPIN_hst*, GNTPIN_dev* +also need to be taken into account when deciding whether to clear +_GTF_{read,writ}ing. At least for consistency with code elsewhere the +read part better doesn't use any mask at all. + +This is XSA-230. + +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> +diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c +index ae34547..9c9d33c 100644 +--- a/xen/common/grant_table.c ++++ b/xen/common/grant_table.c +@@ -2107,10 +2107,10 @@ __release_grant_for_copy( + static void __fixup_status_for_copy_pin(const struct active_grant_entry *act, + uint16_t *status) + { +- if ( !(act->pin & GNTPIN_hstw_mask) ) ++ if ( !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) + gnttab_clear_flag(_GTF_writing, status); + +- if ( !(act->pin & GNTPIN_hstr_mask) ) ++ if ( !act->pin ) + gnttab_clear_flag(_GTF_reading, status); + } + +@@ -2318,7 +2318,7 @@ __acquire_grant_for_copy( + + unlock_out_clear: + if ( !(readonly) && +- !(act->pin & GNTPIN_hstw_mask) ) ++ !(act->pin & (GNTPIN_hstw_mask | GNTPIN_devw_mask)) ) + gnttab_clear_flag(_GTF_writing, status); + + if ( !act->pin ) |