diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-05-31 09:19:42 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-05-31 09:19:42 -0700 |
commit | 8aa75b72e3e6f0f566cd963606ec5da11b195c0b (patch) | |
tree | 2714c6ceb59580b13fbd8d30690307fb37020275 /include | |
parent | 498ddaa3b4e72152ae42dab2d4ebe93092885422 (diff) | |
parent | 8d45f1de3994c566cb5ce9b3cb07ff1518e68ddb (diff) | |
download | lwn-8aa75b72e3e6f0f566cd963606ec5da11b195c0b.tar.gz lwn-8aa75b72e3e6f0f566cd963606ec5da11b195c0b.zip |
Merge tag 'misc-habanalabs-fixes-2019-05-24' of git://people.freedesktop.org/~gabbayo/linux into char-misc-linus
Oded writes:
This tag contains the following fixes:
- Halt debug engines when user process closes the FD. We can't allow the
device to issue transactions for a user which doesn't exists anymore.
- Fix various security holes in debugfs API.
- Add a new opcode to the DEBUG IOCTL API. The opcode is designed
for setting the device into and out of debug mode. Although not a fix
per-se, because this is a new IOCTL which is upstreamed in kernel 5.2, I
think this is justified at this point because we won't be able to change
the API later.
- Fix a bug where the code used an uninitialized mutex
* tag 'misc-habanalabs-fixes-2019-05-24' of git://people.freedesktop.org/~gabbayo/linux:
habanalabs: Avoid using a non-initialized MMU cache mutex
habanalabs: fix debugfs code
uapi/habanalabs: add opcode for enable/disable device debug mode
habanalabs: halt debug engines on user process close
Diffstat (limited to 'include')
-rw-r--r-- | include/uapi/misc/habanalabs.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/include/uapi/misc/habanalabs.h b/include/uapi/misc/habanalabs.h index 8ac292cf4d00..204ab9b4ae67 100644 --- a/include/uapi/misc/habanalabs.h +++ b/include/uapi/misc/habanalabs.h @@ -413,6 +413,10 @@ struct hl_debug_params_spmu { #define HL_DEBUG_OP_SPMU 5 /* Opcode for timestamp */ #define HL_DEBUG_OP_TIMESTAMP 6 +/* Opcode for setting the device into or out of debug mode. The enable + * variable should be 1 for enabling debug mode and 0 for disabling it + */ +#define HL_DEBUG_OP_SET_MODE 7 struct hl_debug_args { /* @@ -574,8 +578,22 @@ struct hl_debug_args { * * This IOCTL allows the user to get debug traces from the chip. * - * The user needs to provide the register index and essential data such as - * buffer address and size. + * Before the user can send configuration requests of the various + * debug/profile engines, it needs to set the device into debug mode. + * This is because the debug/profile infrastructure is shared component in the + * device and we can't allow multiple users to access it at the same time. + * + * Once a user set the device into debug mode, the driver won't allow other + * users to "work" with the device, i.e. open a FD. If there are multiple users + * opened on the device, the driver won't allow any user to debug the device. + * + * For each configuration request, the user needs to provide the register index + * and essential data such as buffer address and size. + * + * Once the user has finished using the debug/profile engines, he should + * set the device into non-debug mode, i.e. disable debug mode. + * + * The driver can decide to "kick out" the user if he abuses this interface. * */ #define HL_IOCTL_DEBUG \ |