diff mbox

[1/6] Revert "drm: Use a flexible array member for blob property data"

Message ID 20180223192506.29992-1-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä Feb. 23, 2018, 7:25 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Using a flexible array for the blob data was a mistake by me. It
forces all users of the blob data to cast blob->data to something
else. void* is clearly superior so let's go back to the original
scheme.

Not a clean revert as the code has moved.

This reverts commit d63f5e6bf6f2a1573ea39c9937cdf5ab0b3a4b77.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/drm_property.c | 1 +
 include/drm/drm_property.h     | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Ville Syrjälä March 16, 2018, 10:33 a.m. UTC | #1
On Thu, Mar 15, 2018 at 11:27:54PM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: series starting with [1/6] Revert "drm: Use a flexible array member for blob property data" (rev4)
> URL   : https://patchwork.freedesktop.org/series/38886/
> State : failure
> 
> == Summary ==
> 
> ---- Possible new issues:
> 
> Test kms_cursor_crc:
>         Subgroup cursor-128x128-suspend:
>                 pass       -> FAIL       (shard-apl)

<6>[  626.852771] Freezing user space processes ... 
<4>[  627.123848] hpet1: lost 7161 rtc interrupts
<4>[  628.008661] hpet1: lost 7161 rtc interrupts
<4>[  628.893790] hpet1: lost 7160 rtc interrupts
<4>[  629.779156] hpet1: lost 7161 rtc interrupts
<4>[  630.663018] hpet1: lost 7161 rtc interrupts
<4>[  631.526633] hpet1: lost 7161 rtc interrupts
<4>[  632.410351] hpet1: lost 7161 rtc interrupts
<4>[  633.294550] hpet1: lost 7161 rtc interrupts
<4>[  634.178637] hpet1: lost 7161 rtc interrupts
<4>[  635.062672] hpet1: lost 7160 rtc interrupts
<4>[  635.946840] hpet1: lost 7161 rtc interrupts
<4>[  636.832115] hpet1: lost 7161 rtc interrupts
<4>[  637.717328] hpet1: lost 7161 rtc interrupts
<4>[  638.581866] hpet1: lost 7161 rtc interrupts
<4>[  639.446595] hpet1: lost 7161 rtc interrupts
<4>[  640.332169] hpet1: lost 7161 rtc interrupts
<4>[  641.217026] hpet1: lost 7160 rtc interrupts
<3>[  646.850043] Freezing of tasks failed after 20.007 seconds (1 tasks refusing to freeze, wq_busy=0):
<6>[  646.850229] fstrim          D    0  1998   1997 0x00000004
<4>[  646.850259] Call Trace:
<4>[  646.850277]  ? __schedule+0x3c7/0xb00
<4>[  646.850289]  ? wait_for_common_io.constprop.2+0xe2/0x180
<4>[  646.850296]  schedule+0x37/0x90
<4>[  646.850303]  schedule_timeout+0x21d/0x510
<4>[  646.850311]  ? trace_hardirqs_on_caller+0xde/0x1c0
<4>[  646.850327]  ? wait_for_common_io.constprop.2+0xe2/0x180
<4>[  646.850333]  io_schedule_timeout+0x14/0x40
<4>[  646.850340]  wait_for_common_io.constprop.2+0x101/0x180
<4>[  646.850348]  ? wake_up_q+0x70/0x70
<4>[  646.850360]  submit_bio_wait+0x4a/0x60
<4>[  646.850376]  blkdev_issue_discard+0x6c/0xb0
<4>[  646.850394]  ? ext4_trim_fs+0x489/0xbe0
<4>[  646.850398]  ext4_trim_fs+0x489/0xbe0
<4>[  646.850431]  ext4_ioctl+0xc7c/0xf10
<4>[  646.850448]  do_vfs_ioctl+0x8a/0x670
<4>[  646.850455]  ? SyS_newfstat+0x29/0x40
<4>[  646.850463]  ? entry_SYSCALL_64_after_hwframe+0x52/0xb7
<4>[  646.850472]  SyS_ioctl+0x36/0x70
<4>[  646.850482]  do_syscall_64+0x65/0x1a0
<4>[  646.850490]  entry_SYSCALL_64_after_hwframe+0x42/0xb7
<4>[  646.850496] RIP: 0033:0x7fd55d4f1587
<4>[  646.850500] RSP: 002b:00007ffe19de8038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
<4>[  646.850509] RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007fd55d4f1587
<4>[  646.850513] RDX: 00007ffe19de8040 RSI: 00000000c0185879 RDI: 0000000000000004
<4>[  646.850517] RBP: 0000557ba4f5ff90 R08: 0000557ba4f66180 R09: 0000000000000000
<4>[  646.850521] R10: 000000000000000a R11: 0000000000000246 R12: 0000557ba4f60800
<4>[  646.850526] R13: 0000000000000000 R14: 00007fd55dc09250 R15: 0000557ba4f60800
<6>[  646.850553] OOM killer enabled.
<6>[  646.850557] Restarting tasks ... done.
<6>[  646.866332] video LNXVIDEO:00: Restoring backlight state
<6>[  646.866359] PM: suspend exit

Doesn't seem particularly relevant for this series.

> 
> ---- Known issues:
> 
> Test kms_frontbuffer_tracking:
>         Subgroup fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
>                 pass       -> FAIL       (shard-apl) fdo#101623
> Test kms_vblank:
>         Subgroup pipe-b-ts-continuation-suspend:
>                 pass       -> SKIP       (shard-snb) fdo#105411
> 
> fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
> fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
> 
> shard-apl        total:3442 pass:1812 dwarn:1   dfail:0   fail:9   skip:1619 time:12935s
> shard-hsw        total:3442 pass:1768 dwarn:1   dfail:0   fail:1   skip:1671 time:11957s
> shard-snb        total:3442 pass:1355 dwarn:1   dfail:0   fail:3   skip:2083 time:7154s
> Blacklisted hosts:
> shard-kbl        total:2091 pass:1139 dwarn:17  dfail:1   fail:4   skip:929 time:5806s
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8371/shards.html
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_property.c b/drivers/gpu/drm/drm_property.c
index bae50e6b819d..0f6620fea3de 100644
--- a/drivers/gpu/drm/drm_property.c
+++ b/drivers/gpu/drm/drm_property.c
@@ -550,6 +550,7 @@  drm_property_create_blob(struct drm_device *dev, size_t length,
 	/* This must be explicitly initialised, so we can safely call list_del
 	 * on it in the removal handler, even if it isn't in a file list. */
 	INIT_LIST_HEAD(&blob->head_file);
+	blob->data = (void *)blob + sizeof(*blob);
 	blob->length = length;
 	blob->dev = dev;
 
diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h
index 8a522b4bed40..265fd1f2e112 100644
--- a/include/drm/drm_property.h
+++ b/include/drm/drm_property.h
@@ -209,7 +209,7 @@  struct drm_property_blob {
 	struct list_head head_global;
 	struct list_head head_file;
 	size_t length;
-	unsigned char data[];
+	void *data;
 };
 
 struct drm_prop_enum_list {