From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [RFC v3 6/9] kmsg: add ioctl for adding and deleting kmsg* devices Date: Mon, 19 Oct 2015 15:19:25 +0200 Message-ID: <5057964.QyIB3GKfsB@wuerfel> References: <1445259503-18158-1-git-send-email-p.osmialowsk@samsung.com> <1445259503-18158-7-git-send-email-p.osmialowsk@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Return-path: In-Reply-To: <1445259503-18158-7-git-send-email-p.osmialowsk@samsung.com> Sender: linux-doc-owner@vger.kernel.org To: Paul Osmialowski Cc: Jonathan Corbet , Andrew Morton , Petr Mladek , Greg Kroah-Hartman , Daniel Mack , Kay Sievers , Joe Perches , Tejun Heo , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-api@vger.kernel.org, Marcin Niesluchowski , Karol Lewandowski , Bartlomiej Zolnierkiewicz , Shuah Khan List-Id: linux-api@vger.kernel.org On Monday 19 October 2015 14:58:20 Paul Osmialowski wrote: > + > +struct kmsg_cmd_buffer_add { > + size_t size; > + unsigned short mode; > + int minor; > +} __attribute__((packed)); > + > +#define KMSG_IOCTL_MAGIC 0xBB > + > +/* > Try to avoid using packed unaligned data structures. Here I would just use __u64 and __u32 members. > + case KMSG_CMD_BUFFER_ADD: > + if (copy_from_user(&size, argp, sizeof(size))) > + return -EFAULT; > + argp += sizeof(size); > + if (copy_from_user(&mode, argp, sizeof(mode))) > + return -EFAULT; This is a rather unusual way to access the data. Just copy the entire structure to the stack. Arnd