[PATCH] Staging:lustre:lclient:Remove unused function

2016-01-29 Thread Bhumika Goyal
Discard the function ccc_vmpage_page_transient as it is not used
anywhere in the kernel.
Used grep to find occurences.
Problem found using sparse.

Signed-off-by: Bhumika Goyal 
---
 drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 11 ---
 1 file changed, 11 deletions(-)

diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c 
b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c
index 34dde7d..4dfeb4e 100644
--- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c
+++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c
@@ -986,17 +986,6 @@ struct inode *ccc_object_inode(const struct cl_object *obj)
 }
 
 /**
- * Returns a pointer to cl_page associated with \a vmpage, without acquiring
- * additional reference to the resulting page. This is an unsafe version of
- * cl_vmpage_page() that can only be used under vmpage lock.
- */
-struct cl_page *ccc_vmpage_page_transient(struct page *vmpage)
-{
-   KLASSERT(PageLocked(vmpage));
-   return (struct cl_page *)vmpage->private;
-}
-
-/**
  * Initialize or update CLIO structures for regular files when new
  * meta-data arrives from the server.
  *
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Yours Truely Mrs Machiko Kumiko

2016-01-29 Thread Mrs Machiko Kumiko
Hi Dear, 

I am Mrs Machiko Kumiko, from Japan, I Have Been Diagnosed with esophageal 
Cancer. 
I Have Chosen you to distribute my Funds to Charities homes in your Country, 
so if you wish to Carry out this humanitarian Work kindly Get back to me for 
FURTHER details. 

Yours Truely Mrs Machiko Kumiko
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 00/11] sync framework de-staging: part 1 - clean up

2016-01-29 Thread Gustavo Padovan
Hi,

2016-01-25 Maarten Lankhorst :

> Hey,
> 
> Op 21-01-16 om 13:49 schreef Gustavo Padovan:
> > From: Gustavo Padovan 
> >
> > Hi,
> >
> > The following patches are some clean ups on the sync framework before
> > we start the actual de-staging. The main changes here are the move of
> > SW_SYNC_USER to debugfs. Removal of struct sync_pt in favor of direct
> > use of struct fence. And the rename of sync_fence to sync_file, a name
> > to better reflect what it is for, a struct that connects struct fence(s)
> > to a file.
> >
> > Please review. Thanks.
> >
> > Gustavo Padovan (11):
> >   staging/android: fix sync framework documentation
> >   staging/android: sync: remove interfaces that are not used
> >   staging/android: remove not used sync_timeline ops
> >   staging/android: create a 'sync' dir for debugfs information
> >   staging/android: move SW_SYNC_USER to a debugfs file
> >   staging/android: rename sync_fence to sync_file
> >   staging/android: rename 'sync_pt' to 'fence' in struct sync_fence_cb
> >   staging/android: remove struct sync_pt
> >   staging/android: remove unused var from sync_timeline_signal()
> >   staging/android: remove pointless sync_timeline_signal at destroy
> > phase
> >   staging/android: remove sync_fence_create_dma()
> >
> For whole series:
> Reviewed-by: Maarten Lankhorst 
> 
> Renaming sync_fence to sync_file makes sense, it should hopefully reduce 
> confusion.

Poke. What is missing for this to go upstream? Do I need more review
here? Thanks.

Gustavo
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/2] staging: wilc1000: wilc_msgqueue: release semaphore in error path

2016-01-29 Thread Chaehyun Lim
It should be called up(&mq->sem) to release semaphore before returning
error codes as -EFAULT when list is empty.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/wilc_msgqueue.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c 
b/drivers/staging/wilc1000/wilc_msgqueue.c
index f57e4ec..5fe85eb 100644
--- a/drivers/staging/wilc1000/wilc_msgqueue.c
+++ b/drivers/staging/wilc1000/wilc_msgqueue.c
@@ -126,6 +126,7 @@ int wilc_mq_recv(struct message_queue *mq,
 
if (list_empty(&mq->msg_list)) {
spin_unlock_irqrestore(&mq->lock, flags);
+   up(&mq->sem);
PRINT_ER("msg is null\n");
return -EFAULT;
}
-- 
2.7.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/2] staging: wilc1000: wilc_msgqueue: use standard struct list_head

2016-01-29 Thread Chaehyun Lim
This patch uses standard struct list_head in struct message and
message_queue instead of custom linked list.

Signed-off-by: Chaehyun Lim 
---
 drivers/staging/wilc1000/wilc_msgqueue.c | 32 
 drivers/staging/wilc1000/wilc_msgqueue.h |  5 +++--
 2 files changed, 15 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/wilc1000/wilc_msgqueue.c 
b/drivers/staging/wilc1000/wilc_msgqueue.c
index 4493ca9..f57e4ec 100644
--- a/drivers/staging/wilc1000/wilc_msgqueue.c
+++ b/drivers/staging/wilc1000/wilc_msgqueue.c
@@ -15,7 +15,7 @@ int wilc_mq_create(struct message_queue *mq)
 {
spin_lock_init(&mq->lock);
sema_init(&mq->sem, 0);
-   mq->msg_list = NULL;
+   INIT_LIST_HEAD(&mq->msg_list);
mq->recv_count = 0;
mq->exiting = false;
return 0;
@@ -29,6 +29,8 @@ int wilc_mq_create(struct message_queue *mq)
  */
 int wilc_mq_destroy(struct message_queue *mq)
 {
+   struct message *msg;
+
mq->exiting = true;
 
/* Release any waiting receiver thread. */
@@ -37,11 +39,10 @@ int wilc_mq_destroy(struct message_queue *mq)
mq->recv_count--;
}
 
