mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00
linux_spi: properly convert pointers to kernel's u64
For arm64 with 32-bit userspace, pointers such as 0xff96ebf8 were incorrectly getting converted to u64_t 0xffffffffff96ebf8 in the spi_ioc_transfer struct which was causing ioctl()s to be rejected by the kernel. With this patch we first cast to uintptr_t (to avoid warnings on architectures where char * are not 64b wide) and then to uint64_t which is always big enough and does not produce warnings. This patch is taken from ChromiumOS' Change-Id: I5a15b4ca5d9657c3cb1ddccd42eafd91c852dd26 Corresponding to flashrom svn r1836. Signed-off-by: David Riley <davidriley@chromium.org> Reviewed-by: David Hendricks <dhendrix@chromium.org> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
parent
03a9c3c1bb
commit
18f509780a
@ -142,11 +142,11 @@ static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt,
|
||||
int iocontrol_code;
|
||||
struct spi_ioc_transfer msg[2] = {
|
||||
{
|
||||
.tx_buf = (uint64_t)(ptrdiff_t)txbuf,
|
||||
.tx_buf = (uint64_t)(uintptr_t)txbuf,
|
||||
.len = writecnt,
|
||||
},
|
||||
{
|
||||
.rx_buf = (uint64_t)(ptrdiff_t)rxbuf,
|
||||
.rx_buf = (uint64_t)(uintptr_t)rxbuf,
|
||||
.len = readcnt,
|
||||
},
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user