Message ID | 20180406083717.GA21857@mwanda (mailing list archive) |
---|---|
State | Accepted |
Commit | 350fcdb834576162ab55519ed86572c00ea786a7 |
Delegated to: | Kalle Valo |
Headers | show |
On 4/6/2018 10:37 AM, Dan Carpenter wrote: > The issue here is that we allocate "data" and then set > "data = PTR_ALIGN(data, 8);" and then we free the aligned pointer > instead of the original pointer. > > kmalloc() pointers are already ARCH_SLAB_MINALIGN aligned which is 8 or > more on everything except certain Xtensa variants. We decided that if > the Xtensa people ever notice a bug here then we'll tell them the bug is > on their side. ;) I am not sure if it was decided to be a xtensa bug, but just to ignore the issue until it would arise. Anyway, not sure if the last sentence is useful in the commit message. Regards, Arend
Arend van Spriel <arend.vanspriel@broadcom.com> writes: > On 4/6/2018 10:37 AM, Dan Carpenter wrote: >> The issue here is that we allocate "data" and then set >> "data = PTR_ALIGN(data, 8);" and then we free the aligned pointer >> instead of the original pointer. >> >> kmalloc() pointers are already ARCH_SLAB_MINALIGN aligned which is 8 or >> more on everything except certain Xtensa variants. We decided that if >> the Xtensa people ever notice a bug here then we'll tell them the bug is >> on their side. ;) > > I am not sure if it was decided to be a xtensa bug, but just to ignore > the issue until it would arise. IIRC on other architectures the allocation is already aligned properly so there shouldn't be any functional changes with this patch, expect on xtensa of course. > Anyway, not sure if the last sentence is useful in the commit message. IMHO it is useful as it gives a summary of our discussion, just with a humorous tone :)
Dan Carpenter <dan.carpenter@oracle.com> wrote: > The issue here is that we allocate "data" and then set > "data = PTR_ALIGN(data, 8);" and then we free the aligned pointer > instead of the original pointer. > > kmalloc() pointers are already ARCH_SLAB_MINALIGN aligned which is 8 or > more on everything except certain Xtensa variants. We decided that if > the Xtensa people ever notice a bug here then we'll tell them the bug is > on their side. ;) > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Patch applied to wireless-drivers-next.git, thanks. 350fcdb83457 rsi: remove unecessary PTR_ALIGN()s
diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c index d76e69c0beaa..8ef00582c6ea 100644 --- a/drivers/net/wireless/rsi/rsi_91x_sdio.c +++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c @@ -660,8 +660,6 @@ static int rsi_sdio_master_reg_read(struct rsi_hw *adapter, u32 addr, if (!data) return -ENOMEM; - data = PTR_ALIGN(data, 8); - ms_addr = (addr >> 16); status = rsi_sdio_master_access_msword(adapter, ms_addr); if (status < 0) { @@ -724,8 +722,6 @@ static int rsi_sdio_master_reg_write(struct rsi_hw *adapter, if (!data_aligned) return -ENOMEM; - data_aligned = PTR_ALIGN(data_aligned, 8); - if (size == 2) { *data_aligned = ((data << 16) | (data & 0xFFFF)); } else if (size == 1) {
The issue here is that we allocate "data" and then set "data = PTR_ALIGN(data, 8);" and then we free the aligned pointer instead of the original pointer. kmalloc() pointers are already ARCH_SLAB_MINALIGN aligned which is 8 or more on everything except certain Xtensa variants. We decided that if the Xtensa people ever notice a bug here then we'll tell them the bug is on their side. ;) Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v2: Instead of saving the original pointer, just remove the ALIGN()s