-   while (mq->msg_list) {
-   struct message *msg = mq->msg_list->next;
-
-   kfree(mq->msg_list);
-   mq->msg_list = msg;
+   while (!list_empty(&mq->msg_list)) {
+   msg = list_first_entry(&mq->msg_list, struct message, list);
+   list_del(&msg->list);
+   kfree(msg->buf);
}
 
return 0;
@@ -75,7 +76,7 @@ int wilc_mq_send(struct message_queue *mq,
return -ENOMEM;
 
new_msg->len = send_buf_size;
-   new_msg->next = NULL;
+   INIT_LIST_HEAD(&new_msg->list);
new_msg->buf = kmemdup(send_buf, send_buf_size, GFP_ATOMIC);
if (!new_msg->buf) {
kfree(new_msg);
@@ -85,16 +86,7 @@ int wilc_mq_send(struct message_queue *mq,
spin_lock_irqsave(&mq->lock, flags);
 
/* add it to the message queue */
-   if (!mq->msg_list) {
-   mq->msg_list  = new_msg;
-   } else {
-   struct message *tail_msg = mq->msg_list;
-
-   while (tail_msg->next)
-   tail_msg = tail_msg->next;
-
-   tail_msg->next = new_msg;
-   }
+   list_add_tail(&new_msg->list, &mq->msg_list);
 
spin_unlock_irqrestore(&mq->lock, flags);
 
@@ -132,13 +124,13 @@ int wilc_mq_recv(struct message_queue *mq,
down(&mq->sem);
spin_lock_irqsave(&mq->lock, flags);
 
-   msg = mq->msg_list;
-   if (!msg) {
+   if (list_empty(&mq->msg_list)) {
spin_unlock_irqrestore(&mq->lock, flags);
PRINT_ER("msg is null\n");
return -EFAULT;
}
/* check buffer size */
+   msg = list_first_entry(&mq->msg_list, struct message, list);
if (recv_buf_size < msg->len) {
spin_unlock_irqrestore(&mq->lock, flags);
up(&mq->sem);
@@ -151,7 +143,7 @@ int wilc_mq_recv(struct message_queue *mq,
memcpy(recv_buf, msg->buf, msg->len);
*recv_len = msg->len;
 
-   mq->msg_list = msg->next;
+   list_del(&msg->list);
 
kfree(msg->buf);
kfree(msg);
diff --git a/drivers/staging/wilc1000/wilc_msgqueue.h 
b/drivers/staging/wilc1000/wilc_msgqueue.h
index ddd09843..846a484 100644
--- a/drivers/staging/wilc1000/wilc_msgqueue.h
+++ b/drivers/staging/wilc1000/wilc_msgqueue.h
@@ -2,11 +2,12 @@
 #define __WILC_MSG_QUEUE_H__
 
 #include 
+#include 
 
 struct message {
void *buf;
u32 len;
-   struct message *next;
+   struct list_head list;
 };
 
 struct message_queue {
@@ -14,7 +15,7 @@ struct message_queue {
spinlock_t lock;
bool exiting;
u32 recv_count;
-   struct message *msg_list;
+   struct list_head msg_list;
 };
 
 int wilc_mq_create(struct message_queue *mq);
-- 
2.7.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 01/16] staging: unisys: Fix guestlinuxdebug.h comments

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch simply cleans up all checkpatch comment issues

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/include/guestlinuxdebug.h | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/unisys/include/guestlinuxdebug.h 
b/drivers/staging/unisys/include/guestlinuxdebug.h
index 82ee565..b81287f 100644
--- a/drivers/staging/unisys/include/guestlinuxdebug.h
+++ b/drivers/staging/unisys/include/guestlinuxdebug.h
@@ -17,9 +17,10 @@
 #define __GUESTLINUXDEBUG_H__
 
 /*
-* This file contains supporting interface for "vmcallinterface.h", particularly
-* regarding adding additional structure and functionality to linux
-* ISSUE_IO_VMCALL_POSTCODE_SEVERITY */
+ * This file contains supporting interface for "vmcallinterface.h", 
particularly
+ * regarding adding additional structure and functionality to linux
+ * ISSUE_IO_VMCALL_POSTCODE_SEVERITY
+ */
 
 /*** INFO ON ISSUE_POSTCODE_LINUX() BELOW ***/
 enum driver_pc {   /* POSTCODE driver identifier tuples */
@@ -133,9 +134,9 @@ enum event_pc { /* POSTCODE event 
identifier tuples */
 
 #define POSTCODE_SEVERITY_ERR DIAG_SEVERITY_ERR
 #define POSTCODE_SEVERITY_WARNING DIAG_SEVERITY_WARNING
-#define POSTCODE_SEVERITY_INFO DIAG_SEVERITY_PRINT /* TODO-> Info currently
-* doesn't show, so we
-* set info=warning */
+/* TODO-> Info currently doesn't show, so we set info=warning */
+#define POSTCODE_SEVERITY_INFO DIAG_SEVERITY_PRINT
+
 /* example call of POSTCODE_LINUX_2(VISOR_CHIPSET_PC, POSTCODE_SEVERITY_ERR);
  * Please also note that the resulting postcode is in hex, so if you are
  * searching for the __LINE__ number, convert it first to decimal.  The line
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 12/16] staging: unisys: fix comments in visornic_main.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following types of check patch warnings:
Block comments use * on subsequent lines
Block comments use a trailing */ on a separate line

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visornic/visornic_main.c | 16 ++--
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c 
b/drivers/staging/unisys/visornic/visornic_main.c
index 0519470..9633959 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -1218,8 +1218,9 @@ visornic_rx(struct uiscmdrsp *cmdrsp)
/* length rcvd is greater than firstfrag in this skb rcv buf  */
skb->tail += RCVPOST_BUF_SIZE;  /* amount in skb->data */
skb->data_len = skb->len - RCVPOST_BUF_SIZE;/* amount that
-  will be in
-  frag_list */
+*  will be in
+* frag_list
+*/
} else {
/* data fits in this skb - no chaining - do
 * PRECAUTIONARY check
@@ -1315,12 +1316,14 @@ visornic_rx(struct uiscmdrsp *cmdrsp)
}
if (found_mc)
break;  /* accept packet, dest
-  matches a multicast
-  address */
+* matches a multicast
+* address
+*/
}
} else if (skb->pkt_type == PACKET_HOST) {
break;  /* accept packet, h_dest must match vnic
-  mac address */
+*  mac address
+*/
} else if (skb->pkt_type == PACKET_OTHERHOST) {
/* something is not right */
dev_err(&devdata->netdev->dev,
@@ -1619,7 +1622,8 @@ service_resp_queue(struct uiscmdrsp *cmdrsp, struct 
visornic_devdata *devdata,
struct net_device *netdev;
 
/* TODO: CLIENT ACQUIRE -- Don't really need this at the
-* moment */
+* moment
+*/
for (;;) {
if (!visorchannel_signalremove(devdata->dev->visorchannel,
   IOCHAN_FROM_IOPART,
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 14/16] staging: unisys: fix alignment in visornic_main.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following types of check patch warnings:
Alignment should match open parenthesis

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visornic/visornic_main.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c 
b/drivers/staging/unisys/visornic/visornic_main.c
index 6f6f8e3..77fd1ef 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -437,8 +437,8 @@ post_skb(struct uiscmdrsp *cmdrsp,
cmdrsp->net.type = NET_RCV_POST;
cmdrsp->cmdtype = CMD_NET_TYPE;
if (visorchannel_signalinsert(devdata->dev->visorchannel,
- IOCHAN_TO_IOPART,
- cmdrsp)) {
+ IOCHAN_TO_IOPART,
+ cmdrsp)) {
atomic_inc(&devdata->num_rcvbuf_in_iovm);
devdata->chstat.sent_post++;
} else {
@@ -466,8 +466,8 @@ send_enbdis(struct net_device *netdev, int state,
devdata->cmdrsp_rcv->net.type = NET_RCV_ENBDIS;
devdata->cmdrsp_rcv->cmdtype = CMD_NET_TYPE;
if (visorchannel_signalinsert(devdata->dev->visorchannel,
- IOCHAN_TO_IOPART,
- devdata->cmdrsp_rcv))
+ IOCHAN_TO_IOPART,
+ devdata->cmdrsp_rcv))
devdata->chstat.sent_enbdis++;
 }
 
@@ -1651,7 +1651,7 @@ service_resp_queue(struct uiscmdrsp *cmdrsp, struct 
visornic_devdata *devdata,
 * netif_wake_queue()
 */
if (vnic_hit_low_watermark(devdata,
-   devdata->lower_threshold_net_xmits)) {
+   devdata->lower_threshold_net_xmits)) {
/* enough NET_XMITs completed
 * so can restart netif queue
 */
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 07/16] staging: unisys: fix comparison to NULL in visorchipset.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following type of check patch warnings:
Comparison to NULL could be written

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index 8347ccd..fdfd1c4 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -438,7 +438,7 @@ parser_id_get(struct parser_context *ctx)
 {
struct spar_controlvm_parameters_header *phdr = NULL;
 
-   if (ctx == NULL)
+   if (!ctx)
return NULL_UUID_LE;
phdr = (struct spar_controlvm_parameters_header *)(ctx->data);
return phdr->id;
@@ -461,7 +461,7 @@ parser_param_start(struct parser_context *ctx,
 {
struct spar_controlvm_parameters_header *phdr = NULL;
 
-   if (ctx == NULL)
+   if (!ctx)
goto Away;
phdr = (struct spar_controlvm_parameters_header *)(ctx->data);
switch (which_string) {
@@ -875,7 +875,7 @@ bus_responder(enum controlvm_id cmd_id,
  struct controlvm_message_header *pending_msg_hdr,
  int response)
 {
-   if (pending_msg_hdr == NULL)
+   if (!pending_msg_hdr)
return; /* no controlvm response needed */
 
if (pending_msg_hdr->id != (u32)cmd_id)
@@ -893,7 +893,7 @@ device_changestate_responder(enum controlvm_id cmd_id,
u32 bus_no = p->chipset_bus_no;
u32 dev_no = p->chipset_dev_no;
 
-   if (p->pending_msg_hdr == NULL)
+   if (!p->pending_msg_hdr)
return; /* no controlvm response needed */
if (p->pending_msg_hdr->id != cmd_id)
return;
@@ -914,7 +914,7 @@ device_responder(enum controlvm_id cmd_id,
 struct controlvm_message_header *pending_msg_hdr,
 int response)
 {
-   if (pending_msg_hdr == NULL)
+   if (!pending_msg_hdr)
return; /* no controlvm response needed */
 
if (pending_msg_hdr->id != (u32)cmd_id)
@@ -1180,7 +1180,7 @@ bus_configure(struct controlvm_message *inmsg,
POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, bus_no,
 POSTCODE_SEVERITY_ERR);
rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
-   } else if (bus_info->pending_msg_hdr != NULL) {
+   } else if (bus_info->pending_msg_hdr) {
POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, bus_no,
 POSTCODE_SEVERITY_ERR);
rc = -CONTROLVM_RESP_ERROR_MESSAGE_ID_INVALID_FOR_CLIENT;
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 10/16] staging: unisys: fix comments in visorbus_main.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following types of check patch warnings:
Block comments use a trailing */ on a separate line
Comment alignments

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorbus_main.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c 
b/drivers/staging/unisys/visorbus/visorbus_main.c
index eac97d2..a301385 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -1371,9 +1371,9 @@ pause_state_change_complete(struct visor_device *dev, int 
status)
return;
 
/* Notify the chipset driver that the pause is complete, which
-   * will presumably want to send some sort of response to the
-   * initiator.
-   */
+* will presumably want to send some sort of response to the
+* initiator.
+*/
(*chipset_responders.device_pause) (dev, status);
 }
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 06/16] staging: unisys: fix spacing in visorchipset.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following checkpatch warning:
spaces preferred around that ‘*’ or ‘|’

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index fb56258..8347ccd 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -43,11 +43,10 @@
 #define POLLJIFFIES_CONTROLVMCHANNEL_FAST   1
 #define POLLJIFFIES_CONTROLVMCHANNEL_SLOW 100
 
-#define MAX_CONTROLVM_PAYLOAD_BYTES (1024*128)
+#define MAX_CONTROLVM_PAYLOAD_BYTES (1024 * 128)
 
 #define VISORCHIPSET_MMAP_CONTROLCHANOFFSET0x
 
-
 #define UNISYS_SPAR_LEAF_ID 0x4000
 
 /* The s-Par leaf ID returns "UnisysSpar64" encoded across ebx, ecx, edx */
@@ -379,7 +378,7 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, 
bool *retry)
rc = NULL;
goto cleanup;
}
-   ctx = kzalloc(allocbytes, GFP_KERNEL|__GFP_NORETRY);
+   ctx = kzalloc(allocbytes, GFP_KERNEL | __GFP_NORETRY);
if (!ctx) {
if (retry)
*retry = true;
@@ -522,8 +521,8 @@ parser_string_get(struct parser_context *ctx)
}
if (value_length < 0)   /* '\0' was not included in the length */
value_length = nscan;
-   value = kmalloc(value_length + 1, GFP_KERNEL|__GFP_NORETRY);
-   if (value == NULL)
+   value = kmalloc(value_length + 1, GFP_KERNEL | __GFP_NORETRY);
+   if (!value)
return NULL;
if (value_length > 0)
memcpy(value, pscan, value_length);
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 15/16] staging: unisys: remove unnecessary goto

2016-01-29 Thread Benjamin Romer
parser_param_start() had a goto Away, which went to nothing but
a return statement. Remove the goto, the CamelCased label, and
just return directly.

Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index 5535073..7208618 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -461,7 +461,8 @@ parser_param_start(struct parser_context *ctx,
struct spar_controlvm_parameters_header *phdr = NULL;
 
if (!ctx)
-   goto Away;
+   return;
+
phdr = (struct spar_controlvm_parameters_header *)(ctx->data);
switch (which_string) {
case PARSERSTRING_INITIATOR:
@@ -483,9 +484,6 @@ parser_param_start(struct parser_context *ctx,
default:
break;
}
-
-Away:
-   return;
 }
 
 static void parser_done(struct parser_context *ctx)
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 00/16] staging: unisys: cleanup series

2016-01-29 Thread Benjamin Romer
This patch series cleans up all the remaining issues reported by
checkpatch.pl that can be fixed. The series was rebased against
the current contents of staging-next.

Benjamin Romer (2):
  staging: unisys: remove unnecessary goto
  staging: unisys: fix parenthesis in toolaction_show()

Erik Arfvidson (14):
  staging: unisys: Fix guestlinuxdebug.h comments
  staging: unisys: fix comments for controlvmchannel.h
  staging: unisys: Fix NULL comparison vbusdeviceinfo.h
  staging: unisys: fix trailing comment in vbusdeviceinfo.h
  staging: unisys: fix comments in visorchipset
  staging: unisys: fix spacing in visorchipset.c
  staging: unisys: fix comparison to NULL in visorchipset.c
  staging: unisys: fix blank lines in visorchipset.c
  staging: unisys: fix spaces after cast visorchipset.c
  staging: unisys: fix comments in visorbus_main.c
  staging: unisys: fix block comments in ultrainputreport.h
  staging: unisys: fix comments in visornic_main.c
  staging: unisys: fix else statement in visornic_main.c
  staging: unisys: fix alignment in visornic_main.c

 drivers/staging/unisys/include/guestlinuxdebug.h   |  13 +-
 drivers/staging/unisys/visorbus/controlvmchannel.h | 237 +++--
 drivers/staging/unisys/visorbus/vbusdeviceinfo.h   |   7 +-
 drivers/staging/unisys/visorbus/visorbus_main.c|   6 +-
 drivers/staging/unisys/visorbus/visorchipset.c |  56 ++---
 .../staging/unisys/visorinput/ultrainputreport.h   |  45 ++--
 drivers/staging/unisys/visornic/visornic_main.c|  30 +--
 7 files changed, 204 insertions(+), 190 deletions(-)

-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 09/16] staging: unisys: fix spaces after cast visorchipset.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes checkpatch's no space is necessary after a cast

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index 164fb7b..5535073 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -397,7 +397,7 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, 
bool *retry)
rc = NULL;
goto cleanup;
}
-   p = __va((unsigned long) (addr));
+   p = __va((unsigned long)(addr));
memcpy(ctx->data, p, bytes);
} else {
void *mapping;
@@ -525,7 +525,7 @@ parser_string_get(struct parser_context *ctx)
return NULL;
if (value_length > 0)
memcpy(value, pscan, value_length);
-   ((u8 *) (value))[value_length] = '\0';
+   ((u8 *)(value))[value_length] = '\0';
return value;
 }
 
@@ -815,7 +815,7 @@ controlvm_init_response(struct controlvm_message *msg,
msg->hdr.payload_max_bytes = 0;
if (response < 0) {
msg->hdr.flags.failed = 1;
-   msg->hdr.completion_status = (u32) (-response);
+   msg->hdr.completion_status = (u32)(-response);
}
 }
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 03/16] staging: unisys: Fix NULL comparison vbusdeviceinfo.h

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patches resolves the NULL comparison checkpatch warnings

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/vbusdeviceinfo.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/vbusdeviceinfo.h 
b/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
index f59fd8a..3216975 100644
--- a/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
+++ b/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
@@ -62,7 +62,7 @@ vbuschannel_sanitize_buffer(char *p, int remain, char *src, 
int srcmax)
p++;
remain--;
chars++;
-   } else if (p == NULL) {
+   } else if (!p) {
chars++;
}
nonprintable_streak = 0;
@@ -72,7 +72,7 @@ vbuschannel_sanitize_buffer(char *p, int remain, char *src, 
int srcmax)
p++;
remain--;
chars++;
-   } else if (p == NULL) {
+   } else if (!p) {
chars++;
}
} else {
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 04/16] staging: unisys: fix trailing comment in vbusdeviceinfo.h

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

Fixes checkpatch trailing */ comment in vbusdeviceinfo.h

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/vbusdeviceinfo.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/unisys/visorbus/vbusdeviceinfo.h 
b/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
index 3216975..abdab4a 100644
--- a/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
+++ b/drivers/staging/unisys/visorbus/vbusdeviceinfo.h
@@ -124,7 +124,8 @@ vbuschannel_itoa(char *p, int remain, int num)
}
if (remain < digits) {
/* not enough room left at  to hold number, so fill with
-* '?' */
+* '?'
+*/
for (i = 0; i < remain; i++, p++)
*p = '?';
return remain;
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 05/16] staging: unisys: fix comments in visorchipset

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes all the Block comments by using a trailing */
on a separate line

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 16 ++--
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index 07594f4..fb56258 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -86,8 +86,8 @@ visorchipset_release(struct inode *inode, struct file *file)
 */
 #define MIN_IDLE_SECONDS 10
 static unsigned long poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
-static unsigned long most_recent_message_jiffies;  /* when we got our last
-* controlvm message */
+/* when we got our last controlvm message */
+static unsigned long most_recent_message_jiffies;
 static int visorbusregistered;
 
 #define MAX_CHIPSET_EVENTS 2
@@ -120,7 +120,8 @@ static struct visorchannel *controlvm_channel;
 struct visor_controlvm_payload_info {
u8 *ptr;/* pointer to base address of payload pool */
u64 offset; /* offset from beginning of controlvm
-* channel to beginning of payload * pool */
+* channel to beginning of payload * pool
+*/
u32 bytes;  /* number of bytes in payload pool */
 };
 
@@ -184,7 +185,8 @@ struct putfile_request {
 * - this list is added to when controlvm messages come in that supply
 * file data
 * - this list is removed from via the hotplug program that is actually
-* consuming these buffers to write as file data */
+* consuming these buffers to write as file data
+*/
struct list_head input_buffer_list;
spinlock_t req_list_lock;   /* lock for input_buffer_list */
 
@@ -788,13 +790,15 @@ chipset_init(struct controlvm_message *inmsg)
POSTCODE_LINUX_2(CHIPSET_INIT_EXIT_PC, POSTCODE_SEVERITY_INFO);
 
/* Set features to indicate we support parahotplug (if Command
-* also supports it). */
+* also supports it).
+*/
features =
inmsg->cmd.init_chipset.
features & ULTRA_CHIPSET_FEATURE_PARA_HOTPLUG;
 
/* Set the "reply" bit so Command knows this is a
-* features-aware driver. */
+* features-aware driver.
+*/
features |= ULTRA_CHIPSET_FEATURE_REPLY;
 
 cleanup:
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 08/16] staging: unisys: fix blank lines in visorchipset.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

this patch removes the following checkpatch warnings:
please use a blank line after …
Please don’t use multiple blank lines

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index fdfd1c4..164fb7b 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -353,7 +353,6 @@ static void controlvm_respond_physdev_changestate(
struct controlvm_message_header *msg_hdr, int response,
struct spar_segment_state state);
 
-
 static void parser_done(struct parser_context *ctx);
 
 static struct parser_context *
@@ -530,7 +529,6 @@ parser_string_get(struct parser_context *ctx)
return value;
 }
 
-
 static ssize_t toolaction_show(struct device *dev,
   struct device_attribute *attr,
   char *buf)
@@ -707,6 +705,7 @@ static int match_visorbus_dev_by_id(struct device *dev, 
void *data)
 
return 0;
 }
