Возникла следующая проблема при чтении данных с устройства
Следующая функция возвращает ошибку -EOVERFLOW (-75) при попытке чтения с устройства 16кб данных.
static ssize_t mydev_read(struct file *file, char *buffer, size_t count, loff_t *ppos)
{
struct usb_skel *dev;
int retval = 0;dev = (struct usb_skel *)file->private_data;
/* do a blocking bulk read to get data from the device */
retval = usb_bulk_msg(dev->udev,
usb_rcvbulkpipe(dev->udev, 5),
dev->bulk_in_buffer,
min(dev->bulk_in_size, count),
&count, HZ*10);/* if the read was successful, copy the data to userspace */
if (!retval) {
if (copy_to_user(buffer, dev->bulk_in_buffer, count))
retval = -EFAULT;
else
retval = count;
} else info("read error %d",retval);return retval;
}Кто-нибудь может подсказать что может быть этому причиной?
Система - Fedora Сore 4.Заранее благодарен
>Возникла следующая проблема при чтении данных с устройства
>Следующая функция возвращает ошибку -EOVERFLOW (-75) при попытке чтения с устройства 16кб
>данных.
>
>
>static ssize_t mydev_read(struct file *file, char *buffer, size_t count, loff_t *ppos)
>{
> struct usb_skel *dev;
> int retval = 0;
>
> dev = (struct usb_skel *)file->private_data;
>
> /* do a blocking bulk read to get data from the
>device */
> retval = usb_bulk_msg(dev->udev,
> usb_rcvbulkpipe(dev->udev, 5),
> dev->bulk_in_buffer,
> min(dev->bulk_in_size, count),
> &count, HZ*10);
>
> /* if the read was successful, copy the data to userspace
>*/
> if (!retval) {
>
> if (copy_to_user(buffer, dev->bulk_in_buffer, count))
> retval = -EFAULT;
> else
> retval = count;
> } else info("read error %d",retval);
>
> return retval;
>}
>
>Кто-нибудь может подсказать что может быть этому причиной?
>Система - Fedora Сore 4.
>
>Заранее благодарен
Что-то никто не отвечает... Мож я как-то не так вопрос задал?