Skip to content

Commit ddb82fa

Browse files
committed
ASoC: SOF: trace: fix linker error in i386 mode
64-bit division or modulo needs to rely on do_div, cannot use / or % in 32-bit mode Fixes linker error ERROR: "__moddi3" [sound/soc/sof/snd-sof.ko] undefined! scripts/Makefile.modpost:92: recipe for target '__modpost' failed Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
1 parent d6420ae commit ddb82fa

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

sound/soc/sof/trace.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ static ssize_t sof_dfsentry_trace_read(struct file *file, char __user *buffer,
7373
unsigned long rem;
7474
loff_t lpos = *ppos;
7575
size_t avail, buffer_size = dfse->size;
76+
u64 lpos_64;
7677

7778
/* make sure we know about any failures on the DSP side */
7879
sdev->dtrace_error = false;
@@ -84,7 +85,9 @@ static ssize_t sof_dfsentry_trace_read(struct file *file, char __user *buffer,
8485
return 0;
8586

8687
/* check for buffer wrap and count overflow */
87-
lpos = lpos % buffer_size;
88+
lpos_64 = lpos;
89+
lpos = do_div(lpos_64, buffer_size);
90+
8891
if (count > buffer_size - lpos)
8992
count = buffer_size - lpos;
9093

0 commit comments

Comments
 (0)