+
 struct visor_device *visorbus_get_device_by_id(u32 bus_no, u32 dev_no,
   struct visor_device *from)
 {
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 13/16] staging: unisys: fix else statement in visornic_main.c

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following types of check patch warnings:
else is not generally useful after a break or return

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visornic/visornic_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c 
b/drivers/staging/unisys/visornic/visornic_main.c
index 9633959..6f6f8e3 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -376,8 +376,8 @@ visornic_serverdown(struct visornic_devdata *devdata,
__func__);
spin_unlock_irqrestore(&devdata->priv_lock, flags);
return -EINVAL;
-   } else
-   spin_unlock_irqrestore(&devdata->priv_lock, flags);
+   }
+   spin_unlock_irqrestore(&devdata->priv_lock, flags);
return 0;
 }
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 11/16] staging: unisys: fix block comments in ultrainputreport.h

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch fixes the following types of check patch warnings:
Block comments use * on subsequent lines
Block comments use a trailing */ on a separate line

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 .../staging/unisys/visorinput/ultrainputreport.h   | 45 +-
 1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/unisys/visorinput/ultrainputreport.h 
b/drivers/staging/unisys/visorinput/ultrainputreport.h
index 3e6a52f..1bc3d20 100644
--- a/drivers/staging/unisys/visorinput/ultrainputreport.h
+++ b/drivers/staging/unisys/visorinput/ultrainputreport.h
@@ -29,33 +29,40 @@ enum ultra_inputaction {
inputaction_mouse_button_up = 3, /* arg1: 1=left,2=center,3=right */
inputaction_mouse_button_click = 4, /* arg1: 1=left,2=center,3=right */
inputaction_mouse_button_dclick = 5, /* arg1: 1=left,2=center,
-   3=right */
+ * 3=right
+ */
inputaction_wheel_rotate_away = 6, /* arg1: wheel rotation away from
- user */
+   * user
+   */
inputaction_wheel_rotate_toward = 7, /* arg1: wheel rotation toward
-   user */
+ * user
+ */
inputaction_set_max_xy = 8, /* set screen maxXY; arg1=x, arg2=y */
inputaction_key_down = 64,  /* arg1: scancode, as follows:
-  If arg1 <= 0xff, it's a 1-byte
-  scancode and arg1 is that scancode.
-  If arg1 > 0xff, it's a 2-byte
-  scanecode, with the 1st byte in the
-  low 8 bits, and the 2nd byte in the
-  high 8 bits.  E.g., the right ALT key
-  would appear as x'38e0'. */
+* If arg1 <= 0xff, it's a 1-byte
+* scancode and arg1 is that scancode.
+* If arg1 > 0xff, it's a 2-byte
+* scanecode, with the 1st byte in the
+* low 8 bits, and the 2nd byte in the
+* high 8 bits.  E.g., the right ALT key
+* would appear as x'38e0'.
+*/
inputaction_key_up = 65,/* arg1: scancode (in same format as
-  inputaction_keyDown) */
+* inputaction_keyDown)
+*/
inputaction_set_locking_key_state = 66,
/* arg1: scancode (in same format
-as inputaction_keyDown);
-MUST refer to one of the
-locking keys, like capslock,
-numlock, or scrolllock
-  arg2: 1 iff locking key should be
-in the LOCKED position
-(e.g., light is ON) */
+*   as inputaction_keyDown);
+*   MUST refer to one of the
+*   locking keys, like capslock,
+*   numlock, or scrolllock
+* arg2: 1 iff locking key should be
+*   in the LOCKED position
+*   (e.g., light is ON)
+*/
inputaction_key_down_up = 67,   /* arg1: scancode (in same format
-as inputaction_keyDown) */
+*   as inputaction_keyDown)
+*/
inputaction_last
 };
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 02/16] staging: unisys: fix comments for controlvmchannel.h

2016-01-29 Thread Benjamin Romer
From: Erik Arfvidson 

This patch simply fixes all trailing */ by modifying the comments
structures while trying to reduce the total number of lines

Signed-off-by: Erik Arfvidson 
Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/controlvmchannel.h | 237 +++--
 1 file changed, 119 insertions(+), 118 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/controlvmchannel.h 
b/drivers/staging/unisys/visorbus/controlvmchannel.h
index ec25366..03e36fb 100644
--- a/drivers/staging/unisys/visorbus/controlvmchannel.h
+++ b/drivers/staging/unisys/visorbus/controlvmchannel.h
@@ -55,22 +55,25 @@
 #define CONTROLVM_CRASHMSG_MAX 2
 
 struct spar_segment_state  {
-   u16 enabled:1;  /* Bit 0: May enter other states */
-   u16 active:1;   /* Bit 1: Assigned to active partition */
-   u16 alive:1;/* Bit 2: Configure message sent to
-* service/server */
-   u16 revoked:1;  /* Bit 3: similar to partition state
-* ShuttingDown */
-   u16 allocated:1;/* Bit 4: memory (device/port number)
-* has been selected by Command */
-   u16 known:1;/* Bit 5: has been introduced to the
-* service/guest partition */
-   u16 ready:1;/* Bit 6: service/Guest partition has
-* responded to introduction */
-   u16 operating:1;/* Bit 7: resource is configured and
-* operating */
-   /* Note: don't use high bit unless we need to switch to ushort
-* which is non-compliant */
+   /* Bit 0: May enter other states */
+   u16 enabled:1;
+   /* Bit 1: Assigned to active partition */
+   u16 active:1;
+   /* Bit 2: Configure message sent to service/server */
+   u16 alive:1;
+   /* Bit 3: similar to partition state ShuttingDown */
+   u16 revoked:1;
+   /* Bit 4: memory (device/port number) has been selected by Command */
+   u16 allocated:1;
+   /* Bit 5: has been introduced to the service/guest partition */
+   u16 known:1;
+   /* Bit 6: service/Guest partition has responded to introduction */
+   u16 ready:1;
+   /* Bit 7: resource is configured and operating */
+   u16 operating:1;
+/* Note: don't use high bit unless we need to switch to ushort
+ * which is non-compliant
+ */
 };
 
 static const struct spar_segment_state segment_state_running = {
@@ -177,53 +180,53 @@ struct controlvm_message_header  {
/* For requests, indicates the message type. */
/* For responses, indicates the type of message we are responding to. */
 
-   u32 message_size;   /* Includes size of this struct + size
-* of message */
-   u32 segment_index;  /* Index of segment containing Vm
-* message/information */
-   u32 completion_status;  /* Error status code or result of
-* message completion */
+   /* Includes size of this struct + size of message */
+   u32 message_size;
+   /* Index of segment containing Vm message/information */
+   u32 segment_index;
+   /* Error status code or result of  message completion */
+   u32 completion_status;
struct  {
-   u32 failed:1;  /* =1 in a response to * signify
-   * failure */
-   u32 response_expected:1;   /* =1 in all messages that expect a
-   * response (Control ignores this
-   * bit) */
-   u32 server:1;  /* =1 in all bus & device-related
-   * messages where the message
-   * receiver is to act as the bus or
-   * device server */
-   u32 test_message:1;/* =1 for testing use only
-   * (Control and Command ignore this
-   * bit) */
-   u32 partial_completion:1;  /* =1 if there are forthcoming
-   * responses/acks associated
-   * with this message */
-   u32 preserve:1;/* =1 this is to let us know to
-   * preserve channel contents
-   * (for running guests)*/
-   u32 writer_in_diag:1;  /* =1 the DiagWriter is active in the
-   * Diagnostic Partition*/
+   /* =1 in a response to signify failure */
+   u32 failed:1;
+   /* =1 in all messages that expect a response */
+

[PATCH 16/16] staging: unisys: fix parenthesis in toolaction_show()

2016-01-29 Thread Benjamin Romer
Fix the only fixable parenthesis alignment issue in
visorchipset.c. The rest are unworkable because of the length
of the symbol names used.

Signed-off-by: Benjamin Romer 
---
 drivers/staging/unisys/visorbus/visorchipset.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c 
b/drivers/staging/unisys/visorbus/visorchipset.c
index 7208618..775f53f 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -534,8 +534,8 @@ static ssize_t toolaction_show(struct device *dev,
u8 tool_action;
 
visorchannel_read(controlvm_channel,
-   offsetof(struct spar_controlvm_channel_protocol,
-tool_action), &tool_action, sizeof(u8));
+ offsetof(struct spar_controlvm_channel_protocol,
+  tool_action), &tool_action, sizeof(u8));
return scnprintf(buf, PAGE_SIZE, "%u\n", tool_action);
 }
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: Move wlan-ng out of staging?

2016-01-29 Thread Xose Vazquez Perez
Ksenija wrote:

> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> wlan-ng driver is maybe ready to be moved out of staging. Are there
> any TODO tasks left to do beside checkpatch.pl clean-up?

Its FAQ was very clear: ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/FAQ
[archived at http://puppylinux.dreamhosters.com/wireless/linux-wlan-org_FAQ.txt 
]

--cut--
Q: When will linux-wlan-ng be merged into the mainline kernel?

Short answer:  Never.

First, the linux-netdev people will soundly reject this driver.
I don't begrudge them for this; indeed in their position I'd do
exactly the same.  It's a sound engineering decision.

linux-wlan-ng is obselete, and effort spent fixing it is better
spent elsewhere.  You can't even buy the hardware any longer.

The original design for linux-wlan-ng was to separate the 802.11
stack from the actual hardware driver.  This added a lot of
complexity, but would greatly ease the pain of supporitng
multiple hardware types.  Unfortunately, the implementation was
turned out to be somewhat flawed, and hardware manufaturers went
away from the thick-mac model, leaving linux-wlan-ng overly
complex for what it did.

(Ironically, the linux kernel is adopting a similar
 separation model, but it is a long way off from being ready)

So why not rewrite linux-wlan-ng to be more suitable, the
enterprising reader may ask?

The kernel already has two drivers for prism2 (cs/pci/plx)
hardware -- hostap and orinoco. linux-wlan-ng basically
has three features not present in kernel drivers:

1) USB support
2) nearly complete implemettion of the 802.11 MIB/MLME
3) Firmware-based AP support

