mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 00:51:35 +00:00
gpu: host1x: Forbid unrelated SETCLASS opcode in the firewall
Several channels could be made to write the same unit concurrently via the SETCLASS opcode, trusting userspace is a bad idea. It should be possible to drop the per-client channel reservation and add a per-unit locking by inserting MLOCK's to the command stream to re-allow the SETCLASS opcode, but it will be much more work. Let's forbid the unit-unrelated class changes for now. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Erik Faye-Lund <kusmabite@gmail.com> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
ef81624994
commit
0f563a4bf6
5 changed files with 32 additions and 4 deletions
|
@ -251,6 +251,9 @@ struct host1x_job {
|
|||
/* Check if register is marked as an address reg */
|
||||
int (*is_addr_reg)(struct device *dev, u32 reg, u32 class);
|
||||
|
||||
/* Check if class belongs to the unit */
|
||||
int (*is_valid_class)(u32 class);
|
||||
|
||||
/* Request a SETCLASS to this class */
|
||||
u32 class;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue