PD#150582
struct compat_wl_ioctl has uint32 pointer to buff
but we are 64bit kernel. fix this bug, so uper can
get the right ssid from this buff.
Change-Id: I19642af9eddb4babb03fc285d205f0c17c6c5529
if (is_compat_task())
#endif
{
+
compat_wl_ioctl_t compat_ioc;
if (copy_from_user(&compat_ioc, ifr->ifr_data, sizeof(compat_wl_ioctl_t))) {
ret = BCME_BADADDR;
goto done;
}
+
ioc.cmd = compat_ioc.cmd;
- ioc.buf = compat_ptr(compat_ioc.buf);
+ ioc.buf = (uint64 *)compat_ioc.buf;
ioc.len = compat_ioc.len;
ioc.set = compat_ioc.set;
ioc.used = compat_ioc.used;
#ifdef CONFIG_COMPAT
typedef struct compat_wl_ioctl {
uint cmd; /**< common ioctl definition */
- uint32 buf; /**< pointer to user buffer */
+ uint64 buf; /**< pointer to user buffer */
uint len; /**< length of user buffer */
uint8 set; /**< 1=set IOCTL; 0=query IOCTL */
uint used; /**< bytes read or written (optional) */