(3) requires an expensive license that isn't even available any
longer, as the hostap mode works far better -- and is already
supported by in-kernel drivers.

(2) would need to be removed or completely rewritten in order to
be merged, as it does not fit within existing kernel APIs, and
it would be effectively merging new kernel APIs.

(1) Is the only truly unique thing that linux-wlan-ng does that
is generally needed any more.

To merge it into the kernel, we'd need to strip out (2), which
would necessitate a complete rewrite -- to the point where
writing a new driver from scratch is easier.

Basically, it would take far less effort to add USB
support to the in-kernel drivers than it would to make
linux-wlan-ng acceptable to be merged.

In other words, the short answer is:  Never.
--end--
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: Move wlan-ng out of staging?

2016-01-29 Thread Sudip Mukherjee
On Fri, Jan 29, 2016 at 05:00:16PM +0100, Xose Vazquez Perez wrote:
> Ksenija wrote:
> 
> > I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> > wlan-ng driver is maybe ready to be moved out of staging. Are there
> > any TODO tasks left to do beside checkpatch.pl clean-up?
> 
> Its FAQ was very clear: ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/FAQ
> [archived at 
> http://puppylinux.dreamhosters.com/wireless/linux-wlan-org_FAQ.txt ]
> 
> --cut--
> Q: When will linux-wlan-ng be merged into the mainline kernel?
> 
>   Short answer:  Never.

The ultimate aim of a driver in staging is to graduate out of staging
area into the main part of the kernel. If it is already known that this
driver can never move out of staging then IMHO its better to remove it.

regards
sudip
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: Move wlan-ng out of staging?

2016-01-29 Thread Xose Vazquez Perez
On 01/29/2016 05:00 PM, Xose Vazquez Perez wrote:
> Ksenija wrote:
> 
>> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
>> wlan-ng driver is maybe ready to be moved out of staging. Are there
>> any TODO tasks left to do beside checkpatch.pl clean-up?
> 
> Its FAQ was very clear: ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/FAQ
> [archived at 
> http://puppylinux.dreamhosters.com/wireless/linux-wlan-org_FAQ.txt ]
> 
> --cut--
> Q: When will linux-wlan-ng be merged into the mainline kernel?
> 
>   Short answer:  Never.
> 
>   First, the linux-netdev people will soundly reject this driver.
>   I don't begrudge them for this; indeed in their position I'd do
>   exactly the same.  It's a sound engineering decision.
> 
>   linux-wlan-ng is obselete, and effort spent fixing it is better
>   spent elsewhere.  You can't even buy the hardware any longer.
> 
>   The original design for linux-wlan-ng was to separate the 802.11
>   stack from the actual hardware driver.  This added a lot of
>   complexity, but would greatly ease the pain of supporitng
>   multiple hardware types.  Unfortunately, the implementation was
>   turned out to be somewhat flawed, and hardware manufaturers went
>   away from the thick-mac model, leaving linux-wlan-ng overly
>   complex for what it did.
> 
>   (Ironically, the linux kernel is adopting a similar
>separation model, but it is a long way off from being ready)
> 
>   So why not rewrite linux-wlan-ng to be more suitable, the
>   enterprising reader may ask?
> 
>   The kernel already has two drivers for prism2 (cs/pci/plx)
>   hardware -- hostap and orinoco. linux-wlan-ng basically
>   has three features not present in kernel drivers:
>   
>   1) USB support
>   2) nearly complete implemettion of the 802.11 MIB/MLME
>   3) Firmware-based AP support
>   
>   (3) requires an expensive license that isn't even available any
>   longer, as the hostap mode works far better -- and is already
>   supported by in-kernel drivers.
> 
>   (2) would need to be removed or completely rewritten in order to
>   be merged, as it does not fit within existing kernel APIs, and
>   it would be effectively merging new kernel APIs.
> 
>   (1) Is the only truly unique thing that linux-wlan-ng does that
>   is generally needed any more.
> 
>   To merge it into the kernel, we'd need to strip out (2), which
>   would necessitate a complete rewrite -- to the point where
>   writing a new driver from scratch is easier.
> 
>   Basically, it would take far less effort to add USB
>   support to the in-kernel drivers than it would to make
>   linux-wlan-ng acceptable to be merged.
> 
>   In other words, the short answer is:  Never.
> --end--
> 

Detailed info in these threads:
https://marc.info/?l=linux-wlan-user&m=125122113309475
https://marc.info/?l=linux-wireless&m=138384105903345
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 00/11] sync framework de-staging: part 1 - clean up

2016-01-29 Thread Greg Kroah-Hartman
On Fri, Jan 29, 2016 at 12:47:20PM -0200, Gustavo Padovan wrote:
> Hi,
> 
> 2016-01-25 Maarten Lankhorst :
> 
> > Hey,
> > 
> > Op 21-01-16 om 13:49 schreef Gustavo Padovan:
> > > From: Gustavo Padovan 
> > >
> > > Hi,
> > >
> > > The following patches are some clean ups on the sync framework before
> > > we start the actual de-staging. The main changes here are the move of
> > > SW_SYNC_USER to debugfs. Removal of struct sync_pt in favor of direct
> > > use of struct fence. And the rename of sync_fence to sync_file, a name
> > > to better reflect what it is for, a struct that connects struct fence(s)
> > > to a file.
> > >
> > > Please review. Thanks.
> > >
> > > Gustavo Padovan (11):
> > >   staging/android: fix sync framework documentation
> > >   staging/android: sync: remove interfaces that are not used
> > >   staging/android: remove not used sync_timeline ops
> > >   staging/android: create a 'sync' dir for debugfs information
> > >   staging/android: move SW_SYNC_USER to a debugfs file
> > >   staging/android: rename sync_fence to sync_file
> > >   staging/android: rename 'sync_pt' to 'fence' in struct sync_fence_cb
> > >   staging/android: remove struct sync_pt
> > >   staging/android: remove unused var from sync_timeline_signal()
> > >   staging/android: remove pointless sync_timeline_signal at destroy
> > > phase
> > >   staging/android: remove sync_fence_create_dma()
> > >
> > For whole series:
> > Reviewed-by: Maarten Lankhorst 
> > 
> > Renaming sync_fence to sync_file makes sense, it should hopefully reduce 
> > confusion.
> 
> Poke. What is missing for this to go upstream? Do I need more review
> here? Thanks.

You just sent this, give me a chance to get to it, my staging patch
queue is over 1000 patches at the moment :(

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [v2 PATCH 9/26] eCryptfs: Use skcipher and shash

2016-01-29 Thread Tyler Hicks
On 2016-01-25 10:29:33, Herbert Xu wrote:
> On Sun, Jan 24, 2016 at 07:10:50PM +0100, Julia Lawall wrote:
> > Maybe the goto on line 1726 needs a preceding mutex_unlock?
> 
> Good catch! Thanks.
> 
> ---8<---
> This patch replaces uses of ablkcipher and blkcipher with skcipher,
> and the long obsolete hash interface with shash.
> 
> Signed-off-by: Herbert Xu 

Acked-by: Tyler Hicks 

I have no problem with you taking this through the cryptodev tree.
Thanks!

Tyler

> 
> diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
> index 80d6901..11255cb 100644
> --- a/fs/ecryptfs/crypto.c
> +++ b/fs/ecryptfs/crypto.c
> @@ -23,6 +23,8 @@
>   * 02111-1307, USA.
>   */
>  
> +#include 
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -30,7 +32,6 @@
>  #include 
>  #include 
>  #include 
> -#include 
>  #include 
>  #include 
>  #include 
> @@ -74,6 +75,19 @@ void ecryptfs_from_hex(char *dst, char *src, int dst_size)
>   }
>  }
>  
> +static int ecryptfs_hash_digest(struct crypto_shash *tfm,
> + char *src, int len, char *dst)
> +{
> + SHASH_DESC_ON_STACK(desc, tfm);
> + int err;
> +
> + desc->tfm = tfm;
> + desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
> + err = crypto_shash_digest(desc, src, len, dst);
> + shash_desc_zero(desc);
> + return err;
> +}
> +
>  /**
>   * ecryptfs_calculate_md5 - calculates the md5 of @src
>   * @dst: Pointer to 16 bytes of allocated memory
> @@ -88,45 +102,26 @@ static int ecryptfs_calculate_md5(char *dst,
> struct ecryptfs_crypt_stat *crypt_stat,
> char *src, int len)
>  {
> - struct scatterlist sg;
> - struct hash_desc desc = {
> - .tfm = crypt_stat->hash_tfm,
> - .flags = CRYPTO_TFM_REQ_MAY_SLEEP
> - };
> + struct crypto_shash *tfm;
>   int rc = 0;
>  
>   mutex_lock(&crypt_stat->cs_hash_tfm_mutex);
> - sg_init_one(&sg, (u8 *)src, len);
> - if (!desc.tfm) {
> - desc.tfm = crypto_alloc_hash(ECRYPTFS_DEFAULT_HASH, 0,
> -  CRYPTO_ALG_ASYNC);
> - if (IS_ERR(desc.tfm)) {
> - rc = PTR_ERR(desc.tfm);
> + tfm = crypt_stat->hash_tfm;
> + if (!tfm) {
> + tfm = crypto_alloc_shash(ECRYPTFS_DEFAULT_HASH, 0, 0);
> + if (IS_ERR(tfm)) {
> + rc = PTR_ERR(tfm);
>   ecryptfs_printk(KERN_ERR, "Error attempting to "
>   "allocate crypto context; rc = [%d]\n",
>   rc);
>   goto out;
>   }
> - crypt_stat->hash_tfm = desc.tfm;
> - }
> - rc = crypto_hash_init(&desc);
> - if (rc) {
> - printk(KERN_ERR
> -"%s: Error initializing crypto hash; rc = [%d]\n",
> -__func__, rc);
> - goto out;
> + crypt_stat->hash_tfm = tfm;
>   }
> - rc = crypto_hash_update(&desc, &sg, len);
> + rc = ecryptfs_hash_digest(tfm, src, len, dst);
>   if (rc) {
>   printk(KERN_ERR
> -"%s: Error updating crypto hash; rc = [%d]\n",
> -__func__, rc);
> - goto out;
> - }
> - rc = crypto_hash_final(&desc, dst);
> - if (rc) {
> - printk(KERN_ERR
> -"%s: Error finalizing crypto hash; rc = [%d]\n",
> +"%s: Error computing crypto hash; rc = [%d]\n",
>  __func__, rc);
>   goto out;
>   }
> @@ -234,10 +229,8 @@ void ecryptfs_destroy_crypt_stat(struct 
> ecryptfs_crypt_stat *crypt_stat)
>  {
>   struct ecryptfs_key_sig *key_sig, *key_sig_tmp;
>  
> - if (crypt_stat->tfm)
> - crypto_free_ablkcipher(crypt_stat->tfm);
> - if (crypt_stat->hash_tfm)
> - crypto_free_hash(crypt_stat->hash_tfm);
> + crypto_free_skcipher(crypt_stat->tfm);
> + crypto_free_shash(crypt_stat->hash_tfm);
>   list_for_each_entry_safe(key_sig, key_sig_tmp,
>&crypt_stat->keysig_list, crypt_stat_list) {
>   list_del(&key_sig->crypt_stat_list);
> @@ -342,7 +335,7 @@ static int crypt_scatterlist(struct ecryptfs_crypt_stat 
> *crypt_stat,
>struct scatterlist *src_sg, int size,
>unsigned char *iv, int op)
>  {
> - struct ablkcipher_request *req = NULL;
> + struct skcipher_request *req = NULL;
>   struct extent_crypt_result ecr;
>   int rc = 0;
>  
> @@ -358,20 +351,20 @@ static int crypt_scatterlist(struct ecryptfs_crypt_stat 
> *crypt_stat,
>   init_completion(&ecr.completion);
>  
>   mutex_lock(&crypt_stat->cs_tfm_mutex);
> - req = ablkcipher_request_alloc(crypt_stat->tfm, GFP_NOFS);
> + req = skcipher_request_alloc(crypt_stat->tfm, GFP_NOFS);
>   if (!req) {
>   mutex_unlock(&crypt

[PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Bhaktipriya Shridhar
This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
WARNING: void function return statements are not generally useful

Signed-off-by: Bhaktipriya Shridhar 
---
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 --
 1 file changed, 10 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
index d28f29a..e8a16b9 100644
--- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
@@ -2657,7 +2657,6 @@ static void issue_probersp(struct rtw_adapter *padapter, 
unsigned char *da)

dump_mgntframe23a(padapter, pmgntframe);

-   return;
 }

 static int _issue_probereq(struct rtw_adapter *padapter,
@@ -2958,7 +2957,6 @@ static void issue_auth(struct rtw_adapter *padapter, 
struct sta_info *psta,
DBG_8723A("%s\n", __func__);
dump_mgntframe23a(padapter, pmgntframe);

-   return;
 }

 #ifdef CONFIG_8723AU_AP_MODE
@@ -3339,7 +3337,6 @@ exit:
} else
kfree(pmlmepriv->assoc_req);

-   return;
 }

 /* when wait_ack is true, this function should be called at process context */
