[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-25 Thread Andrey Grodzovsky
Not clearing mst manager's proposed vcpis table for
destroyed connectors when the manager is stopped
leaves it pointing to unrefernced memory,
this causes pagefault when the manager is
restarted when plugging back a branch.

Fixes: 91a25e463130 ("drm/dp/mst: deallocate payload on port destruction")
Signed-off-by: Andrey Grodzovsky 
Reviewed-by: Lyude 
Cc: stable at vger.kernel.org
Cc: Mykola Lysenko 
Cc: Alex Deucher 

---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 9971c46..cd6014b 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -2881,11 +2881,9 @@ static void drm_dp_destroy_connector_work(struct 
work_struct *work)
drm_dp_port_teardown_pdt(port, port->pdt);

if (!port->input && port->vcpi.vcpi > 0) {
-   if (mgr->mst_state) {
-   drm_dp_mst_reset_vcpi_slots(mgr, port);
-   drm_dp_update_payload_part1(mgr);
-   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
-   }
+   drm_dp_mst_reset_vcpi_slots(mgr, port);
+   drm_dp_update_payload_part1(mgr);
+   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
}

kref_put(&port->kref, drm_dp_free_mst_port);
-- 
1.9.1



[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-25 Thread Andrey Grodzovsky
Not clearing mst manager's proposed vcpis table for
destroyed connectors when the manager is stopped
leaves it pointing to unrefernced memory,
this causes pagefault when the manager is
restarted when plugging back a branch.

Fixes: 91a25e463130 ("drm/dp/mst: deallocate payload on port destruction")
Signed-off-by: Andrey Grodzovsky 
Reviewed-by: Lyude 

---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 9971c46..cd6014b 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -2881,11 +2881,9 @@ static void drm_dp_destroy_connector_work(struct 
work_struct *work)
drm_dp_port_teardown_pdt(port, port->pdt);

if (!port->input && port->vcpi.vcpi > 0) {
-   if (mgr->mst_state) {
-   drm_dp_mst_reset_vcpi_slots(mgr, port);
-   drm_dp_update_payload_part1(mgr);
-   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
-   }
+   drm_dp_mst_reset_vcpi_slots(mgr, port);
+   drm_dp_update_payload_part1(mgr);
+   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
}

kref_put(&port->kref, drm_dp_free_mst_port);
-- 
1.9.1



[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-25 Thread Greg KH
On Wed, May 25, 2016 at 12:08:23PM -0400, Andrey Grodzovsky wrote:
> Not clearing mst manager's proposed vcpis table for
> destroyed connectors when the manager is stopped
> leaves it pointing to unrefernced memory,
> this causes pagefault when the manager is
> restarted when plugging back a branch.
> 
> Fixes: 91a25e463130 ("drm/dp/mst: deallocate payload on port destruction")
> Signed-off-by: Andrey Grodzovsky 
> Reviewed-by: Lyude 
> 



This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read Documentation/stable_kernel_rules.txt
for how to do this properly.




[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-24 Thread Lyude Paul
Looks good to me.

Reviewed-by: Lyude 

On Thu, 2016-05-19 at 23:18 -0400, Andrey Grodzovsky wrote:
> Not clearing mst manager's proposed vcpis table for destroyed
> connectors when the manager is stopped leaves it pointing to
> unrefernced memory, this causes pagefault when the manager is
> restarted when plugging back a branch.
> 
> Signed-off-by: Andrey Grodzovsky 
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++-
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c
> b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 9971c46..cd6014b 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2881,11 +2881,9 @@ static void drm_dp_destroy_connector_work(struct
> work_struct *work)
>  drm_dp_port_teardown_pdt(port, port->pdt);
>  
>  if (!port->input && port->vcpi.vcpi > 0) {
> - if (mgr->mst_state) {
> - drm_dp_mst_reset_vcpi_slots(mgr, port);
> - drm_dp_update_payload_part1(mgr);
> - drm_dp_mst_put_payload_id(mgr, port-
> >vcpi.vcpi);
> - }
> + drm_dp_mst_reset_vcpi_slots(mgr, port);
> + drm_dp_update_payload_part1(mgr);
> + drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
>  }
>  
>  kref_put(&port->kref, drm_dp_free_mst_port);


[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-23 Thread Jani Nikula

Added some folks to Cc.

On Fri, 20 May 2016, Andrey Grodzovsky  wrote:
> Not clearing mst manager's proposed vcpis table for destroyed
> connectors when the manager is stopped leaves it pointing to
> unrefernced memory, this causes pagefault when the manager is
> restarted when plugging back a branch.

You should list the relevant Cc's here too, and note where the bug was
introduced. A quick glance suggests

Fixes: 91a25e463130 ("drm/dp/mst: deallocate payload on port destruction")

but Mykola hopefully knows better.

BR,
Jani.

> Signed-off-by: Andrey Grodzovsky 
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++-
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
> b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 9971c46..cd6014b 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2881,11 +2881,9 @@ static void drm_dp_destroy_connector_work(struct 
> work_struct *work)
>   drm_dp_port_teardown_pdt(port, port->pdt);
>  
>   if (!port->input && port->vcpi.vcpi > 0) {
> - if (mgr->mst_state) {
> - drm_dp_mst_reset_vcpi_slots(mgr, port);
> - drm_dp_update_payload_part1(mgr);
> - drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
> - }
> + drm_dp_mst_reset_vcpi_slots(mgr, port);
> + drm_dp_update_payload_part1(mgr);
> + drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
>   }
>  
>   kref_put(&port->kref, drm_dp_free_mst_port);

-- 
Jani Nikula, Intel Open Source Technology Center


[PATCH] drm/dp/mst: Always clear proposed vcpi table for port.

2016-05-19 Thread Andrey Grodzovsky
Not clearing mst manager's proposed vcpis table for destroyed
connectors when the manager is stopped leaves it pointing to
unrefernced memory, this causes pagefault when the manager is
restarted when plugging back a branch.

Signed-off-by: Andrey Grodzovsky 
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c 
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 9971c46..cd6014b 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -2881,11 +2881,9 @@ static void drm_dp_destroy_connector_work(struct 
work_struct *work)
drm_dp_port_teardown_pdt(port, port->pdt);

if (!port->input && port->vcpi.vcpi > 0) {
-   if (mgr->mst_state) {
-   drm_dp_mst_reset_vcpi_slots(mgr, port);
-   drm_dp_update_payload_part1(mgr);
-   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
-   }
+   drm_dp_mst_reset_vcpi_slots(mgr, port);
+   drm_dp_update_payload_part1(mgr);
+   drm_dp_mst_put_payload_id(mgr, port->vcpi.vcpi);
}

kref_put(&port->kref, drm_dp_free_mst_port);
-- 
1.9.1