|
@@ -1125,12 +1125,13 @@ static void radeon_switcheroo_set_state(struct pci_dev *pdev, enum vga_switchero
|
|
|
static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
|
|
|
{
|
|
|
struct drm_device *dev = pci_get_drvdata(pdev);
|
|
|
- bool can_switch;
|
|
|
|
|
|
- spin_lock(&dev->count_lock);
|
|
|
- can_switch = (dev->open_count == 0);
|
|
|
- spin_unlock(&dev->count_lock);
|
|
|
- return can_switch;
|
|
|
+ /*
|
|
|
+ * FIXME: open_count is protected by drm_global_mutex but that would lead to
|
|
|
+ * locking inversion with the driver load path. And the access here is
|
|
|
+ * completely racy anyway. So don't bother with locking for now.
|
|
|
+ */
|
|
|
+ return dev->open_count == 0;
|
|
|
}
|
|
|
|
|
|
static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
|