@@ -4103,7 +4100,6 @@ static void rtw_site_survey(struct rtw_adapter *padapter)
pmlmeext->sitesurvey_res.state = SCAN_DISABLE;
}

-   return;
 }

 /* collect bss info from Beacon and Probe request/response frames. */
@@ -4760,7 +4756,6 @@ void report_survey_event23a(struct rtw_adapter *padapter,

pmlmeext->sitesurvey_res.bss_cnt++;

-   return;
 }

 void report_surveydone_event23a(struct rtw_adapter *padapter)
@@ -4803,7 +4798,6 @@ void report_surveydone_event23a(struct rtw_adapter 
*padapter)

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);

-   return;
 }

 void report_join_res23a(struct rtw_adapter *padapter, int res)
@@ -4851,7 +4845,6 @@ void report_join_res23a(struct rtw_adapter *padapter, int 
res)

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);

-   return;
 }

 void report_del_sta_event23a(struct rtw_adapter *padapter,
@@ -4907,7 +4900,6 @@ void report_del_sta_event23a(struct rtw_adapter *padapter,

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);

-   return;
 }

 void report_add_sta_event23a(struct rtw_adapter *padapter,
@@ -4952,7 +4944,6 @@ void report_add_sta_event23a(struct rtw_adapter *padapter,

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);

-   return;
 }

 /
@@ -5395,7 +5386,6 @@ static void link_timer_hdl(unsigned long data)
set_link_timer(pmlmeext, REASSOC_TO);
}

-   return;
 }

 static void addba_timer_hdl(unsigned long data)
--
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/1] staging: coding style cleanups for staging/most/mostcore driver

2016-01-29 Thread Sudip Mukherjee
On Fri, Jan 29, 2016 at 10:38:42PM +0530, Bijosh Thykkoottathil wrote:
> From: Bijosh Thykkoottathil 

You do not need this From: line here. The email From: header is
sufficient.

> 
> Fixes following coading style issues reported by the check patch script.
> - ERROR: Macros with complex values should be enclosed in parentheses
> - CHECK: struct mutex definition without comment
> - CHECK: spinlock_t definition without comment
> - CHECK: Avoid crashing the kernel - try using WARN_ON & recovery code
>   rather than BUG() or BUG_ON()
> - WARNING: storage class should be at the beginning of the declaration

You are doing too many things in one patch. Please break them up into
separate patches. Each patch should do only one type of change.

regards
sudip
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Jes Sorensen
Bhaktipriya Shridhar  writes:
> This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
> WARNING: void function return statements are not generally useful
>
> Signed-off-by: Bhaktipriya Shridhar 
> ---
>  drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 --
>  1 file changed, 10 deletions(-)
>
> diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
> b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> index d28f29a..e8a16b9 100644
> --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> @@ -2657,7 +2657,6 @@ static void issue_probersp(struct rtw_adapter 
> *padapter, unsigned char *da)
>
>   dump_mgntframe23a(padapter, pmgntframe);
>
> - return;
>  }

If you insist on pushing this rather unncessary change, please do it
properly, and remove the blank line before the return statement as well.

Jes
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: Move wlan-ng out of staging?

2016-01-29 Thread Solomon Peachy
On Fri, Jan 29, 2016 at 05:11:04PM +0100, Xose Vazquez Perez wrote:
> >> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> >> wlan-ng driver is maybe ready to be moved out of staging. Are there
> >> any TODO tasks left to do beside checkpatch.pl clean-up?
> > 
> > Its FAQ was very clear: ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/FAQ
> > [archived at 
> > http://puppylinux.dreamhosters.com/wireless/linux-wlan-org_FAQ.txt ]

As author of that particular FAQ entry (written nearly ten years ago) 
let me say that nothing in there has any bearing on the situation that 
exists today.

At the time, I didn't think it was worth the significant effort to get 
prism2_usb into the mainline, but obviously some enterprising folks 
disagreed with me, and eventually put forth the elbow grease necessary 
to get it into -staging and all of the subsequent cleanups.

From where I sit, the basic question is this: Is the prism2_usb driver 
now considered good enough to promote out of -staging? If not, what 
needs doing and who is willing to see it through?  If it is, then just 
do it already.  :)

Oh, I'm still hosting the firmware files needed for this thing, and I 
see a consistent 4K or so downloads a month.  So there are obviously 
users out there still.

 - Solomon
-- 
Solomon Peachy pizza at shaftnet dot org
Delray Beach, FL  ^^ (email/xmpp) ^^
Quidquid latine dictum sit, altum viditur.


signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 01/10] staging/android: remove SYNC_WAIT ioctl

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

This ioctl is replicating the work of poll() syscall so let's take the
opportunity that this is still on staging tree and remove the duplication
and force new users to use the poll() standard interface.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c   | 52 
 drivers/staging/android/sync.h   | 13 -
 drivers/staging/android/trace/sync.h | 44 --
 drivers/staging/android/uapi/sync.h  |  7 -
 4 files changed, 116 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index 5fa4779..381209a 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -300,44 +300,6 @@ struct sync_file *sync_file_merge(const char *name,
 }
 EXPORT_SYMBOL(sync_file_merge);
 
-int sync_file_wait(struct sync_file *sync_file, long timeout)
-{
-   long ret;
-   int i;
-
-   if (timeout < 0)
-   timeout = MAX_SCHEDULE_TIMEOUT;
-   else
-   timeout = msecs_to_jiffies(timeout);
-
-   trace_sync_wait(sync_file, 1);
-   for (i = 0; i < sync_file->num_fences; ++i)
-   trace_fence(sync_file->cbs[i].fence);
-   ret = wait_event_interruptible_timeout(sync_file->wq,
-  atomic_read(&sync_file->status) 
<= 0,
-  timeout);
-   trace_sync_wait(sync_file, 0);
-
-   if (ret < 0) {
-   return ret;
-   } else if (ret == 0) {
-   if (timeout) {
-   pr_info("sync_file timeout on [%p] after %dms\n",
-   sync_file, jiffies_to_msecs(timeout));
-   sync_dump();
-   }
-   return -ETIME;
-   }
-
-   ret = atomic_read(&sync_file->status);
-   if (ret) {
-   pr_info("sync_file error %ld on [%p]\n", ret, sync_file);
-   sync_dump();
-   }
-   return ret;
-}
-EXPORT_SYMBOL(sync_file_wait);
-
 static const char *android_fence_get_driver_name(struct fence *fence)
 {
struct sync_timeline *parent = fence_parent(fence);
@@ -478,17 +440,6 @@ static unsigned int sync_file_poll(struct file *file, 
poll_table *wait)
return 0;
 }
 
