Re: [PATCH] Staging: bcm: CmHost: unline split quoted strings.

2014-03-17 Thread Mark Einon
On Sun, Mar 16, 2014 at 10:16:09PM -0400, Gary Rookard wrote:
 
 
 On Sun, 16 Mar 2014, Gary Rookard wrote:
 
 
 
 On Sun, 16 Mar 2014, Mark Einon wrote:
 
 On Sun, Mar 16, 2014 at 02:19:51PM -0400, Gary Rookard wrote:
 I unline split some quoted strings.
 
 Hi,
 
 Why? What issue does it fix?
 
 --
 Hi,
 
 It fixes a checkpatch error/warning quoted string split across
 lines or something phrased very simular. Is there
 a problem with.
 
 --
 Hi again,
 
 Well firstly I do know that there is a trade off going on with the patch
 that way, but for me, the general rule of thumb is that not sometimes
 but most of the time you want your strings avalable for grep. And with
 them split across lines it is hard - impossible to accomplish. Thus
 line length becomes meaningless or should I say not quit as bad as
 it sounds. If you look they are sill shorter then alot of the code
 in that
 region of the file.
 --

Hi Gary,

Ok. Fixing the split line issue is good - there's no problems with what you're
trying to do there.

However:

* The commit message should explain both what you're doing, and why you're
doing it - this makes reviewing the patch and referencing in future far easier.
For a checkpatch fix, you would normally expect checkpatch to be mentioned and
the issues that are being addressed - cut and pasting the checkpatch output
would work in this case, as it's not too verbose.
(Also applies to your other patch).

* You've fixed one checkpatch issue, but introduced another - meaning that
* another patch is probably needed. Why not make the code more readable while
* you're at it?

Cheers,

Mark

 
 
 Signed-off-by: Gary Alan Rookard garyrook...@gmail.com
 
 ---
 On branch staging-next
  drivers/staging/bcm/CmHost.c | 12 
  1 file changed, 4 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
 index 2d1f94d..4cb59d7 100644
 --- a/drivers/staging/bcm/CmHost.c
 +++ b/drivers/staging/bcm/CmHost.c
 @@ -975,8 +975,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

  psfCSType-cCPacketClassificationRule.u8EthernetDestMacAddressLength);
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 -  DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
 -  %pM, psfCSType-cCPacketClassificationRule.
 +  DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
 %pM,
 psfCSType-cCPacketClassificationRule.
u8EthernetSourceMACAddress);
 
 You've also gone way over the 80 char limit for the line, for no
 real reason.
 if anything, I would consider making
 psfCSType-cCPacketClassificationRule.u8EthernetSourceMACAddress
 more readable.
 Similarly for the changes below.
 
 Cheers,
 
 Mark
 
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 DBG_LVL_ALL, u8EthertypeLength: 0x%02X ,
 @@ -1092,8 +1091,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

  psfCSType-cCPacketClassificationRule.u8ProtocolSourcePortRangeLength);
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 -  DBG_LVL_ALL, u8ProtocolSourcePortRange[4]: 
 -  0x%*ph , 4, psfCSType-
 +  DBG_LVL_ALL, u8ProtocolSourcePortRange[4]: 
 0x%*ph , 4,
 psfCSType-
cCPacketClassificationRule.
u8ProtocolSourcePortRange);
 
 @@ -1101,8 +1099,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

  psfCSType-cCPacketClassificationRule.u8ProtocolDestPortRangeLength);
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 -  DBG_LVL_ALL, u8ProtocolDestPortRange[4]: 
 -  0x%*ph , 4, psfCSType-
 +  DBG_LVL_ALL, u8ProtocolDestPortRange[4]: 
 0x%*ph , 4,
 psfCSType-
cCPacketClassificationRule.
u8ProtocolDestPortRange);
 
 @@ -1118,8 +1115,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

  psfCSType-cCPacketClassificationRule.u8EthernetDestMacAddressLength);
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 -  DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
 -  %pM, psfCSType-cCPacketClassificationRule.
 +  DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
 %pM,
 psfCSType-cCPacketClassificationRule.
u8EthernetSourceMACAddress);
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
 DBG_LVL_ALL, u8EthertypeLength: 0x%02X ,
 psfCSType-cCPacketClassificationRule.u8EthertypeLength);
 --
 1.9.0
 
 ___
 devel mailing list
 de...@linuxdriverproject.org

Re: [PATCH] Staging: gdm724x: gdm_lte.h: fixed coding style

2014-03-17 Thread Joe Perches
On Mon, 2014-03-17 at 08:18 +1300, Daniel Ngu wrote:
 Missing space after return type

Not really.

 diff --git a/drivers/staging/gdm724x/gdm_lte.h 
 b/drivers/staging/gdm724x/gdm_lte.h
[]
 @@ -56,7 +56,7 @@ struct phy_dev {
   int (*cb)(void *cb_data, void *data, int len,
 int context),
   void *cb_data, int context);
 - struct gdm_endian *(*get_endian)(void *priv_dev);
 + struct gdm_endian * (*get_endian)(void *priv_dev);

That one was a defect in checkpatch that was
corrected in -next by:

commit 93ca9441419b0bfbf96243e01f39b5a80565215e
Author: Joe Perches j...@perches.com
Date:   Thu Mar 6 11:02:08 2014 +1100

checkpatch: don't warn on some function pointer return styles

Checks for some function pointer return styles are too strict.  Fix them.

Multiple spaces after function pointer return types are allowed.
int  (*foo)(int bar)

Spaces after function pointer returns of pointer types are not required.
int *(*foo)(int bar)


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


Re: [PATCH RFC] staging: dgap: more 80+ char lines work

2014-03-17 Thread Mark Hounschell

On 03/07/2014 05:46 PM, Dan Carpenter wrote:

I still prefer my patch.  Unless I'm missing something?  Could you
review it and I will submit it as a patch tomorrow.

regards,
dan carpenter

diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c
index d00283a226a2..783cd75a2d96 100644
--- a/drivers/staging/dgap/dgap.c
+++ b/drivers/staging/dgap/dgap.c
@@ -5730,6 +5730,33 @@ static void dgap_parity_scan(struct channel_t *ch, 
unsigned char *cbuf,
*len = count;
  }

+static void dgap_write_wakeup(struct board_t *bd, struct channel_t *ch,
+ struct un_t *un, u32 mask,
+ unsigned long *irq_flags1,
+ unsigned long *irq_flags2)
+{
+   if (!(un-un_flags  mask))
+   return;
+
+   un-un_flags = ~mask;
+
+   if (!(un-un_flags  UN_ISOPEN))
+   return;
+
+   if ((un-un_tty-flags  (1  TTY_DO_WRITE_WAKEUP)) 
+   un-un_tty-ldisc-ops-write_wakeup) {
+   spin_unlock_irqrestore(ch-ch_lock, *irq_flags2);
+   spin_unlock_irqrestore(bd-bd_lock, *irq_flags1);
+
+   (un-un_tty-ldisc-ops-write_wakeup)(un-un_tty);
+
+   spin_lock_irqsave(bd-bd_lock, *irq_flags1);
+   spin_lock_irqsave(ch-ch_lock, *irq_flags2);
+   }
+   wake_up_interruptible(un-un_tty-write_wait);
+   wake_up_interruptible(un-un_flags_wait);
+}
+
  /*===
   *
   *  dgap_event - FEP to host event processing routine.
@@ -5881,42 +5908,10 @@ static int dgap_event(struct board_t *bd)
 * Process Transmit low.
 */
