lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 19 Apr 2015 13:34:36 -0700
From:	Joe Perches <joe@...ches.com>
To:	Yorick Rommers <yorick-rommers@...mail.com>
Cc:	lidza.louina@...il.com, markh@...pro.net,
	gregkh@...uxfoundation.org, driverdev-devel@...uxdriverproject.org,
	devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Staging: dgnc: fixed code style issue

On Sun, 2015-04-19 at 21:18 +0200, Yorick Rommers wrote:
> A patch for a line being too long (>80) in dgnc_mgmt.c,
> fixed by making a temporary value for dgnc_Board[brd], and removing
> an unnecessary typecast.

Hello Yorick.

The patch subject isn't very descriptive.

A better subject might be something like:
"staging: dgnc: Use a temporary for repeated dereferences"

> diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
[]
> @@ -143,12 +143,14 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
>  		di.info_bdnum = brd;
>  
>  		spin_lock_irqsave(&dgnc_Board[brd]->bd_lock, flags);
> +		struct dgnc_board *bd = dgnc_Board[brd];

Linux style doesn't declare variables in the middle
of a function,  Variables are only declared after
an open brace.

>  
>  		di.info_bdtype = dgnc_Board[brd]->dpatype;
>  		di.info_bdstate = dgnc_Board[brd]->dpastatus;

Please change all the references of dgnc_Board[brd]-> to bd->
in this function instead of just the long line ones.

>  		di.info_ioport = 0;
>  		di.info_physaddr = (ulong) dgnc_Board[brd]->membase;
> -		di.info_physsize = (ulong) dgnc_Board[brd]->membase - dgnc_Board[brd]->membase_end;
> +		di.info_physsize = bd->membase - bd->membase_end;
> +
>  		if (dgnc_Board[brd]->state != BOARD_FAILED)
>  			di.info_nports = dgnc_Board[brd]->nasync;
>  		else


Something like:

 drivers/staging/dgnc/dgnc_mgmt.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
index b13318a..215f37b 100644
--- a/drivers/staging/dgnc/dgnc_mgmt.c
+++ b/drivers/staging/dgnc/dgnc_mgmt.c
@@ -129,8 +129,8 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	case DIGI_GETBD:
 	{
 		int brd;
-
 		struct digi_info di;
+		struct dgnc_board *bd;
 
 		if (copy_from_user(&brd, uarg, sizeof(int)))
 			return -EFAULT;
@@ -142,19 +142,21 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
 		di.info_bdnum = brd;
 
-		spin_lock_irqsave(&dgnc_Board[brd]->bd_lock, flags);
+		bd = dgnc_Board[brd];
+
+		spin_lock_irqsave(&bd->bd_lock, flags);
 
-		di.info_bdtype = dgnc_Board[brd]->dpatype;
-		di.info_bdstate = dgnc_Board[brd]->dpastatus;
+		di.info_bdtype = bd->dpatype;
+		di.info_bdstate = bd->dpastatus;
 		di.info_ioport = 0;
-		di.info_physaddr = (ulong) dgnc_Board[brd]->membase;
-		di.info_physsize = (ulong) dgnc_Board[brd]->membase - dgnc_Board[brd]->membase_end;
-		if (dgnc_Board[brd]->state != BOARD_FAILED)
-			di.info_nports = dgnc_Board[brd]->nasync;
+		di.info_physaddr = bd->membase;
+		di.info_physsize = bd->membase - bd->membase_end;
+		if (bd->state != BOARD_FAILED)
+			di.info_nports = bd->nasync;
 		else
 			di.info_nports = 0;
 
-		spin_unlock_irqrestore(&dgnc_Board[brd]->bd_lock, flags);
+		spin_unlock_irqrestore(&bd->bd_lock, flags);
 
 		if (copy_to_user(uarg, &di, sizeof(di)))
 			return -EFAULT;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