-static long sync_file_ioctl_wait(struct sync_file *sync_file,
- unsigned long arg)
-{
-   __s32 value;
-
-   if (copy_from_user(&value, (void __user *)arg, sizeof(value)))
-   return -EFAULT;
-
-   return sync_file_wait(sync_file, value);
-}
-
 static long sync_file_ioctl_merge(struct sync_file *sync_file,
   unsigned long arg)
 {
@@ -629,9 +580,6 @@ static long sync_file_ioctl(struct file *file, unsigned int 
cmd,
struct sync_file *sync_file = file->private_data;
 
switch (cmd) {
-   case SYNC_IOC_WAIT:
-   return sync_file_ioctl_wait(sync_file, arg);
-
case SYNC_IOC_MERGE:
return sync_file_ioctl_merge(sync_file, arg);
 
diff --git a/drivers/staging/android/sync.h b/drivers/staging/android/sync.h
index 8980b55..af1af99 100644
--- a/drivers/staging/android/sync.h
+++ b/drivers/staging/android/sync.h
@@ -18,7 +18,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 
 #include "uapi/sync.h"
@@ -230,18 +229,6 @@ void sync_file_put(struct sync_file *sync_file);
  */
 void sync_file_install(struct sync_file *sync_file, int fd);
 
-/**
- * sync_file_wait() - wait on sync file
- * @sync_file: file to wait on
- * @tiemout:   timeout in ms
- *
- * Wait for @sync_file to be signaled or have an error. Waits indefinitely
- * if @timeout < 0.
- *
- * Returns 0 if fence signaled, > 0 if it is still active and <0 on error
- */
-int sync_file_wait(struct sync_file *sync_file, long timeout);
-
 #ifdef CONFIG_DEBUG_FS
 
 void sync_timeline_debug_add(struct sync_timeline *obj);
diff --git a/drivers/staging/android/trace/sync.h 
b/drivers/staging/android/trace/sync.h
index 87c60e9..a0f80f4 100644
--- a/drivers/staging/android/trace/sync.h
+++ b/drivers/staging/android/trace/sync.h
@@ -32,50 +32,6 @@ TRACE_EVENT(sync_timeline,
TP_printk("name=%s value=%s", __get_str(name), __entry->value)
 );
 
-TRACE_EVENT(sync_wait,
-   TP_PROTO(struct sync_file *sync_file, int begin),
-
-   TP_ARGS(sync_file, begin),
-
-   TP_STRUCT__entry(
-   __string(name, sync_file->name)
-   __field(s32, status)
-   __field(u32, begin)
-   ),
-
-   TP_fast_assign(
-   __assign_str(name, sync_file->name);
-   __entry->status = atomic_read(&sync_file->status);
-   __entry->begin = begin;
-   ),
-
-   TP_printk("%s name=%s state=%d", __entry->begin ? "begin" : "end",
-   __get_str(name), __entry->status)
-);
-
-TRACE_EVENT(fence,
-   TP_PROTO(struct 

[PATCH 00/10] android sync framework: clean up IOCTLs and ABI.

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

Hi,

This patch series clean up IOCTLs and abi of sync framework and it is a follow
up on the clean up series I've sent on Jan 21:

http://thread.gmane.org/gmane.comp.video.dri.devel/145509

The main changes here are:

 * remove of SYNC_WAIT ioctl, poll() should be used instead.
 * rename some structs and macros to better reflect the new internal names.
 * clean up and improve ABI on SYNC_IOC_FILE_INFO
 * add flags filed to all ABI structs

Please review, thanks!

Gustavo Padovan (10):
  staging/android: remove SYNC_WAIT ioctl
  staging/android: rename sync_pt_info to fence_info
  staging/android: rename sync_file_info_data to sync_file_info
  staging/android: remove driver_data from struct fence_info
  staging/android: remove len field from struct fence_info
  staging/android: turn fence_info into a __64 pointer
  staging/android: add num_fences field to struct sync_file_info
  staging/android: rename SYNC_IOC_FENCE_INFO
  staging/android: add flags member to sync ioctl structs
  staging/android: remove redundant comments on sync_merge_data

 drivers/staging/android/sw_sync.c|  14 -
 drivers/staging/android/sync.c   | 113 +++
 drivers/staging/android/sync.h   |  20 ---
 drivers/staging/android/trace/sync.h |  44 --
 drivers/staging/android/uapi/sync.h  |  45 +++---
 5 files changed, 40 insertions(+), 196 deletions(-)

-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 02/10] staging/android: rename sync_pt_info to fence_info

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

As struct sync_pt doesn't exist anymore it is a good idea remove any
reference to it in the sync_framework. sync_pts were replaced directly by
fences.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  |  8 
 drivers/staging/android/uapi/sync.h | 12 ++--
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index 381209a..ed63001 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -490,12 +490,12 @@ err_put_fd:
return err;
 }
 
-static int sync_fill_pt_info(struct fence *fence, void *data, int size)
+static int sync_fill_fence_info(struct fence *fence, void *data, int size)
 {
-   struct sync_pt_info *info = data;
+   struct fence_info *info = data;
int ret;
 
-   if (size < sizeof(struct sync_pt_info))
+   if (size < sizeof(*info))
return -ENOMEM;
 
info->len = sizeof(struct sync_pt_info);
@@ -553,7 +553,7 @@ static long sync_file_ioctl_fence_info(struct sync_file 
*sync_file,
for (i = 0; i < sync_file->num_fences; ++i) {
struct fence *fence = sync_file->cbs[i].fence;
 
-   ret = sync_fill_pt_info(fence, (u8 *)data + len, size - len);
+   ret = sync_fill_fence_info(fence, (u8 *)data + len, size - len);
 
if (ret < 0)
goto out;
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index 6c88c80..c4703ec 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -27,15 +27,15 @@ struct sync_merge_data {
 };
 
 /**
- * struct sync_pt_info - detailed sync_pt information
- * @len:   length of sync_pt_info including any driver_data
+ * struct fence_info - detailed fence information
+ * @len:   length of fence_info including any driver_data
  * @obj_name:  name of parent sync_timeline
  * @driver_name:   name of driver implementing the parent
- * @status:status of the sync_pt 0:active 1:signaled <0:error
+ * @status:status of the fence 0:active 1:signaled <0:error
  * @timestamp_ns:  timestamp of status change in nanoseconds
  * @driver_data:   any driver dependent data
  */
-struct sync_pt_info {
+struct fence_info {
__u32   len;
charobj_name[32];
chardriver_name[32];
@@ -52,14 +52,14 @@ struct sync_pt_info {
  * userspace including pt_info.
  * @name:  name of fence
  * @status:status of fence. 1: signaled 0:active <0:error
- * @pt_info:   a sync_pt_info struct for every sync_pt in the fence
+ * @fence_info:a fence_info struct for every fence in the sync_file
  */
 struct sync_file_info_data {
__u32   len;
charname[32];
__s32   status;
 
-   __u8pt_info[0];
+   __u8fence_info[0];
 };
 
 #define SYNC_IOC_MAGIC '>'
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 07/10] staging/android: add num_fences field to struct sync_file_info

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

Inform the users how many fences are in the fence_info field.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  | 2 ++
 drivers/staging/android/uapi/sync.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index 51d4f47..ae42810 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -525,6 +525,8 @@ static long sync_file_ioctl_fence_info(struct sync_file 
*sync_file,
if (info->status >= 0)
info->status = !info->status;
 
+   info->num_fences = sync_file->num_fences;
+
len = sizeof(struct sync_file_info) - sizeof(__u64 *);
 
for (i = 0; i < sync_file->num_fences; ++i) {
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index 9f07aa7..9a607ea 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -47,12 +47,14 @@ struct fence_info {
  * userspace including pt_info.
  * @name:  name of fence
  * @status:status of fence. 1: signaled 0:active <0:error
+ * @num_fences number of fences in the sync_file
  * @fence_info:a fence_info struct for every fence in the sync_file
  */
 struct sync_file_info {
__u32   len;
charname[32];
__s32   status;
+   __u32   num_fences;
 
__u64   *fence_info;
 };
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 03/10] staging/android: rename sync_file_info_data to sync_file_info

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

info_data is a bit redundant, let's keep it as only sync_file_info. It is
also smaller.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  | 26 +-
 drivers/staging/android/uapi/sync.h |  9 -
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index ed63001..a1cf9fd 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -525,7 +525,7 @@ static int sync_fill_fence_info(struct fence *fence, void 
*data, int size)
 static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
unsigned long arg)
 {
-   struct sync_file_info_data *data;
+   struct sync_file_info *info;
__u32 size;
__u32 len = 0;
int ret, i;
@@ -533,27 +533,27 @@ static long sync_file_ioctl_fence_info(struct sync_file 
*sync_file,
if (copy_from_user(&size, (void __user *)arg, sizeof(size)))
return -EFAULT;
 
-   if (size < sizeof(struct sync_file_info_data))
+   if (size < sizeof(struct sync_file_info))
return -EINVAL;
 
if (size > 4096)
size = 4096;
 
-   data = kzalloc(size, GFP_KERNEL);
-   if (!data)
+   info = kzalloc(size, GFP_KERNEL);
+   if (!info)
return -ENOMEM;
 
-   strlcpy(data->name, sync_file->name, sizeof(data->name));
-   data->status = atomic_read(&sync_file->status);
-   if (data->status >= 0)
-   data->status = !data->status;
+   strlcpy(info->name, sync_file->name, sizeof(info->name));
+   info->status = atomic_read(&sync_file->status);
+   if (info->status >= 0)
+   info->status = !info->status;
 
-   len = sizeof(struct sync_file_info_data);
+   len = sizeof(struct sync_file_info);
 
for (i = 0; i < sync_file->num_fences; ++i) {
struct fence *fence = sync_file->cbs[i].fence;
 
-   ret = sync_fill_fence_info(fence, (u8 *)data + len, size - len);
+   ret = sync_fill_fence_info(fence, (u8 *)info + len, size - len);
 
if (ret < 0)
goto out;
@@ -561,15 +561,15 @@ static long sync_file_ioctl_fence_info(struct sync_file 
*sync_file,
len += ret;
}
 
-   data->len = len;
+   info->len = len;
 
-   if (copy_to_user((void __user *)arg, data, len))
+   if (copy_to_user((void __user *)arg, info, len))
ret = -EFAULT;
else
ret = 0;
 
 out:
-   kfree(data);
+   kfree(info);
 
return ret;
 }
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index c4703ec..70d05ad 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -46,15 +46,15 @@ struct fence_info {
 };
 
 /**
- * struct sync_file_info_data - data returned from fence info ioctl
+ * struct sync_file_info - data returned from fence info ioctl
  * @len:   ioctl caller writes the size of the buffer its passing in.
- * ioctl returns length of sync_file_info_data returned to
+ * ioctl returns length of sync_file_info returned to
  * userspace including pt_info.
  * @name:  name of fence
  * @status:status of fence. 1: signaled 0:active <0:error
  * @fence_info:a fence_info struct for every fence in the sync_file
  */
-struct sync_file_info_data {
+struct sync_file_info {
__u32   len;
charname[32];
__s32   status;
@@ -84,7 +84,6 @@ struct sync_file_info_data {
  * pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.
  * To iterate over the sync_pt_infos, use the sync_pt_info.len field.
  */
-#define SYNC_IOC_FENCE_INFO_IOWR(SYNC_IOC_MAGIC, 2,\
-   struct sync_file_info_data)
+#define SYNC_IOC_FENCE_INFO_IOWR(SYNC_IOC_MAGIC, 2, struct sync_file_info)
 
 #endif /* _UAPI_LINUX_SYNC_H */
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 09/10] staging/android: add flags member to sync ioctl structs

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

Play safe and add flags member to all structs. So we don't need to
break API or create new IOCTL in the future if new features that requires
flags arises.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/uapi/sync.h | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index b00f0eb..45921f6 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -19,11 +19,13 @@
  * @fd2:   file descriptor of second fence
  * @name:  name of new fence
  * @fence: returns the fd of the new fence to userspace
+ * @flags: merge_data flags
  */
 struct sync_merge_data {
__s32   fd2; /* fd of second fence */
charname[32]; /* name of new fence */
__s32   fence; /* fd on newly created fence */
+   __u32   flags;
 };
 
 /**
@@ -31,12 +33,14 @@ struct sync_merge_data {
  * @obj_name:  name of parent sync_timeline
  * @driver_name:   name of driver implementing the parent
  * @status:status of the fence 0:active 1:signaled <0:error
+ * @flags: fence_info flags
  * @timestamp_ns:  timestamp of status change in nanoseconds
  */
 struct fence_info {
charobj_name[32];
chardriver_name[32];
__s32   status;
+   __u32   flags;
__u64   timestamp_ns;
 };
 
@@ -47,6 +51,7 @@ struct fence_info {
  * userspace including pt_info.
  * @name:  name of fence
  * @status:status of fence. 1: signaled 0:active <0:error
+ * @flags: sync_file_info flags
  * @num_fences number of fences in the sync_file
  * @fence_info:a fence_info struct for every fence in the sync_file
  */
@@ -54,6 +59,7 @@ struct sync_file_info {
__u32   len;
charname[32];
__s32   status;
+   __u32   flags;
__u32   num_fences;
 
__u64   *fence_info;
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 06/10] staging/android: turn fence_info into a __64 pointer

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

Making fence_info a pointer enables us to extend the struct in the future
without breaking the ABI.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  | 2 +-
 drivers/staging/android/uapi/sync.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index f7530f0..51d4f47 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -525,7 +525,7 @@ static long sync_file_ioctl_fence_info(struct sync_file 
*sync_file,
if (info->status >= 0)
info->status = !info->status;
 
-   len = sizeof(struct sync_file_info);
+   len = sizeof(struct sync_file_info) - sizeof(__u64 *);
 
for (i = 0; i < sync_file->num_fences; ++i) {
struct fence *fence = sync_file->cbs[i].fence;
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index ed281fc..9f07aa7 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -54,7 +54,7 @@ struct sync_file_info {
charname[32];
__s32   status;
 
-   __u8fence_info[0];
+   __u64   *fence_info;
 };
 
 #define SYNC_IOC_MAGIC '>'
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 08/10] staging/android: rename SYNC_IOC_FENCE_INFO

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

We don't use the 'fence' name to refer to sync_file anymore. So rename it
to SYNC_IOC_FILE_INFO.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  | 2 +-
 drivers/staging/android/uapi/sync.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index ae42810..e1d4fcb 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -562,7 +562,7 @@ static long sync_file_ioctl(struct file *file, unsigned int 
cmd,
case SYNC_IOC_MERGE:
return sync_file_ioctl_merge(sync_file, arg);
 
-   case SYNC_IOC_FENCE_INFO:
+   case SYNC_IOC_FILE_INFO:
return sync_file_ioctl_fence_info(sync_file, arg);
 
default:
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index 9a607ea..b00f0eb 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -81,6 +81,6 @@ struct sync_file_info {
  * pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.
  * To iterate over the sync_pt_infos, use the sync_pt_info.len field.
  */
-#define SYNC_IOC_FENCE_INFO_IOWR(SYNC_IOC_MAGIC, 2, struct sync_file_info)
+#define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 2, struct sync_file_info)
 
 #endif /* _UAPI_LINUX_SYNC_H */
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 04/10] staging/android: remove driver_data from struct fence_info

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

It is unclear in what situations driver_data should be used thus better do
not upstream it for now. If a need arises in the future a discussion can
be started to re-add it.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sw_sync.c   | 14 --
 drivers/staging/android/sync.c  | 21 -
 drivers/staging/android/sync.h  |  7 ---
 drivers/staging/android/uapi/sync.h |  5 +
 4 files changed, 1 insertion(+), 46 deletions(-)

diff --git a/drivers/staging/android/sw_sync.c 
b/drivers/staging/android/sw_sync.c
index 3bee959..af39ff5 100644
--- a/drivers/staging/android/sw_sync.c
+++ b/drivers/staging/android/sw_sync.c
@@ -47,19 +47,6 @@ static int sw_sync_fence_has_signaled(struct fence *fence)
return (pt->value > obj->value) ? 0 : 1;
 }
 
-static int sw_sync_fill_driver_data(struct fence *fence,
-   void *data, int size)
-{
-   struct sw_sync_pt *pt = (struct sw_sync_pt *)fence;
-
-   if (size < sizeof(pt->value))
-   return -ENOMEM;
-
-   memcpy(data, &pt->value, sizeof(pt->value));
-
-   return sizeof(pt->value);
-}
-
 static void sw_sync_timeline_value_str(struct sync_timeline *sync_timeline,
   char *str, int size)
 {
@@ -78,7 +65,6 @@ static void sw_sync_fence_value_str(struct fence *fence, char 
*str, int size)
 static struct sync_timeline_ops sw_sync_timeline_ops = {
.driver_name = "sw_sync",
.has_signaled = sw_sync_fence_has_signaled,
-   .fill_driver_data = sw_sync_fill_driver_data,
.timeline_value_str = sw_sync_timeline_value_str,
.fence_value_str = sw_sync_fence_value_str,
 };
diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index a1cf9fd..ced6e61 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -351,16 +351,6 @@ static bool android_fence_enable_signaling(struct fence 
*fence)
return true;
 }
 
-static int android_fence_fill_driver_data(struct fence *fence,
- void *data, int size)
-{
-   struct sync_timeline *parent = fence_parent(fence);
-
-   if (!parent->ops->fill_driver_data)
-   return 0;
-   return parent->ops->fill_driver_data(fence, data, size);
-}
-
 static void android_fence_value_str(struct fence *fence,
char *str, int size)
 {
@@ -394,7 +384,6 @@ static const struct fence_ops android_fence_ops = {
.signaled = android_fence_signaled,
.wait = fence_default_wait,
.release = android_fence_release,
-   .fill_driver_data = android_fence_fill_driver_data,
.fence_value_str = android_fence_value_str,
.timeline_value_str = android_fence_timeline_value_str,
 };
@@ -493,22 +482,12 @@ err_put_fd:
 static int sync_fill_fence_info(struct fence *fence, void *data, int size)
 {
struct fence_info *info = data;
-   int ret;
 
if (size < sizeof(*info))
return -ENOMEM;
 
info->len = sizeof(struct sync_pt_info);
 
-   if (fence->ops->fill_driver_data) {
-   ret = fence->ops->fill_driver_data(fence, info->driver_data,
-  size - sizeof(*info));
-   if (ret < 0)
-   return ret;
-
-   info->len += ret;
-   }
-
strlcpy(info->obj_name, fence->ops->get_timeline_name(fence),
sizeof(info->obj_name));
strlcpy(info->driver_name, fence->ops->get_driver_name(fence),
diff --git a/drivers/staging/android/sync.h b/drivers/staging/android/sync.h
index af1af99..d2a1734 100644
--- a/drivers/staging/android/sync.h
+++ b/drivers/staging/android/sync.h
@@ -32,10 +32,6 @@ struct sync_file;
  *   1 if pt has signaled
  *   0 if pt has not signaled
  *  <0 on error
- * @fill_driver_data:  write implementation specific driver data to data.
- *   should return an error if there is not enough room
- *   as specified by size.  This information is returned
- *   to userspace by SYNC_IOC_FENCE_INFO.
  * @timeline_value_str: fill str with the value of the sync_timeline's counter
  * @fence_value_str:   fill str with the value of the fence
  */
@@ -46,9 +42,6 @@ struct sync_timeline_ops {
int (*has_signaled)(struct fence *fence);
 
/* optional */
-   int (*fill_driver_data)(struct fence *fence, void *data, int size);
-
-   /* optional */
void (*timeline_value_str)(struct sync_timeline *timeline, char *str,
   int size);
 
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index 70d05ad..cdc0f04 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -28,12 +28,11 @@ struct sync_m

[PATCH 05/10] staging/android: remove len field from struct fence_info

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

After removing driver_data struct fence_info has now a fixed size,
thus it doesn't need any field to tell its size, it is already known.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/sync.c  | 4 +---
 drivers/staging/android/uapi/sync.h | 2 --
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index ced6e61..f7530f0 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -486,8 +486,6 @@ static int sync_fill_fence_info(struct fence *fence, void 
*data, int size)
if (size < sizeof(*info))
return -ENOMEM;
 
-   info->len = sizeof(struct sync_pt_info);
-
strlcpy(info->obj_name, fence->ops->get_timeline_name(fence),
sizeof(info->obj_name));
strlcpy(info->driver_name, fence->ops->get_driver_name(fence),
@@ -498,7 +496,7 @@ static int sync_fill_fence_info(struct fence *fence, void 
*data, int size)
info->status = 0;
info->timestamp_ns = ktime_to_ns(fence->timestamp);
 
-   return info->len;
+   return sizeof(*info);
 }
 
 static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index cdc0f04..ed281fc 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -28,14 +28,12 @@ struct sync_merge_data {
 
 /**
  * struct fence_info - detailed fence information
- * @len:   length of fence_info
  * @obj_name:  name of parent sync_timeline
  * @driver_name:   name of driver implementing the parent
  * @status:status of the fence 0:active 1:signaled <0:error
  * @timestamp_ns:  timestamp of status change in nanoseconds
  */
 struct fence_info {
-   __u32   len;
charobj_name[32];
chardriver_name[32];
__s32   status;
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 10/10] staging/android: remove redundant comments on sync_merge_data

2016-01-29 Thread Gustavo Padovan
From: Gustavo Padovan 

struct sync_merge_data already have documentation on top of the
struct definition. No need to duplicate it.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/uapi/sync.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/android/uapi/sync.h 
b/drivers/staging/android/uapi/sync.h
index 45921f6..0e940cb 100644
--- a/drivers/staging/android/uapi/sync.h
+++ b/drivers/staging/android/uapi/sync.h
@@ -22,9 +22,9 @@
  * @flags: merge_data flags
  */
 struct sync_merge_data {
-   __s32   fd2; /* fd of second fence */
-   charname[32]; /* name of new fence */
-   __s32   fence; /* fd on newly created fence */
+   __s32   fd2;
+   charname[32];
+   __s32   fence;
__u32   flags;
 };
 
-- 
2.5.0

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Julian Calaby
Hi Bhaktipriya,

On Sat, Jan 30, 2016 at 5:00 AM, Jes Sorensen  wrote:
> Bhaktipriya Shridhar  writes:
>> This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
>> WARNING: void function return statements are not generally useful
>>
>> Signed-off-by: Bhaktipriya Shridhar 
>> ---
>>  drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 10 --
>>  1 file changed, 10 deletions(-)
>>
>> diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
>> b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
>> index d28f29a..e8a16b9 100644
>> --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
>> +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
>> @@ -2657,7 +2657,6 @@ static void issue_probersp(struct rtw_adapter 
>> *padapter, unsigned char *da)
>>
>>   dump_mgntframe23a(padapter, pmgntframe);
>>
>> - return;
>>  }
>
> If you insist on pushing this rather unncessary change, please do it
> properly, and remove the blank line before the return statement as well.

As Jes said, you need to remove the blank lines before the returns
too. checkpatch should have picked this up, you did run the patch
through checkpatch before you sent it, right?

Jes,

I know you have strong feelings on coding style, but there are a lot
of people out there who see deviations from the standard as bugs to be
fixed, so stuff like this isn't going to stop until it matches the
coding style document's spec.

Thanks,

-- 
Julian Calaby

Email: julian.cal...@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Staging: board: Fix checkpatch.pl issue

2016-01-29 Thread SirnamSwetha
This patch fixes the checkpatch issue.

CHECK: Please don't use multiple blank lines

Signed-off-by: SirnamSwetha 
---
 drivers/staging/board/armadillo800eva.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/board/armadillo800eva.c 
b/drivers/staging/board/armadillo800eva.c
index 9c41652..2735a82 100644
--- a/drivers/staging/board/armadillo800eva.c
+++ b/drivers/staging/board/armadillo800eva.c
@@ -27,7 +27,6 @@
 
 #include "board.h"
 
-
 static struct fb_videomode lcdc0_mode = {
.name   = "AMPIER/AM-800480",
.xres   = 800,
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Staging: board: Blank lines aren't necessary before a close brace

2016-01-29 Thread SirnamSwetha
Fix checkpatch.pl issue

CHECK: Blank lines aren't necessary before a close brace 

Signed-off-by: SirnamSwetha 
---
 drivers/staging/board/board.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/board/board.c b/drivers/staging/board/board.c
index 3eb5eb8..14427e8 100644
--- a/drivers/staging/board/board.c
+++ b/drivers/staging/board/board.c
@@ -155,7 +155,6 @@ static int board_staging_add_dev_domain(struct 
platform_device *pdev,
if (IS_ERR(pd)) {
pr_err("Cannot find genpd %s (%ld)\n", domain, PTR_ERR(pd));
return PTR_ERR(pd);
-
}
pr_debug("Found genpd %s for device %s\n", pd->name, pdev->name);
 
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH V2 1/1] scsi: storvsc: Fix a build issue reported by kbuild test robot

2016-01-29 Thread K. Y. Srinivasan
tree:   
https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgit.kernel.org%2fpub%2fscm%2flinux%2fkernel%2fgit%2ftorvalds%2flinux.git&data=01%7c01%7ckys%40microsoft.com%7ce2e0622715844b79ad7108d32796ec3c%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=ubr4GbBaNS%2ftOz%2buJBk0CL9N0UNG9x2TidLgy6Yovg4%3d
 master
head:   03c21cb775a313f1ff19be59c5d02df3e3526471
commit: dac582417bc449b1f7f572d3f1dd9d23eec15cc9 storvsc: Properly support 
Fibre Channel devices
date:   3 weeks ago
config: x86_64-randconfig-s3-01281016 (attached as .config)
reproduce:
git checkout dac582417bc449b1f7f572d3f1dd9d23eec15cc9
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

   drivers/built-in.o: In function `storvsc_remove':
>> storvsc_drv.c:(.text+0x213af7): undefined reference to `fc_remove_host'
   drivers/built-in.o: In function `storvsc_drv_init':
>> storvsc_drv.c:(.init.text+0xcbcc): undefined reference to 
>> `fc_attach_transport'
>> storvsc_drv.c:(.init.text+0xcc06): undefined reference to 
>> `fc_release_transport'
   drivers/built-in.o: In function `storvsc_drv_exit':
>> storvsc_drv.c:(.exit.text+0x123c): undefined reference to 
>> `fc_release_transport'

With this commit, the storvsc driver depends on FC atttributes. Make this
dependency explicit.

Signed-off-by: K. Y. Srinivasan 
Reported-by: Fengguang Wu 
---
V2: Fixed the dependency based on suggestion by James Bottomley 


 drivers/scsi/Kconfig |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 64eed87..ce0d07b 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -594,6 +594,7 @@ config XEN_SCSI_FRONTEND
 config HYPERV_STORAGE
tristate "Microsoft Hyper-V virtual storage driver"
depends on SCSI && HYPERV
+   depends on SCSI_FC_ATTRS || SCSI_FC_ATTRS !=m
default HYPERV
help
  Select this option to enable the Hyper-V virtual storage driver.
-- 
1.7.4.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Joe Perches
On Sat, 2016-01-30 at 10:17 +1100, Julian Calaby wrote:
> On Sat, Jan 30, 2016 at 5:00 AM, Jes Sorensen  wrote:
> > Bhaktipriya Shridhar  writes:
> > > This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
> > > WARNING: void function return statements are not generally useful
[]
> > > diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
> > > b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
[]
> > > @@ -2657,7 +2657,6 @@ static void issue_probersp(struct rtw_adapter 
> > > *padapter, unsigned char *da)
> > > 
> > >   dump_mgntframe23a(padapter, pmgntframe);
> > > 
> > > - return;
> > >  }
> > 
> > If you insist on pushing this rather unncessary change, please do it
> > properly, and remove the blank line before the return statement as well.
> 
> As Jes said, you need to remove the blank lines before the returns
> too. checkpatch should have picked this up, you did run the patch
> through checkpatch before you sent it, right?

checkpatch doesn't pick this up.

If you'd like to make it do so, you're welcome to try
but it's likely a bit more complicated than it appears.

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Julian Calaby
Hi Joe,

On Sat, Jan 30, 2016 at 12:28 PM, Joe Perches  wrote:
> On Sat, 2016-01-30 at 10:17 +1100, Julian Calaby wrote:
>> On Sat, Jan 30, 2016 at 5:00 AM, Jes Sorensen  
>> wrote:
>> > Bhaktipriya Shridhar  writes:
>> > > This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
>> > > WARNING: void function return statements are not generally useful
> []
>> > > diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
>> > > b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> []
>> > > @@ -2657,7 +2657,6 @@ static void issue_probersp(struct rtw_adapter 
>> > > *padapter, unsigned char *da)
>> > >
>> > >   dump_mgntframe23a(padapter, pmgntframe);
>> > >
>> > > - return;
>> > >  }
>> >
>> > If you insist on pushing this rather unncessary change, please do it
>> > properly, and remove the blank line before the return statement as well.
>>
>> As Jes said, you need to remove the blank lines before the returns
>> too. checkpatch should have picked this up, you did run the patch
>> through checkpatch before you sent it, right?
>
> checkpatch doesn't pick this up.
>
> If you'd like to make it do so, you're welcome to try
> but it's likely a bit more complicated than it appears.

I meant the extra blank lines, not the useless return statements.

Thanks,

-- 
Julian Calaby

Email: julian.cal...@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Joe Perches
On Sat, 2016-01-30 at 14:09 +1100, Julian Calaby wrote:
> Hi Joe,

Hello Julian.

> On Sat, Jan 30, 2016 at 12:28 PM, Joe Perches 
> wrote:
> > On Sat, 2016-01-30 at 10:17 +1100, Julian Calaby wrote:
> > > On Sat, Jan 30, 2016 at 5:00 AM, Jes Sorensen  > > t.com> wrote:
> > > > Bhaktipriya Shridhar  writes:
> > > > > This patch fixes checkpatch.pl warning in rtw_mlme_ext.c
> > > > > file.
> > > > > WARNING: void function return statements are not generally
> > > > > useful
> > []
> > > > > diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> > > > > b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
> > []
> > > > > @@ -2657,7 +2657,6 @@ static void issue_probersp(struct
> > > > > rtw_adapter *padapter, unsigned char *da)
> > > > > 
> > > > >   dump_mgntframe23a(padapter, pmgntframe);
> > > > > 
> > > > > - return;
> > > > >  }
> > > > 
> > > > If you insist on pushing this rather unncessary change, please
> > > > do it
> > > > properly, and remove the blank line before the return statement
> > > > as well.
> > > 
> > > As Jes said, you need to remove the blank lines before the
> > > returns
> > > too. checkpatch should have picked this up, you did run the patch
> > > through checkpatch before you sent it, right?
> > 
> > checkpatch doesn't pick this up.
> > 
> > If you'd like to make it do so, you're welcome to try
> > but it's likely a bit more complicated than it appears.
> 
> I meant the extra blank lines, not the useless return statements.

I understood what you meant.

It's relatively difficult to determine that a line removal
patch causes a blank line to appear before a closing brace.

You're welcome to extend checkpatch to find these things,
but there are likely many additional patch types that need
to be considered.  Remember patches can add, modify and
delete lines.

cheers, Joe
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH V2 1/1] scsi: storvsc: Fix a build issue reported by kbuild test robot

2016-01-29 Thread James Bottomley
On Fri, 2016-01-29 at 19:36 -0800, K. Y. Srinivasan wrote:
> tree:   https://na01.safelinks.protection.outlook.com/?url=https%3a%2
> f%2fgit.kernel.org%2fpub%2fscm%2flinux%2fkernel%2fgit%2ftorvalds%2fli
> nux.git&data=01%7c01%7ckys%40microsoft.com%7ce2e0622715844b79ad7108d3
> 2796ec3c%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=ubr4GbBaNS%2ftO
> z%2buJBk0CL9N0UNG9x2TidLgy6Yovg4%3d master
> head:   03c21cb775a313f1ff19be59c5d02df3e3526471
> commit: dac582417bc449b1f7f572d3f1dd9d23eec15cc9 storvsc: Properly
> support Fibre Channel devices
> date:   3 weeks ago
> config: x86_64-randconfig-s3-01281016 (attached as .config)
> reproduce:
> git checkout dac582417bc449b1f7f572d3f1dd9d23eec15cc9
> # save the attached .config to linux build tree
> make ARCH=x86_64
> 
> All errors (new ones prefixed by >>):
> 
>drivers/built-in.o: In function `storvsc_remove':
> > > storvsc_drv.c:(.text+0x213af7): undefined reference to
> > > `fc_remove_host'
>drivers/built-in.o: In function `storvsc_drv_init':
> > > storvsc_drv.c:(.init.text+0xcbcc): undefined reference to
> > > `fc_attach_transport'
> > > storvsc_drv.c:(.init.text+0xcc06): undefined reference to
> > > `fc_release_transport'
>drivers/built-in.o: In function `storvsc_drv_exit':
> > > storvsc_drv.c:(.exit.text+0x123c): undefined reference to
> > > `fc_release_transport'
> 
> With this commit, the storvsc driver depends on FC atttributes. Make
> this
> dependency explicit.
> 
> Signed-off-by: K. Y. Srinivasan 
> Reported-by: Fengguang Wu 
> ---
>   V2: Fixed the dependency based on suggestion by James Bottomley
> 
> 
>  drivers/scsi/Kconfig |1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
> index 64eed87..ce0d07b 100644
> --- a/drivers/scsi/Kconfig
> +++ b/drivers/scsi/Kconfig
> @@ -594,6 +594,7 @@ config XEN_SCSI_FRONTEND
>  config HYPERV_STORAGE
>   tristate "Microsoft Hyper-V virtual storage driver"
>   depends on SCSI && HYPERV
> + depends on SCSI_FC_ATTRS || SCSI_FC_ATTRS !=m

No ... if you want to depend on the FC_ATTRS then a simple depend
works.  If you want to be able to build without them or with them, then
that line must read

depends on m || SCSI_FC_ATTRS != m

James






___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Bhaktipriya Shridhar
This patch fixes checkpatch.pl warning in rtw_mlme_ext.c file.
WARNING: void function return statements are not generally useful

Signed-off-by: Bhaktipriya Shridhar 
---
 Changes in v2:
   - Removed the unnecessary blank lines.
 drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 20 
 1 file changed, 20 deletions(-)

diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
index d28f29a..7cd0052 100644
--- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
@@ -2656,8 +2656,6 @@ static void issue_probersp(struct rtw_adapter *padapter, 
unsigned char *da)
pattrib->last_txcmdsz = pattrib->pktlen;

dump_mgntframe23a(padapter, pmgntframe);
-
-   return;
 }

 static int _issue_probereq(struct rtw_adapter *padapter,
@@ -2957,8 +2955,6 @@ static void issue_auth(struct rtw_adapter *padapter, 
struct sta_info *psta,
rtw_wep_encrypt23a(padapter, pmgntframe);
DBG_8723A("%s\n", __func__);
dump_mgntframe23a(padapter, pmgntframe);
-
-   return;
 }

 #ifdef CONFIG_8723AU_AP_MODE
@@ -3338,8 +3334,6 @@ exit:
}
} else
kfree(pmlmepriv->assoc_req);
-
-   return;
 }

 /* when wait_ack is true, this function should be called at process context */
@@ -4102,8 +4096,6 @@ static void rtw_site_survey(struct rtw_adapter *padapter)
pmlmeext->chan_scan_time = SURVEY_TO;
pmlmeext->sitesurvey_res.state = SCAN_DISABLE;
}
-
-   return;
 }

 /* collect bss info from Beacon and Probe request/response frames. */
@@ -4759,8 +4751,6 @@ void report_survey_event23a(struct rtw_adapter *padapter,
rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);

pmlmeext->sitesurvey_res.bss_cnt++;
-
-   return;
 }

 void report_surveydone_event23a(struct rtw_adapter *padapter)
@@ -4802,8 +4792,6 @@ void report_surveydone_event23a(struct rtw_adapter 
*padapter)
DBG_8723A("survey done event(%x)\n", psurveydone_evt->bss_cnt);

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);
-
-   return;
 }

 void report_join_res23a(struct rtw_adapter *padapter, int res)
@@ -4850,8 +4838,6 @@ void report_join_res23a(struct rtw_adapter *padapter, int 
res)
rtw_joinbss_event_prehandle23a(padapter, (u8 *)&pjoinbss_evt->network);

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);
-
-   return;
 }

 void report_del_sta_event23a(struct rtw_adapter *padapter,
@@ -4906,8 +4892,6 @@ void report_del_sta_event23a(struct rtw_adapter *padapter,
DBG_8723A("report_del_sta_event23a: delete STA, mac_id =%d\n", mac_id);

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);
-
-   return;
 }

 void report_add_sta_event23a(struct rtw_adapter *padapter,
@@ -4951,8 +4935,6 @@ void report_add_sta_event23a(struct rtw_adapter *padapter,
DBG_8723A("report_add_sta_event23a: add STA\n");

rtw_enqueue_cmd23a(pcmdpriv, pcmd_obj);
-
-   return;
 }

 /
@@ -5394,8 +5376,6 @@ static void link_timer_hdl(unsigned long data)
issue_assocreq(padapter);
set_link_timer(pmlmeext, REASSOC_TO);
}
-
-   return;
 }

 static void addba_timer_hdl(unsigned long data)
--
2.1.4

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Bhakti Priya
Hi,

Thank you for your reply. I've just sent version 2 of the patch with
the blank lines removed.
I will be happy to extend checkpatch.pl. As suggested by you, I am
trying to detect such blank lines in a line removal patch by checking
if the line above the deleted line was a blank line and the line
following the deleted line had a closing brace.
Can you please guide me and let me know if I am headed in the right direction.

Thanks,
Bhaktipriya


On Sat, Jan 30, 2016 at 8:48 AM, Joe Perches  wrote:
> On Sat, 2016-01-30 at 14:09 +1100, Julian Calaby wrote:
>> Hi Joe,
>
> Hello Julian.
>
>> On Sat, Jan 30, 2016 at 12:28 PM, Joe Perches 
>> wrote:
>> > On Sat, 2016-01-30 at 10:17 +1100, Julian Calaby wrote:
>> > > On Sat, Jan 30, 2016 at 5:00 AM, Jes Sorensen > > > t.com> wrote:
>> > > > Bhaktipriya Shridhar  writes:
>> > > > > This patch fixes checkpatch.pl warning in rtw_mlme_ext.c
>> > > > > file.
>> > > > > WARNING: void function return statements are not generally
>> > > > > useful
>> > []
>> > > > > diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
>> > > > > b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
>> > []
>> > > > > @@ -2657,7 +2657,6 @@ static void issue_probersp(struct
>> > > > > rtw_adapter *padapter, unsigned char *da)
>> > > > >
>> > > > >   dump_mgntframe23a(padapter, pmgntframe);
>> > > > >
>> > > > > - return;
>> > > > >  }
>> > > >
>> > > > If you insist on pushing this rather unncessary change, please
>> > > > do it
>> > > > properly, and remove the blank line before the return statement
>> > > > as well.
>> > >
>> > > As Jes said, you need to remove the blank lines before the
>> > > returns
>> > > too. checkpatch should have picked this up, you did run the patch
>> > > through checkpatch before you sent it, right?
>> >
>> > checkpatch doesn't pick this up.
>> >
>> > If you'd like to make it do so, you're welcome to try
>> > but it's likely a bit more complicated than it appears.
>>
>> I meant the extra blank lines, not the useless return statements.
>
> I understood what you meant.
>
> It's relatively difficult to determine that a line removal
> patch causes a blank line to appear before a closing brace.
>
> You're welcome to extend checkpatch to find these things,
> but there are likely many additional patch types that need
> to be considered.  Remember patches can add, modify and
> delete lines.
>
> cheers, Joe
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: rtl8723au: Fixes unnecessary return warning

2016-01-29 Thread Joe Perches
On Sat, 2016-01-30 at 12:23 +0530, Bhakti Priya wrote:
> I will be happy to extend checkpatch.pl. As suggested by you, I am
> trying to detect such blank lines in a line removal patch by checking
> if the line above the deleted line was a blank line and the line
> following the deleted line had a closing brace.
> Can you please guide me and let me know if I am headed in the right
> direction.

You have to track all the + and - lines that precede the
deleted line.

Good luck.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel