diff options
Diffstat (limited to '0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch')
-rw-r--r-- | 0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch b/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch index 3362eaddf..2128d4912 100644 --- a/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch +++ b/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch @@ -19,7 +19,7 @@ index aee5eff229f2..15b3cb618c6e 100644 @@ -661,6 +661,48 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev) return vbg_status_code_to_errno(rc); } - + +/** + * Set guest capabilities on the host. + * Must be called with gdev->session_mutex hold. @@ -87,12 +87,12 @@ index aee5eff229f2..15b3cb618c6e 100644 - /* Ignore allocation failure, we must do session cleanup. */ - } + int ret = 0; - + mutex_lock(&gdev->session_mutex); - + @@ -709,23 +736,10 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, goto out; - + vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); - or_mask = gdev->set_guest_caps_tracker.mask; - @@ -110,7 +110,7 @@ index aee5eff229f2..15b3cb618c6e 100644 - gdev->guest_caps_host = U32_MAX; - if (session_termination) - goto out; - + + ret = vbg_set_host_capabilities(gdev, session, session_termination); + /* Roll back on failure, unless it's session termination time. */ + if (ret < 0 && !session_termination) { @@ -118,13 +118,13 @@ index aee5eff229f2..15b3cb618c6e 100644 session->set_guest_caps); session->set_guest_caps = previous; @@ -733,7 +747,6 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, - + out: mutex_unlock(&gdev->session_mutex); - vbg_req_free(req, sizeof(*req)); - + return ret; } -- -2.26.2 +2.25.4 |