Skip to content

Commit 00dd3ac

Browse files
debox1jwrdegoede
authored andcommitted
platform/x86/intel/sdsi: Fix bug in multi packet reads
Fix bug that added an offset to the mailbox addr during multi-packet reads. Did not affect current ABI since it doesn't support multi-packet transactions. Fixes: 2546c60 ("platform/x86: Add Intel Software Defined Silicon driver") Signed-off-by: David E. Box <david.e.box@linux.intel.com> Link: https://lore.kernel.org/r/20220420155622.1763633-4-david.e.box@linux.intel.com Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 parent a30393b commit 00dd3ac

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

  • drivers/platform/x86/intel

drivers/platform/x86/intel/sdsi.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ enum sdsi_command {
8383

8484
struct sdsi_mbox_info {
8585
u64 *payload;
86-
u64 *buffer;
86+
void *buffer;
8787
int size;
8888
};
8989

@@ -165,9 +165,7 @@ static int sdsi_mbox_cmd_read(struct sdsi_priv *priv, struct sdsi_mbox_info *inf
165165
total = 0;
166166
loop = 0;
167167
do {
168-
int offset = SDSI_SIZE_MAILBOX * loop;
169-
void __iomem *addr = priv->mbox_addr + offset;
170-
u64 *buf = info->buffer + offset / SDSI_SIZE_CMD;
168+
void *buf = info->buffer + (SDSI_SIZE_MAILBOX * loop);
171169
u32 packet_size;
172170

173171
/* Poll on ready bit */
@@ -198,7 +196,7 @@ static int sdsi_mbox_cmd_read(struct sdsi_priv *priv, struct sdsi_mbox_info *inf
198196
break;
199197
}
200198

201-
sdsi_memcpy64_fromio(buf, addr, round_up(packet_size, SDSI_SIZE_CMD));
199+
sdsi_memcpy64_fromio(buf, priv->mbox_addr, round_up(packet_size, SDSI_SIZE_CMD));
202200

203201
total += packet_size;
204202

0 commit comments

Comments
 (0)