if (reason  IFTLW) {
-
-   if (ch-ch_tun.un_flags  UN_LOW) {
-   ch-ch_tun.un_flags = ~UN_LOW;
-
-   if (ch-ch_tun.un_flags  UN_ISOPEN) {
-   if ((ch-ch_tun.un_tty-flags 
-  (1  TTY_DO_WRITE_WAKEUP)) 
-   
ch-ch_tun.un_tty-ldisc-ops-write_wakeup) {
-   DGAP_UNLOCK(ch-ch_lock, 
lock_flags2);
-   DGAP_UNLOCK(bd-bd_lock, 
lock_flags);
-   
(ch-ch_tun.un_tty-ldisc-ops-write_wakeup)(ch-ch_tun.un_tty);
-   DGAP_LOCK(bd-bd_lock, 
lock_flags);
-   DGAP_LOCK(ch-ch_lock, 
lock_flags2);
-   }
-   
wake_up_interruptible(ch-ch_tun.un_tty-write_wait);
-   
wake_up_interruptible(ch-ch_tun.un_flags_wait);
-   }
-   }
-
-   if (ch-ch_pun.un_flags  UN_LOW) {
-   ch-ch_pun.un_flags = ~UN_LOW;
-   if (ch-ch_pun.un_flags  UN_ISOPEN) {
-   if ((ch-ch_pun.un_tty-flags 
-  (1  TTY_DO_WRITE_WAKEUP)) 
-   
ch-ch_pun.un_tty-ldisc-ops-write_wakeup) {
-   DGAP_UNLOCK(ch-ch_lock, 
lock_flags2);
-   DGAP_UNLOCK(bd-bd_lock, 
lock_flags);
-   
(ch-ch_pun.un_tty-ldisc-ops-write_wakeup)(ch-ch_pun.un_tty);
-   DGAP_LOCK(bd-bd_lock, 
lock_flags);
-   DGAP_LOCK(ch-ch_lock, 
lock_flags2);
-   }
-   
wake_up_interruptible(ch-ch_pun.un_tty-write_wait);
-   
wake_up_interruptible(ch-ch_pun.un_flags_wait);
-   }
-   }
-
+   dgap_write_wakeup(bd, ch, ch-ch_tun, UN_LOW,
+ lock_flags, lock_flags2);
+   dgap_write_wakeup(bd, ch, ch-ch_pun, UN_LOW,
+ lock_flags, lock_flags2);
if (ch-ch_flags  CH_WLOW) {
ch-ch_flags = ~CH_WLOW;
wake_up_interruptible(ch-ch_flags_wait);
@@ -5927,42 +5922,10 @@ static int dgap_event(struct board_t *bd)
 * Process Transmit empty.
 */
if (reason  IFTEM) {
-   if (ch-ch_tun.un_flags  UN_EMPTY) {
-   ch-ch_tun.un_flags = ~UN_EMPTY;
-   if (ch-ch_tun.un_flags  UN_ISOPEN) {
-   if ((ch-ch_tun.un_tty-flags 
-  (1  

Re: [PATCH 07/12] drm: drm_display_mode: add signal polarity flags

2014-03-17 Thread Andrzej Hajda
Hi Denis,

Thanks for the patch.

On 03/13/2014 06:17 PM, Denis Carikli wrote:
 We need a way to pass signal polarity informations
   between DRM panels, and the display drivers.
 
 To do that, a pol_flags field was added to drm_display_mode.
 
 Signed-off-by: Denis Carikli de...@eukrea.com
 ---
 ChangeLog v10-v11:
 - Since the imx-drm won't be able to retrive its regulators
   from the device tree when using display-timings nodes,
   and that I was told that the drm simple-panel driver 
   already supported that, I then, instead, added what was
   lacking to make the eukrea displays work with the
   drm-simple-panel driver.
 
   That required a way to get back the display polarity
   informations from the imx-drm driver without affecting
   userspace.
 ---
  include/drm/drm_crtc.h |8 
  1 file changed, 8 insertions(+)
 
 diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
 index f764654..61a4fe1 100644
 --- a/include/drm/drm_crtc.h
 +++ b/include/drm/drm_crtc.h
 @@ -131,6 +131,13 @@ enum drm_mode_status {
  
  #define DRM_MODE_FLAG_3D_MAX DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF
  
 +#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGEBIT(1)
 +#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGEBIT(2)
 +#define DRM_MODE_FLAG_POL_PIXDATA_PRESERVE   BIT(3)
 +#define DRM_MODE_FLAG_POL_DE_NEGEDGE BIT(4)
 +#define DRM_MODE_FLAG_POL_DE_POSEDGE BIT(5)
 +#define DRM_MODE_FLAG_POL_DE_PRESERVEBIT(6)

Could you add some description to these flags.
What are *_PRESERVE flags for?
Are those flags 1:1 compatible with respective 'videomode:flags'?
I guess DE flags should be rather DRM_MODE_FLAG_POL_DE_(LOW|HIGH), am I
right?

Regards
Andrzej


 +
  struct drm_display_mode {
   /* Header */
   struct list_head head;
 @@ -183,6 +190,7 @@ struct drm_display_mode {
   int vrefresh;   /* in Hz */
   int hsync;  /* in kHz */
   enum hdmi_picture_aspect picture_aspect_ratio;
 + unsigned int pol_flags;
  };
  
  static inline bool drm_mode_is_stereo(const struct drm_display_mode *mode)
 

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


Re: [PATCH 6/6] Staging: unisys: visorutil: Clean up sparse warnings in visorutil code

2014-03-17 Thread Ken Cox


On 03/16/2014 05:13 PM, Mark Einon wrote:

On 13/03/14 20:39, Ken Cox wrote:

Clean up code to get rid of sparse warnings.

Also fixed variable length arrays declared on the stack.

Signed-off-by: Ken Cox j...@redhat.com
---
  drivers/staging/unisys/visorutil/procobjecttree.c | 2 +-
  drivers/staging/unisys/visorutil/visorkmodutils.c | 6 ++
  2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visorutil/procobjecttree.c 
b/drivers/staging/unisys/visorutil/procobjecttree.c

index e4d734e..7c7f001 100644
--- a/drivers/staging/unisys/visorutil/procobjecttree.c
+++ b/drivers/staging/unisys/visorutil/procobjecttree.c
@@ -150,7 +150,7 @@ MYPROCTYPE *visor_proc_CreateType(struct 
proc_dir_entry *procDirRoot,

  type-nNames = 0;
  type-show_property = show_property;
  type-procDirRoot = procDirRoot;
-if (type-propertyNames != 0)
+if (type-propertyNames != NULL)
  while (type-propertyNames[type-nProperties] != NULL)
  type-nProperties++;
  while (type-name[type-nNames] != NULL)
diff --git a/drivers/staging/unisys/visorutil/visorkmodutils.c 
b/drivers/staging/unisys/visorutil/visorkmodutils.c

index ed46208..f66acd9 100644
--- a/drivers/staging/unisys/visorutil/visorkmodutils.c
+++ b/drivers/staging/unisys/visorutil/visorkmodutils.c
@@ -20,8 +20,6 @@

  #define MYDRVNAME timskmodutils

-BOOL Debug_Malloc_Enabled = FALSE;
-
  /** Print the hexadecimal contents of a data buffer to a supplied 
print buffer.
   *  @param dest   the print buffer where text 
characters will

   *  be written
@@ -42,8 +40,8 @@ int visor_hexDumpToBuffer(char *dest, int destSize, 
char *prefix, char *src,

  {
  int i = 0;
  int pos = 0;
-char printable[bytesToDumpPerLine + 1];
-char hex[(bytesToDumpPerLine * 3) + 1];
+char printable[24];
+char hex[64];


Hi,

This isn't a good fix - this introduces a bug as later in this function,
'printable' and 'hex' are memset and assigned using the 
bytesToDumpPerLine parameter.
I'll get rid of this function altogether and just use 
hex_dump_to_buffer().  Revised patch coming soon.


Cheers,

Mark




  char *line = NULL;
  int linesize = 1000;
  int linelen = 0;





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


Re: [PATCH 07/12] drm: drm_display_mode: add signal polarity flags

2014-03-17 Thread Laurent Pinchart
Hello,

On Monday 17 March 2014 14:41:09 Andrzej Hajda wrote:
 On 03/13/2014 06:17 PM, Denis Carikli wrote:
  We need a way to pass signal polarity informations
  between DRM panels, and the display drivers.
  
  To do that, a pol_flags field was added to drm_display_mode.
  
  Signed-off-by: Denis Carikli de...@eukrea.com
  ---
  ChangeLog v10-v11:
  - Since the imx-drm won't be able to retrive its regulators
  
from the device tree when using display-timings nodes,
and that I was told that the drm simple-panel driver
already supported that, I then, instead, added what was
lacking to make the eukrea displays work with the
drm-simple-panel driver.

That required a way to get back the display polarity
informations from the imx-drm driver without affecting
userspace.
  
  ---
  
   include/drm/drm_crtc.h |8 
   1 file changed, 8 insertions(+)
  
  diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
  index f764654..61a4fe1 100644
  --- a/include/drm/drm_crtc.h
  +++ b/include/drm/drm_crtc.h
  @@ -131,6 +131,13 @@ enum drm_mode_status {
  
   #define DRM_MODE_FLAG_3D_MAX   DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF
  
  +#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGE  BIT(1)
  +#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGE  BIT(2)
  +#define DRM_MODE_FLAG_POL_PIXDATA_PRESERVE BIT(3)
  +#define DRM_MODE_FLAG_POL_DE_NEGEDGE   BIT(4)
  +#define DRM_MODE_FLAG_POL_DE_POSEDGE   BIT(5)
  +#define DRM_MODE_FLAG_POL_DE_PRESERVE  BIT(6)
 
 Could you add some description to these flags.
 What are *_PRESERVE flags for?
 Are those flags 1:1 compatible with respective 'videomode:flags'?
 I guess DE flags should be rather DRM_MODE_FLAG_POL_DE_(LOW|HIGH), am I
 right?

Possibly nitpicking, I wouldn't call the clock edge on which data signals are 
generated/sampled data polarity. This is clock polarity information.

Have you seen cases where pixel data and DE are geenrated or need to be 
sampled on different edges ?

  +
   struct drm_display_mode {
  /* Header */
  struct list_head head;
  @@ -183,6 +190,7 @@ struct drm_display_mode {
  int vrefresh;   /* in Hz */
  int hsync;  /* in kHz */
  enum hdmi_picture_aspect picture_aspect_ratio;
  +   unsigned int pol_flags;
   };
   
   static inline bool drm_mode_is_stereo(const struct drm_display_mode
   *mode)

-- 
Regards,

Laurent Pinchart

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


Re: [PATCH] staging: comedi: das6402: rewrite broken driver

2014-03-17 Thread Ian Abbott

On 2014-03-14 19:24, H Hartley Sweeten wrote:

This driver is _really_ broken.

It initializes an analog input subdevice that only has a (*cancel)
function. It also does a request_irq() to hookup an interrupt handler
using it-options[0] as the IRQ. This option is actually the base
address of the I/O region used by the board. If the interrupt handler
actually did get hooked up, the rest of the code assumes that IRQ 10
is being used.

Rewrite the driver to properly support the hardware.

The DAS6402-12/16 boards have 64 single-ended / 32 differential analog
inputs, 2 analog outputs, 8 digital inputs, and 8 digital outputs. Add
proper support for these subdevices.

Stub in the analog input async command support.

Signed-off-by: H Hartley Sweeten hswee...@visionengravers.com
Cc: Ian Abbott abbo...@mev.co.uk
Cc: Greg Kroah-Hartman gre...@linuxfoundation.org


I guess it won't have been run-tested, but it can't be worse than the 
old one!


Reviewed-by: Ian Abbott abbo...@mev.co.uk

--
-=( Ian Abbott @ MEV Ltd.E-mail: abbo...@mev.co.uk)=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587 )=-
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Staging: bcm: CmHost: unline split quoted strings.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Mark Einon wrote:


On Sun, Mar 16, 2014 at 10:16:09PM -0400, Gary Rookard wrote:



On Sun, 16 Mar 2014, Gary Rookard wrote:




On Sun, 16 Mar 2014, Mark Einon wrote:


On Sun, Mar 16, 2014 at 02:19:51PM -0400, Gary Rookard wrote:

I unline split some quoted strings.


Hi,

Why? What issue does it fix?


--
Hi,

It fixes a checkpatch error/warning quoted string split across
lines or something phrased very simular. Is there
a problem with.


--
Hi again,

Well firstly I do know that there is a trade off going on with the patch
that way, but for me, the general rule of thumb is that not sometimes
but most of the time you want your strings avalable for grep. And with
them split across lines it is hard - impossible to accomplish. Thus
line length becomes meaningless or should I say not quit as bad as
it sounds. If you look they are sill shorter then alot of the code
in that
region of the file.
--


Hi Gary,

Ok. Fixing the split line issue is good - there's no problems with what you're
trying to do there.

However:

* The commit message should explain both what you're doing, and why you're
doing it - this makes reviewing the patch and referencing in future far easier.
For a checkpatch fix, you would normally expect checkpatch to be mentioned and
the issues that are being addressed - cut and pasting the checkpatch output
would work in this case, as it's not too verbose.
(Also applies to your other patch).

* You've fixed one checkpatch issue, but introduced another - meaning that
* another patch is probably needed. Why not make the code more readable while
* you're at it?

Cheers,

Mark


--
Hi,

Agreed, my commit messages are sorely lacking in
appropriate content. Will fix these up, and in the
future try to be more mindful about.

Thanks,
Gary












Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
On branch staging-next
drivers/staging/bcm/CmHost.c | 12 
1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index 2d1f94d..4cb59d7 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -975,8 +975,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

psfCSType-cCPacketClassificationRule.u8EthernetDestMacAddressLength);

BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
-   DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
-   %pM, psfCSType-cCPacketClassificationRule.
+   DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
%pM,
psfCSType-cCPacketClassificationRule.
u8EthernetSourceMACAddress);


You've also gone way over the 80 char limit for the line, for no
real reason.
if anything, I would consider making
psfCSType-cCPacketClassificationRule.u8EthernetSourceMACAddress
more readable.
Similarly for the changes below.

Cheers,

Mark



BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
DBG_LVL_ALL, u8EthertypeLength: 0x%02X ,
@@ -1092,8 +1091,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

psfCSType-cCPacketClassificationRule.u8ProtocolSourcePortRangeLength);

BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
-   DBG_LVL_ALL, u8ProtocolSourcePortRange[4]: 
-   0x%*ph , 4, psfCSType-
+   DBG_LVL_ALL, u8ProtocolSourcePortRange[4]: 0x%*ph 
, 4,
psfCSType-
cCPacketClassificationRule.
u8ProtocolSourcePortRange);

@@ -1101,8 +1099,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

psfCSType-cCPacketClassificationRule.u8ProtocolDestPortRangeLength);

BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
-   DBG_LVL_ALL, u8ProtocolDestPortRange[4]: 
-   0x%*ph , 4, psfCSType-
+   DBG_LVL_ALL, u8ProtocolDestPortRange[4]: 0x%*ph 
, 4,
psfCSType-
cCPacketClassificationRule.
u8ProtocolDestPortRange);

@@ -1118,8 +1115,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer)

psfCSType-cCPacketClassificationRule.u8EthernetDestMacAddressLength);

BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL,
-   DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
-   %pM, psfCSType-cCPacketClassificationRule.
+   DBG_LVL_ALL, u8EthernetSourceMACAddress[6]: 
%pM,
psfCSType-cCPacketClassificationRule.
u8EthernetSourceMACAddress);


[Patch V2 6/6] Staging: unisys: visorutil: Clean up sparse warnings in visorutil code

2014-03-17 Thread Ken Cox
Clean up code to get rid of sparse warnings.

Also fixed variable length arrays declared on the stack by removing
visor_hexDumpToBuffer() and using hex_dump_to_buffer() instead.

Signed-off-by: Ken Cox j...@redhat.com
---
 drivers/staging/unisys/include/timskmodutils.h | 22 --
 .../unisys/visorchannel/visorchannel_funcs.c   | 15 ++--
 drivers/staging/unisys/visorutil/procobjecttree.c  |  2 +-
 drivers/staging/unisys/visorutil/visorkmodutils.c  | 87 --
 4 files changed, 11 insertions(+), 115 deletions(-)

diff --git a/drivers/staging/unisys/include/timskmodutils.h 
b/drivers/staging/unisys/include/timskmodutils.h
index ea0ec49..2d81d46 100644
--- a/drivers/staging/unisys/include/timskmodutils.h
+++ b/drivers/staging/unisys/include/timskmodutils.h
@@ -24,28 +24,6 @@ void *kmalloc_kernel(size_t siz);
 void  myprintk(const char *myDrvName, const char *devname,
const char *template, ...);
 
-/** Print the hexadecimal contents of a data buffer to a supplied print buffer.
- *  @param dest   the print buffer where text characters will be
- *written
- *  @param destSize   the maximum number of bytes that can be written
- *to #dest
- *  @param srcthe buffer that contains the data that is to be
- *hex-dumped
- *  @param srcLen the number of bytes at #src to be hex-dumped
- *  @param bytesToDumpPerLine output will be formatted such that at most this
- *many of the input data bytes will be represented
- *on each line of output
- *  @return   the number of text characters written to #dest
- *(not including the trailing '\0' byte)
- *  @ingroup internal
- */
-int   visor_hexDumpToBuffer(char *dest,
-   int destSize,
-   char *prefix,
-   char *src,
-   int srcLen,
-   int bytesToDumpPerLine);
-
 /**
  *---  GENERAL MESSAGEQ STUFF  ---*
  **/
diff --git a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c 
b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
index 611be77..f397d83 100644
--- a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
+++ b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
@@ -603,9 +603,9 @@ void
 visorchannel_dump_section(VISORCHANNEL *chan, char *s,
  int off, int len, struct seq_file *seq)
 {
-   char *buf = NULL, *fmtbuf = NULL;
+   char *buf, *tbuf, *fmtbuf;
int fmtbufsize = 0;
-   int i = 0;
+   int i;
int errcode = 0;
 
fmtbufsize = 100 * COVQ(len, 16);
@@ -621,9 +621,14 @@ visorchannel_dump_section(VISORCHANNEL *chan, char *s,
goto Away;
}
seq_printf(seq, channel %s:\n, s);
-   visor_hexDumpToBuffer(fmtbuf, fmtbufsize,   , buf, len, 16);
-   for (i = 0; fmtbuf[i] != '\0'; i++)
-   seq_printf(seq, %c, fmtbuf[i]);
+   tbuf = buf;
+   while (len  0) {
+   i = (len  16) ? len : 16;
+   hex_dump_to_buffer(tbuf, i, 16, 1, fmtbuf, fmtbufsize, TRUE);
+   seq_printf(seq, %s\n, fmtbuf);
+   tbuf += 16;
+   len -= 16;
+   }
 
 Away:
if (buf != NULL) {
diff --git a/drivers/staging/unisys/visorutil/procobjecttree.c 
b/drivers/staging/unisys/visorutil/procobjecttree.c
index e4d734e..7c7f001 100644
--- a/drivers/staging/unisys/visorutil/procobjecttree.c
+++ b/drivers/staging/unisys/visorutil/procobjecttree.c
@@ -150,7 +150,7 @@ MYPROCTYPE *visor_proc_CreateType(struct proc_dir_entry 
*procDirRoot,
type-nNames = 0;
type-show_property = show_property;
type-procDirRoot = procDirRoot;
-   if (type-propertyNames != 0)
+   if (type-propertyNames != NULL)
while (type-propertyNames[type-nProperties] != NULL)
type-nProperties++;
while (type-name[type-nNames] != NULL)
diff --git a/drivers/staging/unisys/visorutil/visorkmodutils.c 
b/drivers/staging/unisys/visorutil/visorkmodutils.c
index ed46208..ef06469 100644
--- a/drivers/staging/unisys/visorutil/visorkmodutils.c
+++ b/drivers/staging/unisys/visorutil/visorkmodutils.c
@@ -20,93 +20,6 @@
 
 #define MYDRVNAME timskmodutils
 
-BOOL Debug_Malloc_Enabled = FALSE;
-
-/** Print the hexadecimal contents of a data buffer to a supplied print buffer.
- *  @param dest   the print buffer where text characters will
- *   be written
- *  @param destSize   the maximum number of bytes that can be written
- *   to #dest
- *  @param srcthe buffer that contains the data that is to be
- *   hex-dumped
- *  @param srcLen

Re: [PATCH 07/12] drm: drm_display_mode: add signal polarity flags

2014-03-17 Thread Laurent Pinchart
Hi Lothar,

On Monday 17 March 2014 16:14:36 Lothar Waßmann wrote:
 Laurent Pinchart wrote:
  On Monday 17 March 2014 14:41:09 Andrzej Hajda wrote:
   On 03/13/2014 06:17 PM, Denis Carikli wrote:
We need a way to pass signal polarity informations
between DRM panels, and the display drivers.

To do that, a pol_flags field was added to drm_display_mode.

Signed-off-by: Denis Carikli de...@eukrea.com
---
ChangeLog v10-v11:
- Since the imx-drm won't be able to retrive its regulators

  from the device tree when using display-timings nodes,
  and that I was told that the drm simple-panel driver
  already supported that, I then, instead, added what was
  lacking to make the eukrea displays work with the
  drm-simple-panel driver.
  
  That required a way to get back the display polarity
  informations from the imx-drm driver without affecting
  userspace.

---

 include/drm/drm_crtc.h |8 
 1 file changed, 8 insertions(+)

diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index f764654..61a4fe1 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -131,6 +131,13 @@ enum drm_mode_status {

 #define DRM_MODE_FLAG_3D_MAX   DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF

+#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGE  BIT(1)
+#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGE  BIT(2)
+#define DRM_MODE_FLAG_POL_PIXDATA_PRESERVE BIT(3)
+#define DRM_MODE_FLAG_POL_DE_NEGEDGE   BIT(4)
+#define DRM_MODE_FLAG_POL_DE_POSEDGE   BIT(5)
+#define DRM_MODE_FLAG_POL_DE_PRESERVE  BIT(6)
   
   Could you add some description to these flags.
   What are *_PRESERVE flags for?
   Are those flags 1:1 compatible with respective 'videomode:flags'?
   I guess DE flags should be rather DRM_MODE_FLAG_POL_DE_(LOW|HIGH), am I
   right?
  
  Possibly nitpicking, I wouldn't call the clock edge on which data signals
  are generated/sampled data polarity. This is clock polarity
  information.
  
  Have you seen cases where pixel data and DE are geenrated or need to be
  sampled on different edges ?
 
 DE is not a clock signal, but an 'Enable' signal whose value (high or
 low) defines the window in which the pixel data is valid.
 The flag defines whether data is valid during the HIGH or LOW period of
 DE.

The DRM_MODE_FLAG_POL_DE_(LOW|HIGH) do, by my impression of the proposed new 
DRM_MODE_FLAG_POL_DE_*EDGE flags is that they define sampling clock edges, not 
active levels.

-- 
Regards,

Laurent Pinchart

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


Re: [PATCH 07/12] drm: drm_display_mode: add signal polarity flags

2014-03-17 Thread Lothar Waßmann
Hi,

Laurent Pinchart wrote:
 Hello,
 
 On Monday 17 March 2014 14:41:09 Andrzej Hajda wrote:
  On 03/13/2014 06:17 PM, Denis Carikli wrote:
   We need a way to pass signal polarity informations
   between DRM panels, and the display drivers.
   
   To do that, a pol_flags field was added to drm_display_mode.
   
   Signed-off-by: Denis Carikli de...@eukrea.com
   ---
   ChangeLog v10-v11:
   - Since the imx-drm won't be able to retrive its regulators
   
 from the device tree when using display-timings nodes,
 and that I was told that the drm simple-panel driver
 already supported that, I then, instead, added what was
 lacking to make the eukrea displays work with the
 drm-simple-panel driver.
 
 That required a way to get back the display polarity
 informations from the imx-drm driver without affecting
 userspace.
   
   ---
   
include/drm/drm_crtc.h |8 
1 file changed, 8 insertions(+)
   
   diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
   index f764654..61a4fe1 100644
   --- a/include/drm/drm_crtc.h
   +++ b/include/drm/drm_crtc.h
   @@ -131,6 +131,13 @@ enum drm_mode_status {
   
#define DRM_MODE_FLAG_3D_MAX DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF
   
   +#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGEBIT(1)
   +#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGEBIT(2)
   +#define DRM_MODE_FLAG_POL_PIXDATA_PRESERVE   BIT(3)
   +#define DRM_MODE_FLAG_POL_DE_NEGEDGE BIT(4)
   +#define DRM_MODE_FLAG_POL_DE_POSEDGE BIT(5)
   +#define DRM_MODE_FLAG_POL_DE_PRESERVEBIT(6)
  
  Could you add some description to these flags.
  What are *_PRESERVE flags for?
  Are those flags 1:1 compatible with respective 'videomode:flags'?
  I guess DE flags should be rather DRM_MODE_FLAG_POL_DE_(LOW|HIGH), am I
  right?
 
 Possibly nitpicking, I wouldn't call the clock edge on which data signals are 
 generated/sampled data polarity. This is clock polarity information.
 
 Have you seen cases where pixel data and DE are geenrated or need to be 
 sampled on different edges ?
 
DE is not a clock signal, but an 'Enable' signal whose value (high or
low) defines the window in which the pixel data is valid.
The flag defines whether data is valid during the HIGH or LOW period of
DE.


Lothar Waßmann
-- 
___

Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996

www.karo-electronics.de | i...@karo-electronics.de
___
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 1/3] staging/ozwpan: formatting coding style

2014-03-17 Thread Rupesh Gujare

On 13/03/14 01:17, Jérôme Pinot wrote:

This fixes the following spacing issues detected by checkpatch.pl:

  WARNING: line over 80 characters
  #357: FILE: drivers/staging/ozwpan/ozhcd.c:357:
  +static struct oz_urb_link *oz_uncancel_urb(struct oz_hcd *ozhcd, struct urb 
*urb)

  ERROR: trailing whitespace
  #25: FILE: drivers/staging/ozwpan/ozpd.h:25:
  +/* $

Signed-off-by: Jerome Pinot ngc...@gmail.com
---
  drivers/staging/ozwpan/ozhcd.c | 3 ++-
  drivers/staging/ozwpan/ozpd.h  | 2 +-
  2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/ozwpan/ozhcd.c b/drivers/staging/ozwpan/ozhcd.c
index efaf26f..e7901aa 100644
--- a/drivers/staging/ozwpan/ozhcd.c
+++ b/drivers/staging/ozwpan/ozhcd.c
@@ -354,7 +354,8 @@ static struct oz_endpoint *oz_ep_alloc(int buffer_size, 
gfp_t mem_flags)
   * disabled.
   * Context: softirq or process
   */
-static struct oz_urb_link *oz_uncancel_urb(struct oz_hcd *ozhcd, struct urb 
*urb)
+static struct oz_urb_link *oz_uncancel_urb(struct oz_hcd *ozhcd,
+   struct urb *urb)
  {
struct oz_urb_link *urbl;
struct list_head *e;
diff --git a/drivers/staging/ozwpan/ozpd.h b/drivers/staging/ozwpan/ozpd.h
index 56e6fdf..ad5fe7a 100644
--- a/drivers/staging/ozwpan/ozpd.h
+++ b/drivers/staging/ozwpan/ozpd.h
@@ -22,7 +22,7 @@
  #define OZ_TIMER_HEARTBEAT2
  #define OZ_TIMER_STOP 3
  
-/*

+/*
   *External spinlock variable
   */
  extern spinlock_t g_polling_lock;


Acked-by: Rupesh Gujare rupesh.guj...@atmel.com

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


Re: [PATCH 2/3] staging/ozwpan: coding style __constant_

2014-03-17 Thread Rupesh Gujare

On 13/03/14 01:20, Jérôme Pinot wrote:

This fixes the following issues detected by checkpatch.pl:

  WARNING: __constant_cpu_to_le16 should be cpu_to_le16
  #1991: FILE: drivers/staging/ozwpan/ozhcd.c:1991:
  +  __constant_cpu_to_le16(0x0001);

  WARNING: __constant_cpu_to_le32 should be cpu_to_le32
  #2185: FILE: drivers/staging/ozwpan/ozhcd.c:2185:
  +  put_unaligned(__constant_cpu_to_le32(0), (__le32 *)buf);

  WARNING: __constant_htons should be htons
  #675: FILE: drivers/staging/ozwpan/ozproto.c:675:
  +  binding-ptype.type = __constant_htons(OZ_ETHERTYPE);

Signed-off-by: Jerome Pinot ngc...@gmail.com
---
  drivers/staging/ozwpan/ozhcd.c   | 5 ++---
  drivers/staging/ozwpan/ozproto.c | 2 +-
  2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/ozwpan/ozhcd.c b/drivers/staging/ozwpan/ozhcd.c
index e7901aa..b3d401a 100644
--- a/drivers/staging/ozwpan/ozhcd.c
+++ b/drivers/staging/ozwpan/ozhcd.c
@@ -1987,8 +1987,7 @@ static void oz_get_hub_descriptor(struct usb_hcd *hcd,
memset(desc, 0, sizeof(*desc));
desc-bDescriptorType = 0x29;
desc-bDescLength = 9;
-   desc-wHubCharacteristics = (__force __u16)
-   __constant_cpu_to_le16(0x0001);
+   desc-wHubCharacteristics = (__force __u16)cpu_to_le16(0x0001);
desc-bNbrPorts = OZ_NB_PORTS;
  }
  
@@ -2182,7 +2181,7 @@ static int oz_hcd_hub_control(struct usb_hcd *hcd, u16 req_type, u16 wvalue,

break;
case GetHubStatus:
oz_dbg(HUB, GetHubStatus: req_type = 0x%x\n, req_type);
-   put_unaligned(__constant_cpu_to_le32(0), (__le32 *)buf);
+   put_unaligned(cpu_to_le32(0), (__le32 *)buf);
break;
case GetPortStatus:
err = oz_get_port_status(hcd, windex, buf);
diff --git a/drivers/staging/ozwpan/ozproto.c b/drivers/staging/ozwpan/ozproto.c
index c1325a6..f09acd0 100644
--- a/drivers/staging/ozwpan/ozproto.c
+++ b/drivers/staging/ozwpan/ozproto.c
@@ -672,7 +672,7 @@ void oz_binding_add(const char *net_dev)
if (!binding)
return;
  
-	binding-ptype.type = __constant_htons(OZ_ETHERTYPE);

+   binding-ptype.type = htons(OZ_ETHERTYPE);
binding-ptype.func = oz_pkt_recv;
if (net_dev  *net_dev) {
memcpy(binding-name, net_dev, OZ_MAX_BINDING_LEN);


Acked-by: Rupesh Gujare rupesh.guj...@atmel.com

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


Re: [PATCH 3/3] staging/ozwpan: coding style ether_addr_copy

2014-03-17 Thread Rupesh Gujare

On 13/03/14 01:21, Jérôme Pinot wrote:

This fixes the following issues detected by checkpatch.pl:

  WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are 
__aligned(2)
  #220: FILE: drivers/staging/ozwpan/ozcdev.c:220:
  +  memcpy(g_cdev.active_addr, addr, ETH_ALEN);

  WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are 
__aligned(2)
  #286: FILE: drivers/staging/ozwpan/ozcdev.c:286:
  +  memcpy(addr, g_cdev.active_addr, ETH_ALEN);

  WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are 
__aligned(2)
  #176: FILE: drivers/staging/ozwpan/ozpd.c:176:
  +  memcpy(pd-mac_addr, mac_addr, ETH_ALEN);

  WARNING: Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are 
__aligned(2)
  #795: FILE: drivers/staging/ozwpan/ozproto.c:795:
  +  memcpy(addr[count++], pd-mac_addr, ETH_ALEN);

Signed-off-by: Jerome Pinot ngc...@gmail.com
---
  drivers/staging/ozwpan/ozcdev.c  | 4 ++--
  drivers/staging/ozwpan/ozpd.c| 2 +-
  drivers/staging/ozwpan/ozproto.c | 2 +-
  3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/ozwpan/ozcdev.c b/drivers/staging/ozwpan/ozcdev.c
index 5de5981..10c0a96 100644
--- a/drivers/staging/ozwpan/ozcdev.c
+++ b/drivers/staging/ozwpan/ozcdev.c
@@ -217,7 +217,7 @@ static int oz_set_active_pd(const u8 *addr)
pd = oz_pd_find(addr);
if (pd) {
spin_lock_bh(g_cdev.lock);
-   memcpy(g_cdev.active_addr, addr, ETH_ALEN);
+   ether_addr_copy(g_cdev.active_addr, addr);
old_pd = g_cdev.active_pd;
g_cdev.active_pd = pd;
spin_unlock_bh(g_cdev.lock);
@@ -283,7 +283,7 @@ static long oz_cdev_ioctl(struct file *filp, unsigned int 
cmd,
u8 addr[ETH_ALEN];
oz_dbg(ON, OZ_IOCTL_GET_ACTIVE_PD\n);
spin_lock_bh(g_cdev.lock);
-   memcpy(addr, g_cdev.active_addr, ETH_ALEN);
+   ether_addr_copy(addr, g_cdev.active_addr);
spin_unlock_bh(g_cdev.lock);
if (copy_to_user((void __user *)arg, addr, ETH_ALEN))
return -EFAULT;
diff --git a/drivers/staging/ozwpan/ozpd.c b/drivers/staging/ozwpan/ozpd.c
index 29a23a3..4740238 100644
--- a/drivers/staging/ozwpan/ozpd.c
+++ b/drivers/staging/ozwpan/ozpd.c
@@ -173,7 +173,7 @@ struct oz_pd *oz_pd_alloc(const u8 *mac_addr)
pd-last_rx_pkt_num = 0x;
oz_pd_set_state(pd, OZ_PD_S_IDLE);
pd-max_tx_size = OZ_MAX_TX_SIZE;
-   memcpy(pd-mac_addr, mac_addr, ETH_ALEN);
+   ether_addr_copy(pd-mac_addr, mac_addr);
if (0 != oz_elt_buf_init(pd-elt_buff)) {
kfree(pd);
pd = NULL;
diff --git a/drivers/staging/ozwpan/ozproto.c b/drivers/staging/ozwpan/ozproto.c
index f09acd0..a7e953d 100644
--- a/drivers/staging/ozwpan/ozproto.c
+++ b/drivers/staging/ozwpan/ozproto.c
@@ -792,7 +792,7 @@ int oz_get_pd_list(struct oz_mac_addr *addr, int max_count)
if (count = max_count)
break;
pd = container_of(e, struct oz_pd, link);
-   memcpy(addr[count++], pd-mac_addr, ETH_ALEN);
+   ether_addr_copy(addr[count++], pd-mac_addr);
}
spin_unlock_bh(g_polling_lock);
return count;



Acked-by: Rupesh Gujare rupesh.guj...@atmel.com

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


[PATCH] Staging: bcm: CmHost: moved and removed declarations

2014-03-17 Thread Gary Rookard
Firstly, some background is needed to confirm the validity of
this patch as error fixing. It seems the developer when writing
this driver from scratch, used what are known to me as error 
suppressors in the form of extra tmp bracing added to the case labels.
They aid during construction time, but are not intended to remain.

In this scenario there are declarations occupying space only
reserved for statements. If these tmp braces were to be removed
before the declarations in question were reassigned to there
proper place in the funtion, compile time errors would result.

So, having that said, I moved the declarations,
UINT uiSearchRuleIndex = 0; and ULONG ulSFID;,
and also deleted the duplicates thereof from 
the switch/case statement.

Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index cc91b5e..2d1f94d 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1637,7 +1637,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
struct bcm_add_indication_alt *pstAddIndication = NULL;
struct bcm_change_indication *pstChangeIndication = NULL;
struct bcm_leader *pLeader = NULL;
-
+   UINT uiSearchRuleIndex = 0;
+   ULONG ulSFID;
/*
 * Otherwise the message contains a target address from where we need to
 * read out the rest of the service flow param structure
@@ -1685,7 +1686,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
} /* no break here..we should go down. */
case DSA_ACK:
{
-   UINT uiSearchRuleIndex = 0;
 
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, VCID:0x%X,
ntohs(pstAddIndication-u16VCID));
@@ -1794,7 +1794,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
}
case DSC_ACK:
{
-   UINT uiSearchRuleIndex = 0;
 
pstChangeIndication = (struct bcm_change_indication 
*)pstAddIndication;
uiSearchRuleIndex = SearchSfid(Adapter, 
ntohl(pstChangeIndication-sfActiveSet.u32SFID));
@@ -1853,8 +1852,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
break;
case DSD_REQ:
{
-   UINT uiSearchRuleIndex;
-   ULONG ulSFID;
 
pLeader-PLength = sizeof(struct bcm_del_indication);
*((struct bcm_del_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE])) = *((struct bcm_del_indication 
*)pstAddIndication);
-- 
1.9.0

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


Re: [PATCH] Staging: bcm: CmHost: added breaks and /* FALLTHROUGH */ to switch/case.

2014-03-17 Thread Greg KH
On Sun, Mar 16, 2014 at 03:31:18PM -0400, Gary Rookard wrote:
 I added a couple of breaks, and a /* FALLTHROUGH */ comment to switch/case
 assuming that is the actual desired effect needed by the case label.
 
 Signed-off-by: Gary Alan Rookard garyrook...@gmail.com
 
 ---
 On branch staging-next
  drivers/staging/bcm/CmHost.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
 index 4cb59d7..9252ef1 100644
 --- a/drivers/staging/bcm/CmHost.c
 +++ b/drivers/staging/bcm/CmHost.c
 @@ -1678,8 +1678,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   *((struct bcm_add_indication_alt 
 *)(Adapter-caDsxReqResp[LEADER_SIZE]))
   = *pstAddIndication;
   ((struct bcm_add_indication_alt 
 *)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSA_ACK;
 -
 - } /* no break here..we should go down. */
 + }   /* FALLTHROUGH */
   case DSA_ACK:
   {
  
 @@ -1787,6 +1786,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, SENDING DSC ACK TO MAC %d, pLeader-PLength);
   *((struct bcm_change_indication 
 *)(Adapter-caDsxReqResp[LEADER_SIZE])) = *pstChangeIndication;
   ((struct bcm_change_indication 
 *)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSC_ACK;
 + break;
   }
   case DSC_ACK:
   {
 @@ -1865,6 +1865,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, SENDING DSD RESPONSE TO MAC);
   ((struct bcm_del_indication 
 *)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSD_RSP;
   CopyBufferToControlPacket(Adapter, 
 (PVOID)Adapter-caDsxReqResp);
 + break;

Are you _sure_ these two changes are ok?  Do you have a device to test?
If not, I can't really take this patch as it does change the logic
involved here :(

thanks,

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


Re: [PATCH] Staging: bcm:CmHost: removed extra parenthesis.

2014-03-17 Thread Greg KH
On Sun, Mar 16, 2014 at 03:59:53PM -0400, Gary Rookard wrote:
 I removed some useless extra parenthesis.
 
 Signed-off-by: Gary Alan Rookard garyrook...@gmail.com
 
 ---
 On branch staging-next
  drivers/staging/bcm/CmHost.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
 index 9252ef1..41cb3de 100644
 --- a/drivers/staging/bcm/CmHost.c
 +++ b/drivers/staging/bcm/CmHost.c
 @@ -1689,7 +1689,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   uiSearchRuleIndex);
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, Direction:0x%X ,
   pstAddIndication-u8Direction);
 - if ((uiSearchRuleIndex  NO_OF_QUEUES)) {
 + if (uiSearchRuleIndex  NO_OF_QUEUES) {
   Adapter-PackInfo[uiSearchRuleIndex].ucDirection =
   pstAddIndication-u8Direction;
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, bValid:0x%X ,
 @@ -1796,7 +1796,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   if (uiSearchRuleIndex  NO_OF_QUEUES-1)
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, SF 
 doesn't exist for which DSC_ACK is received);
  
 - if ((uiSearchRuleIndex  NO_OF_QUEUES)) {
 + if (uiSearchRuleIndex  NO_OF_QUEUES) {
   Adapter-PackInfo[uiSearchRuleIndex].ucDirection = 
 pstChangeIndication-u8Direction;
   if (pstChangeIndication-sfActiveSet.bValid == TRUE)
   Adapter-PackInfo[uiSearchRuleIndex].bActiveSet 
 = TRUE;

This change was done by someone else before you, sorry :(

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


Re: [PATCH] Staging: bcm: CmHost: added breaks and /* FALLTHROUGH */ to switch/case.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Greg KH wrote:


On Sun, Mar 16, 2014 at 03:31:18PM -0400, Gary Rookard wrote:

I added a couple of breaks, and a /* FALLTHROUGH */ comment to switch/case
assuming that is the actual desired effect needed by the case label.

Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index 4cb59d7..9252ef1 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1678,8 +1678,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
*((struct bcm_add_indication_alt 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))
= *pstAddIndication;
((struct bcm_add_indication_alt 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSA_ACK;
-
-   } /* no break here..we should go down. */
+   }   /* FALLTHROUGH */
case DSA_ACK:
{

@@ -1787,6 +1786,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
SENDING DSC ACK TO MAC %d, pLeader-PLength);
*((struct bcm_change_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE])) = *pstChangeIndication;
((struct bcm_change_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSC_ACK;
+   break;
}
case DSC_ACK:
{
@@ -1865,6 +1865,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
SENDING DSD RESPONSE TO MAC);
((struct bcm_del_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSD_RSP;
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
+   break;


Are you _sure_ these two changes are ok?  Do you have a device to test?
If not, I can't really take this patch as it does change the logic
involved here :(

thanks,

greg k-h


--
No device, based on assumption, and code study. Possible logic
change maybe but not likely. Your decision either way is fine
with me.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Staging: bcm: CmHost: moved and removed declarations in switch/case.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Greg KH wrote:


On Sun, Mar 16, 2014 at 01:09:49AM -0400, Gary Rookard wrote:

I moved the declarations UINT uiSearchRuleIndex = 0; and ULONG ulSFID;
from out of a switch/case statement. And also, removed useless duplicate
UINT uiSearchRuleIndex = 0; and a variant UINT uiSearchRuleIndex;.

Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index cc91b5e..2d1f94d 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1637,7 +1637,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
struct bcm_add_indication_alt *pstAddIndication = NULL;
struct bcm_change_indication *pstChangeIndication = NULL;
struct bcm_leader *pLeader = NULL;
-
+   UINT uiSearchRuleIndex = 0;
+   ULONG ulSFID;
/*


No newline before the comment?


 * Otherwise the message contains a target address from where we need to
 * read out the rest of the service flow param structure
@@ -1685,7 +1686,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
} /* no break here..we should go down. */
case DSA_ACK:
{
-   UINT uiSearchRuleIndex = 0;



You could now drop the { } and the newline, right?


Yes, redoing it now to include. Should be there shortly.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive Side Scaling (vRSS)

2014-03-17 Thread David Miller
From: Haiyang Zhang haiya...@microsoft.com
Date: Sat, 15 Mar 2014 10:18:07 -0700

 - if (netif_queue_stopped(ndev)  !net_device-start_remove 
 - (hv_ringbuf_avail_percent(device-channel-outbound)
 -  RING_AVAIL_PERCENT_HIWATER ||
 - num_outstanding_sends  1))
 - netif_wake_queue(ndev);
 + if (netif_tx_queue_stopped(netdev_get_tx_queue(ndev, q_idx))
 +  !net_device-start_remove 
 + (hv_ringbuf_avail_percent(channel-outbound)
 +  RING_AVAIL_PERCENT_HIWATER || queue_sends  1))
 + netif_tx_wake_queue(netdev_get_tx_queue(
 + ndev, q_idx));

This is not indented properly, make it:

if (A  B 
(C 
 D || E  1))

Never put operators at the beginning of a conditional line, always at
the end.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive Side Scaling (vRSS)

2014-03-17 Thread Ben Hutchings
On Sat, 2014-03-15 at 10:18 -0700, Haiyang Zhang wrote:
[...]
  #define RING_SIZE_MIN 64
 -static int ring_size = 128;
 +int ring_size = 128;
  module_param(ring_size, int, S_IRUGO);
  MODULE_PARM_DESC(ring_size, Ring buffer size (# of pages));

You have to add some driver-specific prefix to the variable name if it
is going to be extern.  (And use module_param_named to avoid changing
the parameter name too.)

[...] 
 +u8 hash_key[HASH_KEYLEN] = {
 + 0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
 + 0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
 + 0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
 + 0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
 + 0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa
 +};
[...]

Same for this one.

Ben.

-- 
Ben Hutchings
I'm always amazed by the number of people who take up solipsism because
they heard someone else explain it. - E*Borg on alt.fan.pratchett


signature.asc
Description: This is a digitally signed message part
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


RE: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive Side Scaling (vRSS)

2014-03-17 Thread Haiyang Zhang


 -Original Message-
 From: David Miller [mailto:da...@davemloft.net]
 Sent: Monday, March 17, 2014 4:20 PM
 To: Haiyang Zhang
 Cc: net...@vger.kernel.org; KY Srinivasan; o...@aepfle.de;
 jasow...@redhat.com; linux-ker...@vger.kernel.org; driverdev-
 de...@linuxdriverproject.org
 Subject: Re: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive
 Side Scaling (vRSS)
 
 From: Haiyang Zhang haiya...@microsoft.com
 Date: Sat, 15 Mar 2014 10:18:07 -0700
 
  -   if (netif_queue_stopped(ndev)  !net_device-start_remove
 
  -   (hv_ringbuf_avail_percent(device-channel-
 outbound)
  -RING_AVAIL_PERCENT_HIWATER ||
  -   num_outstanding_sends  1))
  -   netif_wake_queue(ndev);
  +   if (netif_tx_queue_stopped(netdev_get_tx_queue(ndev, q_idx))
  +!net_device-start_remove 
  +   (hv_ringbuf_avail_percent(channel-outbound)
  +RING_AVAIL_PERCENT_HIWATER || queue_sends 
 1))
  +   netif_tx_wake_queue(netdev_get_tx_queue(
  +   ndev, q_idx));
 
 This is not indented properly, make it:
 
   if (A  B 
   (C 
  D || E  1))
 
 Never put operators at the beginning of a conditional line, always at the end.

I will do. 

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


RE: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive Side Scaling (vRSS)

2014-03-17 Thread Haiyang Zhang


 -Original Message-
 From: Ben Hutchings [mailto:b...@decadent.org.uk]
 Sent: Monday, March 17, 2014 4:28 PM
 To: Haiyang Zhang
 Cc: da...@davemloft.net; net...@vger.kernel.org; KY Srinivasan;
 o...@aepfle.de; jasow...@redhat.com; linux-ker...@vger.kernel.org;
 driverdev-devel@linuxdriverproject.org
 Subject: Re: [PATCH net-next,v2,1/1] hyperv: Add support for virtual Receive
 Side Scaling (vRSS)
 
 On Sat, 2014-03-15 at 10:18 -0700, Haiyang Zhang wrote:
 [...]
   #define RING_SIZE_MIN 64
  -static int ring_size = 128;
  +int ring_size = 128;
   module_param(ring_size, int, S_IRUGO);  MODULE_PARM_DESC(ring_size,
  Ring buffer size (# of pages));
 
 You have to add some driver-specific prefix to the variable name if it is 
 going to
 be extern.  (And use module_param_named to avoid changing the parameter
 name too.)
 
 [...]
  +u8 hash_key[HASH_KEYLEN] = {
  +   0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
  +   0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
  +   0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
  +   0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
  +   0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa };
 [...]
 
 Same for this one.
 
I will do.

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


Re: [PATCH 1/2] Staging: comedi: Fix if/else style in hwdrv_apci1500.c

2014-03-17 Thread Greg Kroah-Hartman
On Sun, Mar 09, 2014 at 09:24:40AM -0700, Conrad Meyer wrote:
 Also kill some useless comments while I was there, e.g.:
   if (foo) {
 ...
   }  /* if (foo) */
 
 With vim:
   :%s/}\t\t*\/\*\s\s*\(if\|else\|for\|while\|switch\).*$/}/

Neither of these patches apply to my tree, can you redo them and resend?

thanks,

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


Re: [PATCH] Staging: bcm:CmHost: removed extra parenthesis.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Greg KH wrote:


On Sun, Mar 16, 2014 at 03:59:53PM -0400, Gary Rookard wrote:

I removed some useless extra parenthesis.

Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index 9252ef1..41cb3de 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1689,7 +1689,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
uiSearchRuleIndex);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
Direction:0x%X ,
pstAddIndication-u8Direction);
-   if ((uiSearchRuleIndex  NO_OF_QUEUES)) {
+   if (uiSearchRuleIndex  NO_OF_QUEUES) {
Adapter-PackInfo[uiSearchRuleIndex].ucDirection =
pstAddIndication-u8Direction;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
bValid:0x%X ,
@@ -1796,7 +1796,7 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
if (uiSearchRuleIndex  NO_OF_QUEUES-1)
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, SF doesn't 
exist for which DSC_ACK is received);

-   if ((uiSearchRuleIndex  NO_OF_QUEUES)) {
+   if (uiSearchRuleIndex  NO_OF_QUEUES) {
Adapter-PackInfo[uiSearchRuleIndex].ucDirection = 
pstChangeIndication-u8Direction;
if (pstChangeIndication-sfActiveSet.bValid == TRUE)
Adapter-PackInfo[uiSearchRuleIndex].bActiveSet 
= TRUE;


This change was done by someone else before you, sorry :(



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


Re: [PATCH 2/2] staging: comedi: poc: remove obsolete driver

2014-03-17 Thread Greg KH
On Tue, Mar 11, 2014 at 12:04:18PM -0700, H Hartley Sweeten wrote:
 From: H Hartley Sweeten hartl...@visionengravers.com
 
 The DAC02 board, which is the only board supported by this driver, now
 has its own comedi driver (dac02).
 
 Remove this obsolete driver.
 
 Signed-off-by: H Hartley Sweeten hswee...@visionengravers.com
 Reviewed-by: Ian Abbott abbo...@mev.co.uk
 ---
  drivers/staging/comedi/Kconfig  |   9 --
  drivers/staging/comedi/drivers/Makefile |   1 -
  drivers/staging/comedi/drivers/poc.c| 157 
 
  3 files changed, 167 deletions(-)
  delete mode 100644 drivers/staging/comedi/drivers/poc.c

This patch fails to apply to my tree, can you refresh it and resend?

thanks,

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


Re: [PATCH 1/2] staging: cxtie1: remove unneeded mkret() calls

2014-03-17 Thread Greg KH
On Mon, Mar 10, 2014 at 08:54:18AM +0900, Daeseok Youn wrote:
 
 The mkret() change a value of error from positive to
 negative. This patch is modified to return negative value
 when it failed. It doesn't need to call with function
 for changing from positive to negative.
 
 Signed-off-by: Daeseok Youn daeseok.y...@gmail.com
 ---
  drivers/staging/cxt1e1/linux.c |   72 +--
  drivers/staging/cxt1e1/musycc.c|2 +-
  drivers/staging/cxt1e1/pmcc4_drv.c |   40 ++--
  3 files changed, 48 insertions(+), 66 deletions(-)

This patch no longer applies to my tree, can you refresh it and resend?
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 3/3] Staging: lustre: fld: moved EXPORT_SYMBOL() for a fix.

2014-03-17 Thread Greg KH
On Thu, Mar 13, 2014 at 08:58:09PM -0400, Gary Rookard wrote:
 I moved EXPORT_SYMBOL(fld_client_proc_fini); for a EXPORT_SYMBOL
 should be immediately below its function warning fix.
 
 Signed-off-by: Gary Alan Rookard garyrook...@gmail.com
 
 ---
 Correct patch, first two breaks build.

Patch 3/3?  Where are the previous 2?

And if I didn't apply the first 2, why would I need this one?

Please resend whatever patch you wish to have applied, I've flushed all
of your pending ones from my queue.

totally confused,

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


Re: [PATCH] staging: dgap: Fixed sparse error: same symbol redeclared with different type

2014-03-17 Thread Greg KH
On Sun, Mar 09, 2014 at 12:57:35AM -0800, Masood Mehmood wrote:
 sparse reported dgap_do_fep_load is redeclared with different type. while
 fixing, I noticed __user attribute is used incorrectly in declaration.
 There is no need to define __user for firware-data.
 
 Replaced the __user with 'const uchar *' from function dgap_do_fep_load and
 did the same for function dgap_do_bios_load.
 
 Signed-off-by: Masood Mehmood ody.g...@gmail.com
 ---
  drivers/staging/dgap/dgap.c | 13 ++---
  1 file changed, 6 insertions(+), 7 deletions(-)

This patch does not apply to my tree, can you redo it?

thanks,

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


Re: [PATCH 04/04] staging: dgap: Add a pr_info per board info

2014-03-17 Thread Greg Kroah-Hartman
On Wed, Mar 12, 2014 at 12:50:56PM -0400, Mark Hounschell wrote:
 This patch adds a pr_info per board that indicates
 board number, type, etc..
 
 Signed-off-by: Mark Hounschell ma...@compro.net
 ---
  drivers/staging/dgap/dgap.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c
 index ddeff5f..77d6428 100644
 --- a/drivers/staging/dgap/dgap.c
 +++ b/drivers/staging/dgap/dgap.c
 @@ -820,6 +820,10 @@ static int dgap_found_board(struct pci_dev *pdev, int id)
   if (i)
   brd-state = BOARD_FAILED;
  
 + pr_info(dgap: board %d: %s (rev %d), irq %ld, %s\n,
 + dgap_NumBoards, brd-name, brd-rev, brd-irq,
 + brd-state ? NOT READY\0 : READY\0);
 +

This is ok for now, but eventually the driver should not make any noise
when a device is found and attached to it, otherwise it's just a mess in
the kernel log.

thanks,

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


Re: [PATCH] staging: dgap: Fixed sparse error: same symbol redeclared with different type

2014-03-17 Thread Greg KH
On Wed, Mar 12, 2014 at 08:55:44PM -0700, Masood Mehmood wrote:
 sparse reported dgap_do_fep_load is redeclared with different type. while
 fixing, I noticed __user attribute is used incorrectly in declaration.
 There is no need to define __user for firware-data.
 
 Replaced the __user with 'const uchar *' from function dgap_do_fep_load and
 did the same for function dgap_do_bios_load.
 
 Signed-off-by: Masood Mehmood ody.g...@gmail.com
 ---
  drivers/staging/dgap/dgap.c | 13 ++---
  1 file changed, 6 insertions(+), 7 deletions(-)

This patch does not apply :(
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] [staging][r8188eu]: memory leak in rtw_free_cmd_obj if command is (_Set_Drv_Extra)

2014-03-17 Thread Greg KH
On Mon, Mar 10, 2014 at 11:37:44AM -0400, Wang, Xiaoming wrote:
 pcmd-parmbuf-pbuf has been allocated if command is 
 GEN_CMD_CODE(_Set_Drv_Extra),
 and it enqueued by rtw_enqueue_cmd. rtw_cmd_thread dequeue pcmd by 
 rtw_dequeue_cmd.
 The memory leak happened on this branch if( _FAIL == 
 rtw_cmd_filter(pcmdpriv, pcmd) )
 which goto post_process directly against freeing pcmd-parmbuf-pbuf in
 rtw_drvextra_cmd_hdl which is the cmd_hdl if command is (_Set_Drv_Extra).
 This patch free pcmd-parmbuf-pbuf on the forgotten branch to avoid memory 
 leak.
 
 Signed-off-by: Zhang Dongxing dongxing.zh...@intel.com
 Signed-off-by: xiaoming wang xiaoming.w...@intel.com
 Reviewed-by: Chuansheng Liu chuansheng@intel.com
 
 diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c 
 b/drivers/staging/rtl8188eu/core/rtw_cmd.c
 index c0a0a52..1c7f505 100644
 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
 +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
 @@ -288,7 +288,7 @@ int rtw_cmd_thread(void *context)
 void (*pcmd_callback)(struct adapter *dev, struct cmd_obj *pcmd);
 struct adapter *padapter = (struct adapter *)context;
 struct cmd_priv *pcmdpriv = (padapter-cmdpriv);
 -
 +   struct drvextra_cmd_parm *extra_parm = NULL;
 
 thread_enter(RTW_CMD_THREAD);
 
 @@ -323,6 +323,11 @@ _next:
 
 if (_FAIL == rtw_cmd_filter(pcmdpriv, pcmd)) {
 pcmd-res = H2C_DROPPED;
 +   if (pcmd-cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) {
 +   extra_parm = (struct drvextra_cmd_parm 
 *)pcmd-parmbuf;
 +   if (extra_parm  extra_parm-pbuf  
 extra_parm-size  0)
 +   rtw_mfree(extra_parm-pbuf, 
 extra_parm-size);
 +   }
 goto post_process;
 }
 

This patch has all the tabs converted to spaces and can not be applied
:(

Please fix your email client and try again.

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


Re: [PATCH] staging: unisys: use kzalloc instead of kmalloc/memset 0

2014-03-17 Thread Greg KH
On Wed, Mar 12, 2014 at 07:37:50PM +0900, Daeseok Youn wrote:
 
 Signed-off-by: Daeseok Youn daeseok.y...@gmail.com
 ---
  drivers/staging/unisys/uislib/uislib.c   |5 +
  drivers/staging/unisys/uislib/uisutils.c |2 +-
  2 files changed, 2 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/staging/unisys/uislib/uislib.c 
 b/drivers/staging/unisys/uislib/uislib.c
 index d77df9a..9748fcb 100644
 --- a/drivers/staging/unisys/uislib/uislib.c
 +++ b/drivers/staging/unisys/uislib/uislib.c
 @@ -339,8 +339,6 @@ create_bus(CONTROLVM_MESSAGE *msg, char *buf)
   return CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
   }
  
 - memset(bus, 0, size);
 -
   /* Currently by default, the bus Number is the GuestHandle.
* Configure Bus message can override this.
*/
 @@ -530,7 +528,6 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
   return CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
   }
  
 - memset(dev, 0, sizeof(struct device_info));
   dev-channelTypeGuid = msg-cmd.createDevice.dataTypeGuid;
   dev-intr = msg-cmd.createDevice.intr;
   dev-channelAddr = msg-cmd.createDevice.channelAddr;
 @@ -1437,7 +1434,7 @@ uislib_malloc(size_t siz, gfp_t gfp, U8 contiguous, 
 char *fn, int ln)
   * get memory for you (like, invoke oom killer), which
   * will probably cripple the system.
   */
 - p = kmalloc(siz, gfp | __GFP_NORETRY);
 + p = kzalloc(siz, gfp | __GFP_NORETRY);
   }
   if (p == NULL) {
   LOGERR(uislib_malloc failed to alloc %d bytes @%s:%d,
 diff --git a/drivers/staging/unisys/uislib/uisutils.c 
 b/drivers/staging/unisys/uislib/uisutils.c
 index 208b7ea..2f05be1 100644
 --- a/drivers/staging/unisys/uislib/uisutils.c
 +++ b/drivers/staging/unisys/uislib/uisutils.c
 @@ -294,7 +294,7 @@ ReqHandlerAdd(GUID switchTypeGuid,
   rc = UISMALLOC(sizeof(*rc), GFP_ATOMIC);
   if (!rc)
   return NULL;
 - memset(rc, 0, sizeof(*rc));
 +
   rc-switchTypeGuid = switchTypeGuid;
   rc-controlfunc = controlfunc;
   rc-min_channel_bytes = min_channel_bytes;

Can you just remove the UISMALLOC() macro completly, so that it's easier
to verify that changes like this are actually correct?

thanks,

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


Re: [PATCH 1/6] Staging: unisys: channels: Cleanup sparse warnings

2014-03-17 Thread Mark Einon

Clean up multiple sparse warnings mostly due to different address spaces
when accessing I/O memory.

Also, remove SignalRemoveAll(), SignalQueueHasOneElement(),
SignalQueueIsFull(), because they were never called.

Signed-off-by: Ken Cox jkc at redhat.com


snip


diff --git a/drivers/staging/unisys/include/commontypes.h 
b/drivers/staging/unisys/include/commontypes.h
index ae46bed..ef12af4 100644
--- a/drivers/staging/unisys/include/commontypes.h
+++ b/drivers/staging/unisys/include/commontypes.h
@@ -23,6 +23,7 @@
 #ifdef __KERNEL__
 #include linux/types.h
 #include linux/version.h
+#include linux/io.h
 #else
 #include stdint.h
 #include syslog.h
@@ -72,6 +73,7 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;

 #define MEMSET(ptr, val, len) memset(ptr, val, len)
 #define MEMCMP(m1, m2, len) memcmp(m1, m2, len)
+#define MEMCMP_IO(m1, m2, len) memcmp((void __force *)m1, m2, len)
 #define STRLEN(s) ((UINTN)strlen((const char *)s))
 #define STRCPY(d, s) (strcpy((char *)d, (const char *)s))

@@ -81,6 +83,8 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
 #ifdef __KERNEL__
 #define MEMORYBARRIER mb()
 #define MEMCPY(dest, src, len) memcpy(dest, src, len)
+#define MEMCPY_TOIO(dest, src, len) memcpy_toio(dest, src, len)
+#define MEMCPY_FROMIO(dest, src, len) memcpy_fromio(dest, src, len)


We know we're in the kernel, so there's no need for this #ifdef - also 
why not get rid of the define altogether, and use the memcpy_toio() 
function call direct? ...similarly for the other defines here.


Cheers,

Mark



 #define CHANNEL_GUID_MISMATCH(chType, chName, field, expected, actual, fil, \
  lin, logCtx)  \
--


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


Re: [RFC PATCH 03/22] staging: crypto: skein: allow building statically

2014-03-17 Thread Greg KH
On Tue, Mar 11, 2014 at 09:32:35PM +, Jason Cooper wrote:
 These are the minimum changes required to get the code to build
 statically in the kernel.  It's necessary to do this first so that we
 can empirically determine that future cleanup patches aren't changing
 the generated object code.
 
 Signed-off-by: Jason Cooper ja...@lakedaemon.net

This doesn't apply to my latest tree :(

 --- a/drivers/staging/Makefile
 +++ b/drivers/staging/Makefile
 @@ -65,3 +65,4 @@ obj-$(CONFIG_XILLYBUS)  += xillybus/
  obj-$(CONFIG_DGNC)   += dgnc/
  obj-$(CONFIG_DGAP)   += dgap/
  obj-$(CONFIG_MTD_SPINAND_MT29F)  += mt29f_spinand/
 +obj-$(CONFIG_CRYPTO_SKEIN) += skein/

Care to align these up with the way this file is formatted?

And I have no objection to taking the drivers/staging/ patches, the
script looks useful, but I can't take it through the staging tree,
sorry.

thanks,

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


Re: [PATCH 3/3] Staging: lustre: fld: moved EXPORT_SYMBOL() for a fix.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Greg KH wrote:


On Thu, Mar 13, 2014 at 08:58:09PM -0400, Gary Rookard wrote:

I moved EXPORT_SYMBOL(fld_client_proc_fini); for a EXPORT_SYMBOL
should be immediately below its function warning fix.

Signed-off-by: Gary Alan Rookard garyrook...@gmail.com

---
Correct patch, first two breaks build.


Patch 3/3?  Where are the previous 2?

And if I didn't apply the first 2, why would I need this one?

Please resend whatever patch you wish to have applied, I've flushed all
of your pending ones from my queue.

totally confused,

greg k-h


--
The problem stems from me doing my normal work alongside what
I'm trying to do here, sorry.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: bcm: CmHost: moved and removed declarations and tmp bracing.

2014-03-17 Thread Gary Rookard
Firstly, some background is needed to confirm the validity of
this patch as error fixing. It seems the developer when writing
this driver from scratch, used what are known to me as error 
suppressors in the form of extra tmp bracing added to the case labels.
They aid during construction time, but are not intended to remain.

In this scenario there are declarations occupying space only
reserved for statements. If these tmp braces were to be removed
before the declarations in question were reassigned to there
proper place in the funtion, compile time errors would result.

So, having that said, I moved the declarations,
UINT uiSearchRuleIndex = 0; and ULONG ulSFID;,
and also deleted the duplicates thereof from 
the switch/case statement.

Removed temporary bracing from case labels.

Removed new lines as needed.

Signed-off-by: Gary Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 27 +++
 1 file changed, 3 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index cc82588..b3002d7 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1635,7 +1635,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
struct bcm_add_indication_alt *pstAddIndication = NULL;
struct bcm_change_indication *pstChangeIndication = NULL;
struct bcm_leader *pLeader = NULL;
-
+   UINT uiSearchRuleIndex = 0;
+   ULONG ulSFID;
/*
 * Otherwise the message contains a target address from where we need to
 * read out the rest of the service flow param structure
@@ -1658,7 +1659,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, ### TID RECEIVED 
%d\n, pstAddIndication-u16TID);
switch (pstAddIndication-u8Type) {
case DSA_REQ:
-   {
pLeader-PLength = sizeof(struct bcm_add_indication_alt);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, Sending DSA Response\n);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSA RESPONSE TO MAC %d, pLeader-PLength);
@@ -1669,10 +1669,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL,  VCID = %x, ntohs(pstAddIndication-u16VCID));
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
kfree(pstAddIndication);
-   }
break;
case DSA_RSP:
-   {
pLeader-PLength = sizeof(struct bcm_add_indication_alt);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSA ACK TO MAC %d,
pLeader-PLength);
@@ -1680,11 +1678,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
= *pstAddIndication;
((struct bcm_add_indication_alt 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSA_ACK;
 
-   } /* no break here..we should go down. */
+   /* no break here..we should go down. */
case DSA_ACK:
-   {
-   UINT uiSearchRuleIndex = 0;
-
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, VCID:0x%X,
ntohs(pstAddIndication-u16VCID));
uiSearchRuleIndex = SearchFreeSfid(Adapter);
@@ -1767,10 +1762,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
kfree(pstAddIndication);
return false;
}
-   }
break;
case DSC_REQ:
-   {
pLeader-PLength = sizeof(struct bcm_change_indication);
pstChangeIndication = (struct bcm_change_indication 
*)pstAddIndication;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSC RESPONSE TO MAC %d, pLeader-PLength);
@@ -1780,20 +1773,14 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
 
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
kfree(pstAddIndication);
-   }
break;
case DSC_RSP:
-   {
pLeader-PLength = sizeof(struct bcm_change_indication);
pstChangeIndication = (struct bcm_change_indication 
*)pstAddIndication;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSC ACK TO MAC %d, pLeader-PLength);
*((struct bcm_change_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE])) = *pstChangeIndication;
((struct bcm_change_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSC_ACK;
-   }
case DSC_ACK:
-   {
-   UINT 

RE: [PATCH 2/2] staging: comedi: poc: remove obsolete driver

2014-03-17 Thread Hartley Sweeten
On Monday, March 17, 2014 2:14 PM, Greg KH wrote:
 On Tue, Mar 11, 2014 at 12:04:18PM -0700, H Hartley Sweeten wrote:
 From: H Hartley Sweeten hartl...@visionengravers.com
 
 The DAC02 board, which is the only board supported by this driver, now
 has its own comedi driver (dac02).
 
 Remove this obsolete driver.
 
 Signed-off-by: H Hartley Sweeten hswee...@visionengravers.com
 Reviewed-by: Ian Abbott abbo...@mev.co.uk
 ---
  drivers/staging/comedi/Kconfig  |   9 --
  drivers/staging/comedi/drivers/Makefile |   1 -
  drivers/staging/comedi/drivers/poc.c| 157 
 
  3 files changed, 167 deletions(-)
  delete mode 100644 drivers/staging/comedi/drivers/poc.c

 This patch fails to apply to my tree, can you refresh it and resend?

Sorry about that.

I spotted this issue last week and forgot to submit an updated patch.
I'll get one to you soon.

BTW, I got two notices from you on this patch being added:

staging: comedi: dac02: introduce comedi driver for DAC02 boards

I assume this was an email issue and the patch was only added once...

Thanks,
Hartley

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


Re: [PATCH 2/2] staging: comedi: poc: remove obsolete driver

2014-03-17 Thread Greg KH
On Mon, Mar 17, 2014 at 10:12:01PM +, Hartley Sweeten wrote:
 On Monday, March 17, 2014 2:14 PM, Greg KH wrote:
  On Tue, Mar 11, 2014 at 12:04:18PM -0700, H Hartley Sweeten wrote:
  From: H Hartley Sweeten hartl...@visionengravers.com
  
  The DAC02 board, which is the only board supported by this driver, now
  has its own comedi driver (dac02).
  
  Remove this obsolete driver.
  
  Signed-off-by: H Hartley Sweeten hswee...@visionengravers.com
  Reviewed-by: Ian Abbott abbo...@mev.co.uk
  ---
   drivers/staging/comedi/Kconfig  |   9 --
   drivers/staging/comedi/drivers/Makefile |   1 -
   drivers/staging/comedi/drivers/poc.c| 157 
  
   3 files changed, 167 deletions(-)
   delete mode 100644 drivers/staging/comedi/drivers/poc.c
 
  This patch fails to apply to my tree, can you refresh it and resend?
 
 Sorry about that.
 
 I spotted this issue last week and forgot to submit an updated patch.
 I'll get one to you soon.
 
 BTW, I got two notices from you on this patch being added:
 
 staging: comedi: dac02: introduce comedi driver for DAC02 boards
 
 I assume this was an email issue and the patch was only added once...

Yes, that was my fault, sorry.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Staging: bcm: CmHost: moved and removed declarations and tmp bracing.

2014-03-17 Thread Greg KH
On Mon, Mar 17, 2014 at 06:01:24PM -0400, Gary Rookard wrote:
 Firstly, some background is needed to confirm the validity of
 this patch as error fixing. It seems the developer when writing
 this driver from scratch, used what are known to me as error 
 suppressors in the form of extra tmp bracing added to the case labels.
 They aid during construction time, but are not intended to remain.
 
 In this scenario there are declarations occupying space only
 reserved for statements. If these tmp braces were to be removed
 before the declarations in question were reassigned to there
 proper place in the funtion, compile time errors would result.
 
 So, having that said, I moved the declarations,
 UINT uiSearchRuleIndex = 0; and ULONG ulSFID;,
 and also deleted the duplicates thereof from 
 the switch/case statement.
 
 Removed temporary bracing from case labels.
 
 Removed new lines as needed.
 
 Signed-off-by: Gary Rookard garyrook...@gmail.com
 
 ---
 On branch staging-next
  drivers/staging/bcm/CmHost.c | 27 +++
  1 file changed, 3 insertions(+), 24 deletions(-)
 
 diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
 index cc82588..b3002d7 100644
 --- a/drivers/staging/bcm/CmHost.c
 +++ b/drivers/staging/bcm/CmHost.c
 @@ -1635,7 +1635,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   struct bcm_add_indication_alt *pstAddIndication = NULL;
   struct bcm_change_indication *pstChangeIndication = NULL;
   struct bcm_leader *pLeader = NULL;
 -
 + UINT uiSearchRuleIndex = 0;
 + ULONG ulSFID;
   /*

You forgot to add a line after the variable and before the comment here
:(

* Otherwise the message contains a target address from where we need to
* read out the rest of the service flow param structure
 @@ -1658,7 +1659,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, ### TID RECEIVED 
 %d\n, pstAddIndication-u16TID);
   switch (pstAddIndication-u8Type) {
   case DSA_REQ:
 - {
   pLeader-PLength = sizeof(struct bcm_add_indication_alt);
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, Sending DSA Response\n);
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL, SENDING DSA RESPONSE TO MAC %d, pLeader-PLength);
 @@ -1669,10 +1669,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
 *Adapter,  /* Pointer to
   BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
 DBG_LVL_ALL,  VCID = %x, ntohs(pstAddIndication-u16VCID));
   CopyBufferToControlPacket(Adapter, 
 (PVOID)Adapter-caDsxReqResp);
   kfree(pstAddIndication);
 - }
   break;

Can you properly indent the break; lines as well?

thanks,

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


Re: [PATCH 1/2] staging: cxtie1: remove unneeded mkret() calls

2014-03-17 Thread DaeSeok Youn
Ok. I will rebase this patch in staging-next branch and send it again.

Thanks.
Daeseok Youn.

2014-03-18 6:23 GMT+09:00 Greg KH gre...@linuxfoundation.org:
 On Mon, Mar 10, 2014 at 08:54:18AM +0900, Daeseok Youn wrote:

 The mkret() change a value of error from positive to
 negative. This patch is modified to return negative value
 when it failed. It doesn't need to call with function
 for changing from positive to negative.

 Signed-off-by: Daeseok Youn daeseok.y...@gmail.com
 ---
  drivers/staging/cxt1e1/linux.c |   72 
 +--
  drivers/staging/cxt1e1/musycc.c|2 +-
  drivers/staging/cxt1e1/pmcc4_drv.c |   40 ++--
  3 files changed, 48 insertions(+), 66 deletions(-)

 This patch no longer applies to my tree, can you refresh it and resend?
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Staging: bcm: CmHost: moved and removed declarations and tmp bracing.

2014-03-17 Thread Gary Rookard



On Mon, 17 Mar 2014, Greg KH wrote:


On Mon, Mar 17, 2014 at 06:01:24PM -0400, Gary Rookard wrote:

Firstly, some background is needed to confirm the validity of
this patch as error fixing. It seems the developer when writing
this driver from scratch, used what are known to me as error
suppressors in the form of extra tmp bracing added to the case labels.
They aid during construction time, but are not intended to remain.

In this scenario there are declarations occupying space only
reserved for statements. If these tmp braces were to be removed
before the declarations in question were reassigned to there
proper place in the funtion, compile time errors would result.

So, having that said, I moved the declarations,
UINT uiSearchRuleIndex = 0; and ULONG ulSFID;,
and also deleted the duplicates thereof from
the switch/case statement.

Removed temporary bracing from case labels.

Removed new lines as needed.

Signed-off-by: Gary Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 27 +++
 1 file changed, 3 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index cc82588..b3002d7 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1635,7 +1635,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
struct bcm_add_indication_alt *pstAddIndication = NULL;
struct bcm_change_indication *pstChangeIndication = NULL;
struct bcm_leader *pLeader = NULL;
-
+   UINT uiSearchRuleIndex = 0;
+   ULONG ulSFID;
/*


You forgot to add a line after the variable and before the comment here
:(


 * Otherwise the message contains a target address from where we need to
 * read out the rest of the service flow param structure
@@ -1658,7 +1659,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, ### TID RECEIVED %d\n, 
pstAddIndication-u16TID);
switch (pstAddIndication-u8Type) {
case DSA_REQ:
-   {
pLeader-PLength = sizeof(struct bcm_add_indication_alt);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
Sending DSA Response\n);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL, 
SENDING DSA RESPONSE TO MAC %d, pLeader-PLength);
@@ -1669,10 +1669,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, DBG_LVL_ALL,  VCID 
= %x, ntohs(pstAddIndication-u16VCID));
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
kfree(pstAddIndication);
-   }
break;


Can you properly indent the break; lines as well?

thanks,

greg k-h


--
Most certainly.


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


USB, TTY, char/misc, and Staging trees now closed for 3.15

2014-03-17 Thread Greg KH
Hi all,

Given that 3.14 will be out in a few days, it's time to close my trees
for new patches until 3.15-rc1 is out.

Please feel free to send me patches for these trees, but note that I'll
be ignoring them until 3.15-rc1 is out, at which point in time I'll
start reviewing them again and applying them to the various places they
belong.

thanks,

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


[PATCH] [staging][r8188eu]: memory leak in rtw_free_cmd_obj if command is (_Set_Drv_Extra)

2014-03-17 Thread Wang, Xiaoming
pcmd-parmbuf-pbuf has been allocated if command is 
GEN_CMD_CODE(_Set_Drv_Extra),
and it enqueued by rtw_enqueue_cmd. rtw_cmd_thread dequeue pcmd by 
rtw_dequeue_cmd.
The memory leak happened on this branch if( _FAIL == rtw_cmd_filter(pcmdpriv, 
pcmd) )
which goto post_process directly against freeing pcmd-parmbuf-pbuf in
rtw_drvextra_cmd_hdl which is the cmd_hdl if command is (_Set_Drv_Extra).
This patch free pcmd-parmbuf-pbuf on the forgotten branch to avoid memory 
leak.

Signed-off-by: Zhang Dongxing dongxing.zh...@intel.com
Signed-off-by: xiaoming wang xiaoming.w...@intel.com

diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c 
b/drivers/staging/rtl8188eu/core/rtw_cmd.c
index c0a0a52..1c7f505 100644
--- a/drivers/staging/rtl8188eu/core/rtw_cmd.c
+++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c
@@ -288,7 +288,7 @@ int rtw_cmd_thread(void *context)
void (*pcmd_callback)(struct adapter *dev, struct cmd_obj *pcmd);
struct adapter *padapter = (struct adapter *)context;
struct cmd_priv *pcmdpriv = (padapter-cmdpriv);
-
+   struct drvextra_cmd_parm *extra_parm = NULL;
 
thread_enter(RTW_CMD_THREAD);
 
@@ -323,6 +323,11 @@ _next:
 
if (_FAIL == rtw_cmd_filter(pcmdpriv, pcmd)) {
pcmd-res = H2C_DROPPED;
+   if (pcmd-cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) {
+   extra_parm = (struct drvextra_cmd_parm 
*)pcmd-parmbuf;
+   if (extra_parm  extra_parm-pbuf  
extra_parm-size  0)
+   rtw_mfree(extra_parm-pbuf, 
extra_parm-size);
+   }
goto post_process;
}
 

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


[PATCH] Staging: bcm: CmHost: moved and removed declarations and tmp bracing.

2014-03-17 Thread Gary Rookard
Firstly, some background is needed to confirm the validity of
this patch as error fixing. It seems the developer when writing
this driver from scratch, used what are known to me as error
suppressors in the form of extra tmp bracing added to the case labels.
They aid during construction time, but are not intended to remain.

In this scenario there are declarations occupying space only
reserved for statements. If these tmp braces were to be removed
before the declarations in question were reassigned to there
proper place in the funtion, compile time errors would result.

So, having that said, I moved the declarations,
UINT uiSearchRuleIndex = 0; and ULONG ulSFID;,
and also deleted the duplicates thereof from
the switch/case statement.

Removed temporary bracing from case labels.

Removed new lines as needed.

Properly indented case breaks.

Signed-off-by: Gary Rookard garyrook...@gmail.com

---
On branch staging-next
 drivers/staging/bcm/CmHost.c | 38 --
 1 file changed, 8 insertions(+), 30 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index cc82588..8d46b38 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1635,7 +1635,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
struct bcm_add_indication_alt *pstAddIndication = NULL;
struct bcm_change_indication *pstChangeIndication = NULL;
struct bcm_leader *pLeader = NULL;
-
+   UINT uiSearchRuleIndex = 0;
+   ULONG ulSFID;
/*
 * Otherwise the message contains a target address from where we need to
 * read out the rest of the service flow param structure
@@ -1658,7 +1659,6 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_PRINTK, 0, 0, ### TID RECEIVED 
%d\n, pstAddIndication-u16TID);
switch (pstAddIndication-u8Type) {
case DSA_REQ:
-   {
pLeader-PLength = sizeof(struct bcm_add_indication_alt);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, Sending DSA Response\n);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSA RESPONSE TO MAC %d, pLeader-PLength);
@@ -1669,22 +1669,16 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL,  VCID = %x, ntohs(pstAddIndication-u16VCID));
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
kfree(pstAddIndication);
-   }
-   break;
+   break;
case DSA_RSP:
-   {
pLeader-PLength = sizeof(struct bcm_add_indication_alt);
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSA ACK TO MAC %d,
pLeader-PLength);
*((struct bcm_add_indication_alt 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))
= *pstAddIndication;
((struct bcm_add_indication_alt 
*)(Adapter-caDsxReqResp[LEADER_SIZE]))-u8Type = DSA_ACK;
-
-   } /* no break here..we should go down. */
+   /* no break here..we should go down. */
case DSA_ACK:
-   {
-   UINT uiSearchRuleIndex = 0;
-
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, VCID:0x%X,
ntohs(pstAddIndication-u16VCID));
uiSearchRuleIndex = SearchFreeSfid(Adapter);
@@ -1767,10 +1761,8 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
kfree(pstAddIndication);
return false;
}
-   }
-   break;
+   break;
case DSC_REQ:
-   {
pLeader-PLength = sizeof(struct bcm_change_indication);
pstChangeIndication = (struct bcm_change_indication 
*)pstAddIndication;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSC RESPONSE TO MAC %d, pLeader-PLength);
@@ -1780,20 +1772,14 @@ bool CmControlResponseMessage(struct bcm_mini_adapter 
*Adapter,  /* Pointer to
 
CopyBufferToControlPacket(Adapter, 
(PVOID)Adapter-caDsxReqResp);
kfree(pstAddIndication);
-   }
-   break;
+   break;
case DSC_RSP:
-   {
pLeader-PLength = sizeof(struct bcm_change_indication);
pstChangeIndication = (struct bcm_change_indication 
*)pstAddIndication;
BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, CONN_MSG, 
DBG_LVL_ALL, SENDING DSC ACK TO MAC %d, pLeader-PLength);
*((struct bcm_change_indication 
*)(Adapter-caDsxReqResp[LEADER_SIZE])) = *pstChangeIndication;
((struct bcm_change_indication 

Re: [PATCH] staging: unisys: use kzalloc instead of kmalloc/memset 0

2014-03-17 Thread DaeSeok Youn
I think vmalloc/kmalloc in uislib_malloc() can be removed and just use
vmalloc/kmalloc directly.
(UISMALLOC() macro is also removed.)
And uislib_malloc() is renamed to uislib_trace_buffer_status() which
is just tracing buffer status(Malloc_FailuresAlloc, Malloc_BytesInUse
...) for info_proc_read_helper().

If this change is accepted, it also need to change uislib_free().

Is it fine to change like this?

Thanks.
Daeseok Youn.

2014-03-18 6:41 GMT+09:00 Greg KH gre...@linuxfoundation.org:
 On Wed, Mar 12, 2014 at 07:37:50PM +0900, Daeseok Youn wrote:

 Signed-off-by: Daeseok Youn daeseok.y...@gmail.com
 ---
  drivers/staging/unisys/uislib/uislib.c   |5 +
  drivers/staging/unisys/uislib/uisutils.c |2 +-
  2 files changed, 2 insertions(+), 5 deletions(-)

 diff --git a/drivers/staging/unisys/uislib/uislib.c 
 b/drivers/staging/unisys/uislib/uislib.c
 index d77df9a..9748fcb 100644
 --- a/drivers/staging/unisys/uislib/uislib.c
 +++ b/drivers/staging/unisys/uislib/uislib.c
 @@ -339,8 +339,6 @@ create_bus(CONTROLVM_MESSAGE *msg, char *buf)
   return CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
   }

 - memset(bus, 0, size);
 -
   /* Currently by default, the bus Number is the GuestHandle.
* Configure Bus message can override this.
*/
 @@ -530,7 +528,6 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
   return CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
   }

 - memset(dev, 0, sizeof(struct device_info));
   dev-channelTypeGuid = msg-cmd.createDevice.dataTypeGuid;
   dev-intr = msg-cmd.createDevice.intr;
   dev-channelAddr = msg-cmd.createDevice.channelAddr;
 @@ -1437,7 +1434,7 @@ uislib_malloc(size_t siz, gfp_t gfp, U8 contiguous, 
 char *fn, int ln)
   * get memory for you (like, invoke oom killer), which
   * will probably cripple the system.
   */
 - p = kmalloc(siz, gfp | __GFP_NORETRY);
 + p = kzalloc(siz, gfp | __GFP_NORETRY);
   }
   if (p == NULL) {
   LOGERR(uislib_malloc failed to alloc %d bytes @%s:%d,
 diff --git a/drivers/staging/unisys/uislib/uisutils.c 
 b/drivers/staging/unisys/uislib/uisutils.c
 index 208b7ea..2f05be1 100644
 --- a/drivers/staging/unisys/uislib/uisutils.c
 +++ b/drivers/staging/unisys/uislib/uisutils.c
 @@ -294,7 +294,7 @@ ReqHandlerAdd(GUID switchTypeGuid,
   rc = UISMALLOC(sizeof(*rc), GFP_ATOMIC);
   if (!rc)
   return NULL;
 - memset(rc, 0, sizeof(*rc));
 +
   rc-switchTypeGuid = switchTypeGuid;
   rc-controlfunc = controlfunc;
   rc-min_channel_bytes = min_channel_bytes;

 Can you just remove the UISMALLOC() macro completly, so that it's easier
 to verify that changes like this are actually correct?

 thanks,

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


Re: [PATCH] staging: unisys: use kzalloc instead of kmalloc/memset 0

2014-03-17 Thread Greg KH
On Tue, Mar 18, 2014 at 09:26:07AM +0900, DaeSeok Youn wrote:
 I think vmalloc/kmalloc in uislib_malloc() can be removed and just use
 vmalloc/kmalloc directly.

Yes.  Actually, just use kmalloc, I don't knwo why vmalloc is being
used, but cc: the driver maintainers just to be sure.

 (UISMALLOC() macro is also removed.)

Yes.

 And uislib_malloc() is renamed to uislib_trace_buffer_status() which
 is just tracing buffer status(Malloc_FailuresAlloc, Malloc_BytesInUse
 ...) for info_proc_read_helper().

The whole tracing stuff needs to be ripped out, so no problem deleting
it here as well.

 If this change is accepted, it also need to change uislib_free().

Drop it and just use kfree().

thanks,

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


[PATCH v2] staging: cxt1e1: remove unneeded mkret() calls

2014-03-17 Thread Daeseok Youn

The mkret() change a value of error from positive to
negative. This patch is modified to return negative value
when it failed. It doesn't need to call with function
for changing from positive to negative.

Signed-off-by: Daeseok Youn daeseok.y...@gmail.com
---
v2: fix a typo in subject
this patch is rebased in staging-next branch.

 drivers/staging/cxt1e1/linux.c |   72 +--
 drivers/staging/cxt1e1/musycc.c|2 +-
 drivers/staging/cxt1e1/pmcc4_drv.c |   30 --
 3 files changed, 45 insertions(+), 59 deletions(-)

diff --git a/drivers/staging/cxt1e1/linux.c b/drivers/staging/cxt1e1/linux.c
index 58fe0fe..9005d55 100644
--- a/drivers/staging/cxt1e1/linux.c
+++ b/drivers/staging/cxt1e1/linux.c
@@ -145,16 +145,6 @@ get_hdlc_name(hdlc_device *hdlc)
return dev-name;
 }
 
-
-static status_t
-mkret(int bsd)
-{
-   if (bsd  0)
-   return -bsd;
-   else
-   return bsd;
-}
-
 /***/
 #include linux/workqueue.h
 
@@ -290,8 +280,8 @@ chan_open(struct net_device *ndev)
}
 
ret = c4_chan_up(priv-ci, priv-channum);
-   if (ret)
-   return -ret;
+   if (ret  0)
+   return ret;
try_module_get(THIS_MODULE);
netif_start_queue(ndev);
return 0;   /* no error = success */
@@ -521,8 +511,8 @@ do_get_port(struct net_device *ndev, void *data)
if (!ci)
return -EINVAL; /* get card info */
 
-   ret = mkret(c4_get_port(ci, pp.portnum));
-   if (ret)
+   ret = c4_get_port(ci, pp.portnum);
+   if (ret  0)
return ret;
if (copy_to_user(data, ci-port[pp.portnum].p,
 sizeof(struct sbecom_port_param)))
@@ -549,7 +539,7 @@ do_set_port(struct net_device *ndev, void *data)
return -ENXIO;
 
memcpy(ci-port[pp.portnum].p, pp, sizeof(struct sbecom_port_param));
-   return mkret(c4_set_port(ci, pp.portnum));
+   return c4_set_port(ci, pp.portnum);
 }
 
 /* work the port loopback mode as per directed */
@@ -564,7 +554,7 @@ do_port_loop(struct net_device *ndev, void *data)
ci = get_ci_by_dev(ndev);
if (!ci)
return -EINVAL;
-   return mkret(c4_loop_port(ci, pp.portnum, pp.port_mode));
+   return c4_loop_port(ci, pp.portnum, pp.port_mode);
 }
 
 /* set the specified register with the given value / or just read it */
@@ -580,8 +570,8 @@ do_framer_rw(struct net_device *ndev, void *data)
ci = get_ci_by_dev(ndev);
if (!ci)
return -EINVAL;
-   ret = mkret(c4_frame_rw(ci, pp));
-   if (ret)
+   ret = c4_frame_rw(ci, pp);
+   if (ret  0)
return ret;
if (copy_to_user(data, pp, sizeof(struct sbecom_port_param)))
return -EFAULT;
@@ -601,7 +591,8 @@ do_pld_rw(struct net_device *ndev, void *data)
ci = get_ci_by_dev(ndev);
if (!ci)
return -EINVAL;
-   ret = mkret(c4_pld_rw(ci, pp));
+
+   ret = c4_pld_rw(ci, pp);
if (ret)
return ret;
if (copy_to_user(data, pp, sizeof(struct sbecom_port_param)))
@@ -622,8 +613,8 @@ do_musycc_rw(struct net_device *ndev, void *data)
ci = get_ci_by_dev(ndev);
if (!ci)
return -EINVAL;
-   ret = mkret(c4_musycc_rw(ci, mp));
-   if (ret)
+   ret = c4_musycc_rw(ci, mp);
+   if (ret  0)
return ret;
if (copy_to_user(data, mp, sizeof(struct c4_musycc_param)))
return -EFAULT;
@@ -640,8 +631,8 @@ do_get_chan(struct net_device *ndev, void *data)
sizeof(struct sbecom_chan_param)))
return -EFAULT;
 
-   ret = mkret(c4_get_chan(cp.channum, cp));
-   if (ret)
+   ret = c4_get_chan(cp.channum, cp);
+   if (ret  0)
return ret;
 
if (copy_to_user(data, cp, sizeof(struct sbecom_chan_param)))
@@ -653,7 +644,6 @@ static status_t
 do_set_chan(struct net_device *ndev, void *data)
 {
struct sbecom_chan_param cp;
-   int ret;
ci_t   *ci;
 
if (copy_from_user(cp, data, sizeof(struct sbecom_chan_param)))
@@ -661,13 +651,7 @@ do_set_chan(struct net_device *ndev, void *data)
ci = get_ci_by_dev(ndev);
if (!ci)
return -EINVAL;
-   switch (ret = mkret(c4_set_chan(cp.channum, cp)))
-   {
-   case 0:
-   return 0;
-   default:
-   return ret;
-   }
+   return c4_set_chan(cp.channum, cp);
 }
 
 static status_t
@@ -686,8 +670,8 @@ do_create_chan(struct net_device *ndev, void *data)
dev = create_chan(ndev, ci, cp);
if (!dev)
return -EBUSY;
-   ret = mkret(c4_new_chan(ci, cp.port, cp.channum, dev));
-   if (ret) {
+   ret = c4_new_chan(ci, cp.port, 

[PATCH 1/2] mmc: rtsx: add R1-no-CRC mmc command type handle

2014-03-17 Thread micky_ching
From: Micky Ching micky_ch...@realsil.com.cn

commit a27fbf2f067b0cd6f172c8b696b9a44c58bfaa7a
mmc: add ignorance case for CMD13 CRC error
produced a cmd.flags unhandled in realtek pci host driver.
This will make MMC card failed initialize, this patch is
used to handle the new cmd.flags condition and MMC card can be used.

Signed-off-by: Micky Ching micky_ch...@realsil.com.cn
---
 drivers/mmc/host/rtsx_pci_sdmmc.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c 
b/drivers/mmc/host/rtsx_pci_sdmmc.c
index 5fb994f..0d8904a 100644
--- a/drivers/mmc/host/rtsx_pci_sdmmc.c
+++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
@@ -346,6 +346,9 @@ static void sd_send_cmd(struct realtek_pci_sdmmc *host, 
struct mmc_command *cmd)
case MMC_RSP_R1:
rsp_type = SD_RSP_TYPE_R1;
break;
+   case MMC_RSP_R1  ~MMC_RSP_CRC:
+   rsp_type = SD_RSP_TYPE_R1 | SD_NO_CHECK_CRC7;
+   break;
case MMC_RSP_R1B:
rsp_type = SD_RSP_TYPE_R1b;
break;
-- 
1.7.9.5

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


[PATCH 0/2] add new cmd type handle and remove smatch warnings

2014-03-17 Thread micky_ching
From: Micky Ching micky_ch...@realsil.com.cn

Add new command type(R1 without CRC) handle, without this patch mmc card
initialize will be failed.

Using a more careful handle in request timeout, and debug info is printed
using non DMA mode. Smatch warning was removed.

Micky Ching (2):
  mmc: rtsx: add R1-no-CRC mmc command type handle
  mmc: rtsx: modify error handle and remove smatch warnings

 drivers/mmc/host/rtsx_pci_sdmmc.c |  121 -
 1 file changed, 67 insertions(+), 54 deletions(-)

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


[PATCH 2/2] mmc: rtsx: modify error handle and remove smatch warnings

2014-03-17 Thread micky_ching
From: Micky Ching micky_ch...@realsil.com.cn

Using non-DMA dump-regs, which would be more exactly for DMA transfer failed.

More careful handle when cmd/data timeout, add stop(CMD12) cmd before go to
finish request when multi-rw timeout.

Remove some static checher warings.
on commit: mmc: rtsx: add support for pre_req and post_req
drivers/mmc/host/rtsx_pci_sdmmc.c:194 sd_finish_request()
error: we previously assumed 'mrq' could be null (see line 158)
drivers/mmc/host/rtsx_pci_sdmmc.c:504 sd_get_rsp()
error: we previously assumed 'cmd' could be null (see line 434)
drivers/mmc/host/rtsx_pci_sdmmc.c:525 sd_pre_dma_transfer()
warn: we tested 'next' before and it was 'false'

Signed-off-by: Micky Ching micky_ch...@realsil.com.cn
---
 drivers/mmc/host/rtsx_pci_sdmmc.c |  118 -
 1 file changed, 64 insertions(+), 54 deletions(-)

diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c 
b/drivers/mmc/host/rtsx_pci_sdmmc.c
index 0d8904a..d00a94e 100644
--- a/drivers/mmc/host/rtsx_pci_sdmmc.c
+++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
@@ -81,25 +81,23 @@ static inline void sd_clear_error(struct realtek_pci_sdmmc 
*host)
 }
 
 #ifdef DEBUG
+static inline void sd_print_reg(struct realtek_pci_sdmmc *host, u16 reg)
+{
+   u8 val;
+   if (rtsx_pci_read_register(host-pcr, reg, val)  0)
+   dev_dbg(sdmmc_dev(host), read 0x%04x failed\n, reg);
+   else
+   dev_dbg(sdmmc_dev(host), 0x%04X: 0x%02x\n, reg, val);
+}
+
 static void sd_print_debug_regs(struct realtek_pci_sdmmc *host)
 {
-   struct rtsx_pcr *pcr = host-pcr;
u16 i;
-   u8 *ptr;
-
-   /* Print SD host internal registers */
-   rtsx_pci_init_cmd(pcr);
-   for (i = 0xFDA0; i = 0xFDAE; i++)
-   rtsx_pci_add_cmd(pcr, READ_REG_CMD, i, 0, 0);
-   for (i = 0xFD52; i = 0xFD69; i++)
-   rtsx_pci_add_cmd(pcr, READ_REG_CMD, i, 0, 0);
-   rtsx_pci_send_cmd(pcr, 100);
 
-   ptr = rtsx_pci_get_cmd_data(pcr);
for (i = 0xFDA0; i = 0xFDAE; i++)
-   dev_dbg(sdmmc_dev(host), 0x%04X: 0x%02x\n, i, *(ptr++));
+   sd_print_reg(host, i);
for (i = 0xFD52; i = 0xFD69; i++)
-   dev_dbg(sdmmc_dev(host), 0x%04X: 0x%02x\n, i, *(ptr++));
+   sd_print_reg(host, i);
 }
 #else
 #define sd_print_debug_regs(host)
@@ -125,19 +123,27 @@ static void sd_request_timeout(unsigned long host_addr)
spin_lock_irqsave(host-lock, flags);
 
if (!host-mrq) {
-   dev_err(sdmmc_dev(host), error: no request exist\n);
-   goto out;
+   dev_err(sdmmc_dev(host), error: request not exist\n);
+   spin_unlock_irqrestore(host-lock, flags);
+   return;
}
 
-   if (host-cmd)
+   if (host-cmd  host-data)
+   dev_err(sdmmc_dev(host), error: cmd and data conflict\n);
+
+   if (host-cmd) {
host-cmd-error = -ETIMEDOUT;
-   if (host-data)
-   host-data-error = -ETIMEDOUT;
+   dev_dbg(sdmmc_dev(host), timeout for cmd %d\n,
+   host-cmd-opcode);
+   tasklet_schedule(host-cmd_tasklet);
+   }
 
-   dev_dbg(sdmmc_dev(host), timeout for request\n);
+   if (host-data) {
+   host-data-error = -ETIMEDOUT;
+   dev_dbg(sdmmc_dev(host), timeout for data transfer\n);
+   tasklet_schedule(host-data_tasklet);
+   }
 
-out:
-   tasklet_schedule(host-finish_tasklet);
spin_unlock_irqrestore(host-lock, flags);
 }
 
@@ -157,7 +163,8 @@ static void sd_finish_request(unsigned long host_addr)
mrq = host-mrq;
if (!mrq) {
dev_err(sdmmc_dev(host), error: no request need finish\n);
-   goto out;
+   spin_unlock_irqrestore(host-lock, flags);
+   return;
}
 
cmd = mrq-cmd;
@@ -167,11 +174,6 @@ static void sd_finish_request(unsigned long host_addr)
(mrq-stop  mrq-stop-error) ||
(cmd  cmd-error) || (data  data-error);
 
-   if (any_error) {
-   rtsx_pci_stop_cmd(pcr);
-   sd_clear_error(host);
-   }
-
if (data) {
if (any_error)
data-bytes_xfered = 0;
@@ -188,7 +190,6 @@ static void sd_finish_request(unsigned long host_addr)
host-cmd = NULL;
host-data = NULL;
 
-out:
spin_unlock_irqrestore(host-lock, flags);
mutex_unlock(pcr-pcr_mutex);
mmc_request_done(host-mmc, mrq);
@@ -373,8 +374,11 @@ static void sd_send_cmd(struct realtek_pci_sdmmc *host, 
struct mmc_command *cmd)
if (cmd-opcode == SD_SWITCH_VOLTAGE) {
err = rtsx_pci_write_register(pcr, SD_BUS_STAT,
0xFF, SD_CLK_TOGGLE_EN);
-   if (err  0)
+   if (err  0) {
+   rtsx_pci_write_register(pcr, SD_BUS_STAT,
+   

[PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy

2014-03-17 Thread Joel Pelaez Jorge
This patch fixes the following checkpatch.pl issues caused by the new 
function: ether_addr_copy


Signed-off-by: Joel Pelaez Jorge joelpel...@gmail.com
---
diff --git a/drivers/staging/slicoss/slicoss.c 
b/drivers/staging/slicoss/slicoss.c

index 12aafe3..4ff39aa 100644
--- a/drivers/staging/slicoss/slicoss.c
+++ b/drivers/staging/slicoss/slicoss.c
@@ -2313,7 +2313,7 @@ static int slic_mcast_add_list(struct adapter 
*adapter, char *address)

 if (mcaddr == NULL)
 return 1;

-memcpy(mcaddr-address, address, ETH_ALEN);
+ether_addr_copy(mcaddr-address, address);

 mcaddr-next = adapter-mcastaddrs;
 adapter-mcastaddrs = mcaddr;
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: dgap: Fixed sparse error: same symbol redeclared with different type

2014-03-17 Thread Masood Mehmood
sparse reported dgap_do_fep_load is redeclared with different type. while
fixing, I noticed __user attribute is used incorrectly in declaration.
There is no need to define __user for firware-data.

Replaced the __user with 'const uchar *' from function dgap_do_fep_load and
did the same for function dgap_do_bios_load

patch generated against: next-20140317

Signed-off-by: Masood Mehmood ody.g...@gmail.com
---
 drivers/staging/dgap/dgap.c | 13 ++---
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c
index bfafe7e..bbacbba 100644
--- a/drivers/staging/dgap/dgap.c
+++ b/drivers/staging/dgap/dgap.c
@@ -210,9 +210,8 @@ static uint dgap_config_get_useintr(struct board_t *bd);
 static uint dgap_config_get_altpin(struct board_t *bd);
 
 static int dgap_ms_sleep(ulong ms);
-static void dgap_do_bios_load(struct board_t *brd, uchar __user *ubios,
-   int len);
-static void dgap_do_fep_load(struct board_t *brd, uchar __user *ufep, int len);
+static void dgap_do_bios_load(struct board_t *brd, const uchar *ubios, int 
len);
+static void dgap_do_fep_load(struct board_t *brd, const uchar *ufep, int len);
 #ifdef DIGI_CONCENTRATORS_SUPPORTED
 static void dgap_do_conc_load(struct board_t *brd, uchar *uaddr, int len);
 #endif
@@ -936,7 +935,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int 
card_type)
fw_info[card_type].bios_name);
return ret;
}
-   dgap_do_bios_load(brd, (char *)fw-data, fw-size);
+   dgap_do_bios_load(brd, fw-data, fw-size);
release_firmware(fw);
 
/* Wait for BIOS to test board... */
@@ -954,7 +953,7 @@ static int dgap_firmware_load(struct pci_dev *pdev, int 
card_type)
fw_info[card_type].fep_name);
return ret;
}
-   dgap_do_fep_load(brd, (char *)fw-data, fw-size);
+   dgap_do_fep_load(brd, fw-data, fw-size);
release_firmware(fw);
 
/* Wait for FEP to load on board... */
@@ -4350,7 +4349,7 @@ static int dgap_tty_register_ports(struct board_t *brd)
  * Copies the BIOS code from the user to the board,
  * and starts the BIOS running.
  */
-static void dgap_do_bios_load(struct board_t *brd, uchar __user *ubios, int 
len)
+static void dgap_do_bios_load(struct board_t *brd, const uchar *ubios, int len)
 {
uchar *addr;
uint offset;
@@ -4426,7 +4425,7 @@ static void dgap_do_wait_for_bios(struct board_t *brd)
  * Copies the FEP code from the user to the board,
  * and starts the FEP running.
  */
-static void dgap_do_fep_load(struct board_t *brd, uchar *ufep, int len)
+static void dgap_do_fep_load(struct board_t *brd, const uchar *ufep, int len)
 {
uchar *addr;
uint offset;
-- 
1.8.3.1

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


Re: [PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy

2014-03-17 Thread Jingoo Han
On Tuesday, March 18, 2014 12:18 PM, Joel Pelaez Jorge wrote:
 
 This patch fixes the following checkpatch.pl issues caused by the new
 function: ether_addr_copy
 
 Signed-off-by: Joel Pelaez Jorge joelpel...@gmail.com
 ---
 diff --git a/drivers/staging/slicoss/slicoss.c
 b/drivers/staging/slicoss/slicoss.c
 index 12aafe3..4ff39aa 100644
 --- a/drivers/staging/slicoss/slicoss.c
 +++ b/drivers/staging/slicoss/slicoss.c
 @@ -2313,7 +2313,7 @@ static int slic_mcast_add_list(struct adapter
 *adapter, char *address)
   if (mcaddr == NULL)
   return 1;
 
 -memcpy(mcaddr-address, address, ETH_ALEN);
 +ether_addr_copy(mcaddr-address, address);

In addition to this, there are the same cases like this,
in this file as below. Please search other same cases.
For instance, 'grep' will be a good way to find it.

static void slic_adapter_set_hwaddr(struct adapter *adapter)
{
struct sliccard *card = adapter-card;

if ((adapter-card)  (card-config_set)) {
memcpy(adapter-macaddr,
   card-config.MacInfo[adapter-functionnumber].macaddrA,
   sizeof(struct slic_config_mac));
if (is_zero_ether_addr(adapter-currmacaddr))
memcpy(adapter-currmacaddr, adapter-macaddr,
   ETH_ALEN);
if (adapter-netdev)
memcpy(adapter-netdev-dev_addr, adapter-currmacaddr,
   ETH_ALEN);
}
}

Joe Perches,
These are not spotted by checkpatch.pl.
However, after modifying it as below, checkpatch warnings are
printed. Would you confirm it?

if (is_zero_ether_addr(adapter-currmacaddr))
memcpy(adapter-currmacaddr, adapter-macaddr, ETH_ALEN);
if (adapter-netdev)
memcpy(adapter-netdev-dev_addr, adapter-currmacaddr, 
ETH_ALEN);
}


Best regards,
Jingoo Han


 
   mcaddr-next = adapter-mcastaddrs;
   adapter-mcastaddrs = mcaddr;

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


Re: [PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy

2014-03-17 Thread Joe Perches
On Tue, 2014-03-18 at 12:38 +0900, Jingoo Han wrote:
 In addition to this, there are the same cases like this,
 in this file as below. Please search other same cases.
 For instance, 'grep' will be a good way to find it.
[]
 static void slic_adapter_set_hwaddr(struct adapter *adapter)
 {
 struct sliccard *card = adapter-card;
[]
 if (is_zero_ether_addr(adapter-currmacaddr))
 memcpy(adapter-currmacaddr, adapter-macaddr,
ETH_ALEN);
 if (adapter-netdev)
 memcpy(adapter-netdev-dev_addr, 
 adapter-currmacaddr,
ETH_ALEN);
 }
 }
 
 Joe Perches,
 These are not spotted by checkpatch.pl.
 However, after modifying it as below, checkpatch warnings are
 printed. Would you confirm it?

If it's not on a single line, checkpatch won't find it.


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


[PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy

2014-03-17 Thread Joel Pelaez Jorge
This patch fixes the following checkpatch.pl issues caused by the new 
function: ether_addr_copy


Signed-off-by: Joel Pelaez Jorge joelpel...@gmail.com
---
 drivers/staging/slicoss/slicoss.c |   20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/slicoss/slicoss.c 
b/drivers/staging/slicoss/slicoss.c

index 12aafe3..0e0e374 100644
--- a/drivers/staging/slicoss/slicoss.c
+++ b/drivers/staging/slicoss/slicoss.c
@@ -581,15 +581,15 @@ static void slic_adapter_set_hwaddr(struct adapter 
*adapter)

struct sliccard *card = adapter-card;

if ((adapter-card)  (card-config_set)) {
-   memcpy(adapter-macaddr,
-  card-config.MacInfo[adapter-functionnumber].macaddrA,
-  sizeof(struct slic_config_mac));
+   ether_addr_copy(adapter-macaddr,
+   card-config.MacInfo[adapter-functionnumber]
+   .macaddrA);
if (is_zero_ether_addr(adapter-currmacaddr))
-   memcpy(adapter-currmacaddr, adapter-macaddr,
-  ETH_ALEN);
+   ether_addr_copy(adapter-currmacaddr,
+   adapter-macaddr);
if (adapter-netdev)
-   memcpy(adapter-netdev-dev_addr, adapter-currmacaddr,
-  ETH_ALEN);
+   ether_addr_copy(adapter-netdev-dev_addr,
+   adapter-currmacaddr);
}
 }

@@ -810,8 +810,8 @@ static int slic_mac_set_address(struct net_device 
*dev, void *ptr)

if (!is_valid_ether_addr(addr-sa_data))
return -EINVAL;

-   memcpy(dev-dev_addr, addr-sa_data, dev-addr_len);
-   memcpy(adapter-currmacaddr, addr-sa_data, dev-addr_len);
+   ether_addr_copy(dev-dev_addr, addr-sa_data);
+   ether_addr_copy(adapter-currmacaddr, addr-sa_data);

slic_config_set(adapter, true);
return 0;
@@ -2313,7 +2313,7 @@ static int slic_mcast_add_list(struct adapter 
*adapter, char *address)

if (mcaddr == NULL)
return 1;

-   memcpy(mcaddr-address, address, ETH_ALEN);
+   ether_addr_copy(mcaddr-address, address);

mcaddr-next = adapter-mcastaddrs;
adapter-mcastaddrs = mcaddr;
--
1.7.10.4

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


Re: [PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy

2014-03-17 Thread Jingoo Han
On Tuesday, March 18, 2014 2:04 PM, Joel Pelaez Jorge wrote:
 
 This patch fixes the following checkpatch.pl issues caused by the new
 function: ether_addr_copy
 
 Signed-off-by: Joel Pelaez Jorge joelpel...@gmail.com
 ---
   drivers/staging/slicoss/slicoss.c |   20 ++--
   1 file changed, 10 insertions(+), 10 deletions(-)
 
 diff --git a/drivers/staging/slicoss/slicoss.c
 b/drivers/staging/slicoss/slicoss.c
 index 12aafe3..0e0e374 100644
 --- a/drivers/staging/slicoss/slicoss.c
 +++ b/drivers/staging/slicoss/slicoss.c
 @@ -581,15 +581,15 @@ static void slic_adapter_set_hwaddr(struct adapter
 *adapter)
   struct sliccard *card = adapter-card;
 
   if ((adapter-card)  (card-config_set)) {
 - memcpy(adapter-macaddr,
 -card-config.MacInfo[adapter-functionnumber].macaddrA,
 -sizeof(struct slic_config_mac));
 + ether_addr_copy(adapter-macaddr,
 + card-config.MacInfo[adapter-functionnumber]
 + .macaddrA);

As declared in ./include/linux/etherdevice.h,
Copied size should be a six-byte.

static inline void ether_addr_copy(u8 *dst, const u8 *src)
{
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
*(u32 *)dst = *(const u32 *)src;
*(u16 *)(dst + 4) = *(const u16 *)(src + 4);
#else
u16 *a = (u16 *)dst;
const u16 *b = (const u16 *)src;

a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
#endif
}

In this case, sizeof(struct slic_config_mac) will be 6 byte,
as below. So, it looks good.

./drivers/staging/slicoss/slichw.h
struct slic_config_mac {
u8 macaddrA[6];
};

   if (is_zero_ether_addr(adapter-currmacaddr))
 - memcpy(adapter-currmacaddr, adapter-macaddr,
 -ETH_ALEN);
 + ether_addr_copy(adapter-currmacaddr,
 + adapter-macaddr);
   if (adapter-netdev)
 - memcpy(adapter-netdev-dev_addr, adapter-currmacaddr,
 -ETH_ALEN);
 + ether_addr_copy(adapter-netdev-dev_addr,
 + adapter-currmacaddr);
   }
   }

ETH_ALEN is defined as 6. It looks good, too.

./include/uapi/linux/if_ether.h
#define ETH_ALEN 6

 
 @@ -810,8 +810,8 @@ static int slic_mac_set_address(struct net_device
 *dev, void *ptr)
   if (!is_valid_ether_addr(addr-sa_data))
   return -EINVAL;
 
 - memcpy(dev-dev_addr, addr-sa_data, dev-addr_len);
 - memcpy(adapter-currmacaddr, addr-sa_data, dev-addr_len);
 + ether_addr_copy(dev-dev_addr, addr-sa_data);
 + ether_addr_copy(adapter-currmacaddr, addr-sa_data);

By the way, I am wondering if 'dev-addr_len' is 6 bytes.
Is there anyone who can confirm it?

If nobody can confirm 'dev-addr_len' is 6 bytes, it should
not be changed to 'ether_addr_copy()'.

Best regards,
Jingoo Han

 
   slic_config_set(adapter, true);
   return 0;
 @@ -2313,7 +2313,7 @@ static int slic_mcast_add_list(struct adapter
 *adapter, char *address)
   if (mcaddr == NULL)
   return 1;
 
 - memcpy(mcaddr-address, address, ETH_ALEN);
 + ether_addr_copy(mcaddr-address, address);
 
   mcaddr-next = adapter-mcastaddrs;
   adapter-mcastaddrs = mcaddr;
 --
 1.7.10.4

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