public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tim Bird <tim.bird@am.sony.com>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: Brian Swetland <swetland@google.com>,
	linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] staging: android: logger: Allocate logs dynamically at boot
Date: Mon, 7 May 2012 11:50:06 -0700	[thread overview]
Message-ID: <4FA8195E.2010706@am.sony.com> (raw)
In-Reply-To: <20120504233707.GA24213@kroah.com>

On 05/04/2012 04:37 PM, Greg KH wrote:
> On Fri, May 04, 2012 at 04:33:16PM -0700, Tim Bird wrote:
>> +#define MAX_LOGS	5
>> +struct logger_log *logs_array[MAX_LOGS];
> 
> You are going to make this a list and not a static array in the
> future, right?

Would that be better?  The for-loop is IMHO simpler than a
list walk for finding matches.  I anticipate that the size of
this array should never (famous last words) be bigger than about
20 entries, even in the dynamic-allocation-per-application
case.  And that's a ways off in implementation.

I'll be happy to switch to a linked list once it looks like we're
going to have more than 5 entries.  Or I can switch to a linked
list now if you think it's better form to code for the longer-term
anticipated features.

Not a big deal to me either way.

> 
>> -static int __init init_log(struct logger_log *log)
>> +static int __init add_log(struct logger_log *log)
>>  {
>> -	int ret;
>> +	int i;
>>
>> +	for (i = 0; i < MAX_LOGS; i++) {
>> +		if (logs_array[i] == 0) {
>> +			logs_array[i] = log;
>> +			return 0;
>> +		}
>> +	}
>> +	return -1;
>> +}
> 
> I see you didn't run your patch through sparse :(

Indeed - shame on me. :-(

> Care to fix up the sparse warnings and resend?
OK - this patch has 2 sparse issues, and there were
2 already in the code.  Do you want me to send the
other 2 sparse fixes as an independent patch, or could
I cheat and throw them in this one?

Below is what the fixes look like. (BTW - these are
formatted for human review but not for mainline submission.)

Thanks for your help.
 -- Tim

diff --git a/drivers/staging/android/logger.c b/drivers/staging/android/logger.c
index fa5fd71..9f4ed84 100644
--- a/drivers/staging/android/logger.c
+++ b/drivers/staging/android/logger.c
@@ -61,7 +61,7 @@ struct logger_reader {
 };

 /* logger_offset - returns index 'n' into the log via (optimized) modulus */
-size_t logger_offset(struct logger_log *log, size_t n)
+static size_t logger_offset(struct logger_log *log, size_t n)
 {
        return n & (log->size-1);
 }
@@ -349,7 +349,7 @@ static ssize_t do_write_log_from_user(struct logger_log *log,
  * writev(), and aio_write(). Writes are our fast path, and we try to optimize
  * them above all else.
  */
-ssize_t logger_aio_write(struct kiocb *iocb, const struct iovec *iov,
+static ssize_t logger_aio_write(struct kiocb *iocb, const struct iovec *iov,
                         unsigned long nr_segs, loff_t ppos)
 {
        struct logger_log *log = file_get_log(iocb->ki_filp);
@@ -566,7 +566,7 @@ static const struct file_operations logger_fops = {
 };

 #define MAX_LOGS       5
-struct logger_log *logs_array[MAX_LOGS];
+static struct logger_log *logs_array[MAX_LOGS];

 static struct logger_log *get_log_from_minor(int minor)
 {
@@ -584,7 +584,7 @@ static int __init add_log(struct logger_log *log)
        int i;

        for (i = 0; i < MAX_LOGS; i++) {
-               if (logs_array[i] == 0) {
+               if (logs_array[i] == NULL) {
                        logs_array[i] = log;
                        return 0;
                }

=============================
Tim Bird
Architecture Group Chair, CE Workgroup of the Linux Foundation
Senior Staff Engineer, Sony Network Entertainment
=============================


  reply	other threads:[~2012-05-07 18:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-04 23:33 [PATCH] staging: android: logger: Allocate logs dynamically at boot Tim Bird
2012-05-04 23:37 ` Greg KH
2012-05-07 18:50   ` Tim Bird [this message]
2012-05-07 18:58     ` Greg KH
2012-05-07 19:14       ` Tim Bird
2012-05-07 19:56         ` Greg KH
2012-05-07 22:13     ` Brian Swetland
2012-05-07 23:40       ` Tim Bird

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FA8195E.2010706@am.sony.com \
    --to=tim.bird@am.sony.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=swetland@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox