[PATCH i-g-t] lib/igt_debugfs: Update documentation and clenup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The documentation was lying. The igt_crc_to_string() is threadsafe and
does not return a pointer to an internal buffer.

Actually the caller is responsible for the memory that is allocated (and
they are for all the current cases), so let's put that in the doc too.

While I was at it I got rid of strdup() in favor of an early allocation.

Cc: Martin Peres <martin.peres@xxxxxxxxx>
Cc: Liviu Dudau <liviu.dudau@xxxxxxx>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@xxxxxxxxx>
---
 lib/igt_debugfs.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index 80f25c6..5e4d72c 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -304,21 +304,20 @@ void igt_assert_crc_equal(const igt_crc_t *a, const igt_crc_t *b)
  * igt_crc_to_string:
  * @crc: pipe CRC value to print
  *
- * This formats @crc into a string buffer which is owned by igt_crc_to_string().
- * The next call will override the buffer again, which makes this multithreading
- * unsafe.
+ * This formats @crc into a string. Function allocates memory - the caller is
+ * in charge of freeing it.
  *
  * This should only ever be used for diagnostic debug output.
  */
 char *igt_crc_to_string(igt_crc_t *crc)
 {
 	int i;
-	char buf[128] = { 0 };
+	char *buf = calloc(128, sizeof(char));
 
 	for (i = 0; i < crc->n_words; i++)
 		sprintf(buf + strlen(buf), "%08x ", crc->crc[i]);
 
-	return strdup(buf);
+	return buf;
 }
 
 #define MAX_CRC_ENTRIES 10
-- 
2.9.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux