On Mon, 2013-07-08 at 21:52 +0000, Jeffrey (Sheng-Hui) Chu wrote: [] > diff --git a/drivers/nfc/bcm2079x/bcm2079x-i2c.c b/drivers/nfc/bcm2079x/bcm2079x-i2c.c [] > +/* do not change below */ > +#define MAX_BUFFER_SIZE 780 [] > +static ssize_t bcm2079x_dev_read(struct file *filp, char __user *buf, > + size_t count, loff_t *offset) > +{ > + struct bcm2079x_dev *bcm2079x_dev = filp->private_data; > + unsigned char tmp[MAX_BUFFER_SIZE]; 780 bytes on stack isn't a great idea. > +static ssize_t bcm2079x_dev_write(struct file *filp, const char __user *buf, > + size_t count, loff_t *offset) > +{ > + struct bcm2079x_dev *bcm2079x_dev = filp->private_data; > + char tmp[MAX_BUFFER_SIZE]; etc. > + int ret; > + > + if (count > MAX_BUFFER_SIZE) { > + dev_err(&bcm2079x_dev->client->dev, "out of memory\n"); Out of memory isn't really true. The packet size is just too big for your little buffer. > +static int bcm2079x_dev_open(struct inode *inode, struct file *filp) > +{ > + int ret = 0; > + > + struct bcm2079x_dev *bcm2079x_dev = container_of(filp->private_data, > + struct bcm2079x_dev, > + bcm2079x_device); > + filp->private_data = bcm2079x_dev; > + bcm2079x_init_stat(bcm2079x_dev); > + bcm2079x_enable_irq(bcm2079x_dev); > + dev_info(&bcm2079x_dev->client->dev, > + "%d,%d\n", imajor(inode), iminor(inode)); Looks to me like this should be dev_dbg not dev_info -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html