Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 236033
b: refs/heads/master
c: 7227ba0
h: refs/heads/master
i:
  236031: 632ccd8
v: v3
  • Loading branch information
Javier Martinez Canillas authored and Greg Kroah-Hartman committed Feb 18, 2011
1 parent d468ad6 commit 83a2cbe
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a7d3976edc32e6041f9d68c79ba64a17d5ec5095
refs/heads/master: 7227ba06479f981f5cf9977a7eeb3a20d30dc501
52 changes: 28 additions & 24 deletions trunk/drivers/staging/bcm/Bcmchar.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,59 +96,63 @@ static int bcm_char_release(struct inode *inode, struct file *filp)
return 0;
}

static ssize_t bcm_char_read(struct file *filp, char __user *buf, size_t size, loff_t *f_pos)
static ssize_t bcm_char_read(struct file *filp, char __user *buf, size_t size,
loff_t *f_pos)
{
PPER_TARANG_DATA pTarang = filp->private_data;
PMINI_ADAPTER Adapter = pTarang->Adapter;
struct sk_buff* Packet = NULL;
struct sk_buff *Packet = NULL;
ssize_t PktLen = 0;
int wait_ret_val=0;
int wait_ret_val = 0;
unsigned long ret = 0;

wait_ret_val = wait_event_interruptible(Adapter->process_read_wait_queue,
(pTarang->RxAppControlHead || Adapter->device_removed));
if((wait_ret_val == -ERESTARTSYS))
{
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL, "Exiting as i've been asked to exit!!!\n");
(pTarang->RxAppControlHead ||
Adapter->device_removed));
if ((wait_ret_val == -ERESTARTSYS)) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
"Exiting as i've been asked to exit!!!\n");
return wait_ret_val;
}

if(Adapter->device_removed)
{
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL, "Device Removed... Killing the Apps...\n");
if (Adapter->device_removed) {
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
"Device Removed... Killing the Apps...\n");
return -ENODEV;
}

if(FALSE == Adapter->fw_download_done)
if (FALSE == Adapter->fw_download_done)
return -EACCES;

down( &Adapter->RxAppControlQueuelock);
down(&Adapter->RxAppControlQueuelock);

if(pTarang->RxAppControlHead)
{
if (pTarang->RxAppControlHead) {
Packet = pTarang->RxAppControlHead;
DEQUEUEPACKET(pTarang->RxAppControlHead,pTarang->RxAppControlTail);
DEQUEUEPACKET(pTarang->RxAppControlHead,
pTarang->RxAppControlTail);
pTarang->AppCtrlQueueLen--;
}

up(&Adapter->RxAppControlQueuelock);
up(&Adapter->RxAppControlQueuelock);

if(Packet)
{
if (Packet) {
PktLen = Packet->len;
if(copy_to_user(buf, Packet->data, min_t(size_t, PktLen, size)))
{
ret = copy_to_user(buf, Packet->data,
min_t(size_t, PktLen, size));
if (ret) {
dev_kfree_skb(Packet);
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_PRINTK, 0, 0, "\nReturning from copy to user failure \n");
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0,
"Returning from copy to user failure\n");
return -EFAULT;
}
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL,
"Read %zd Bytes From Adapter packet = %p by process %d!\n",
PktLen, Packet, current->pid);
dev_kfree_skb(Packet);
}

BCM_DEBUG_PRINT(Adapter,DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL, "<====\n");
return PktLen;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL, "<\n");
return PktLen;
}

static long bcm_char_ioctl(struct file *filp, UINT cmd, ULONG arg)
Expand Down

0 comments on commit 83a2cbe

Please sign in to comment.