All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kent Yoder <key@linux.vnet.ibm.com>
To: Mathias LEBLANC <Mathias.LEBLANC@st.com>
Cc: "Peter Hüwe" <PeterHuewe@gmx.de>,
	"Kent Yoder" <shpedoikal@gmail.com>,
	"Jean-Luc BLANC" <jean-luc.blanc@st.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Rajiv Andrade" <mail@srajiv.net>,
	"tpmdd-devel@lists.sourceforge.net"
	<tpmdd-devel@lists.sourceforge.net>,
	"Sirrix@jasper.es" <Sirrix@jasper.es>
Subject: Re: [tpmdd-devel] [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 3.x.x
Date: Wed, 5 Dec 2012 11:13:51 -0600	[thread overview]
Message-ID: <20121205171350.GD21050@ennui.austin.ibm.com> (raw)
In-Reply-To: <35286B1AE75A7C47BFF0870081A31B4B3A9B64E89C@SAFEX1MAIL4.st.com>

On Wed, Dec 05, 2012 at 05:11:40PM +0100, Mathias LEBLANC wrote:
> Hi Peter,
> 
> Thanks for your contribution.
> I have modified the driver files name and descriptions.
> Regarding the warnings, it's strange. 
> 
> @Kent, could you confirm that you have the same?

  Yep, I see these too. They're a side effect of storing the i2c_client
pointer in vendor->iobase, which is __iomem.  The i2c_client struct
isn't __iomem at all though, writes in the i2c subsystem are done
through client->addr.  So i2c_client should really be stored somewhere
else, no?

  vendor->data seems like the right place.  I'm on the hook to update
the other drivers with a macro for accessing vendor->data in tpm.h.
I'll make these updates and send out a patch.

Kent

> Regards,
> 
> Mathias Leblanc
> 
> -----Original Message-----
> From: Peter Hüwe [mailto:PeterHuewe@gmx.de] 
> Sent: 29 November, 2012 01:05
> To: Mathias LEBLANC
> Cc: Kent Yoder; Kent Yoder; Jean-Luc BLANC; linux-kernel@vger.kernel.org; Rajiv Andrade; tpmdd-devel@lists.sourceforge.net; Sirrix@jasper.es
> Subject: Re: [tpmdd-devel] [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 3.x.x
> 
> Hi Mathias,
> 
> please note: 
> I'm writing this email on behalf of myself only and nobody else, especially not my employer - and I'm doing this in my spare time.
> I'm working for a direct competitor of yours, but I'm not using any knowledge that I've picked up at work or that is considered secret in any way.
> I have a personal interest in the TPM subsystem and want to keep it as clean as possible.
> So please don't see my review as something negative, but rather something positive.
> 
> 
> Am Mittwoch, 28. November 2012, 18:48:57 schrieb Mathias LEBLANC:
> > Ok, so i have patch the ST33 I2C driver on this branch and correct 
> > some errors. I send you the patch for the kernel 3.x I have no error 
> > on compilation, tell me if you have problems.
> > I have implemented the tpm_do_selftest function to get the tpm ready, 
> > but it can be removed ________________________________________
> 
> Unfortunately you attached the patch instead of sending it in plaintext which is the usual practice -> care to resend in plain text? 
> Makes the review far easier.
> 
> (btw.: Please also have a look at
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingPatches;hb=HEAD
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmitChecklist;hb=HEAD
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/SubmittingDrivers;hb=HEAD
> which describes the process in detail)
> 
> When you resend the patch, can you please include the "metadata" as well - i.e. your modifications to the Kconfig / Makefile etc.
> I do not see a reason why to keep it in a seperate patch.
> 
> 
> 
> 
> I tried the patch you've posted and it applies cleanly and now (finally) compiles as well - so now I can start with my review:
> 
> = The name =
> There's already one i2c tpm driver in the tree, so maybe it would be a good idea to keep the naming scheme consistent? 
> -> How about tpm_i2c_stm_st33.c ?
> Eventually this is something Kent as a maintainer has to decice - but I would really like to see the name change.
> I hope we can eventually consolidate all the 'tis' based drivers.
> 
> 
> = Compiling / License =
> When compiling the driver I get the following warning
>    WARNING: modpost: missing MODULE_LICENSE() in /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.o
> Please include the appropriate MODULE_LICENSE as my kernel otherwise gets tainted by your driver.
> 
> Also this:
> + * STMicroelectronics TPM I2C Linux driver for TPM ST33ZP24
> + * Copyright (C) 2009, 2010  STMicroelectronics
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> 
> is not possible afaik - kernel code must be under GPL v2 _only_ without the "or (at your option) any later version." addition.
> 
> 
> 
> = sparse warnings =
> When running sparse against your code I get the following warnings:
>  make -C /data/data-old/linux-2.6/ M=`pwd`  modules C=1
> make: Entering directory `/data/data-old/linux-2.6'
>   CHECK   /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:167:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:187:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:180:5: warning: symbol 'wait_for_serirq_timeout' was not declared. Should it be static?
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:210:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:227:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:245:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:269:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:307:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:324:38: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:394:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:424:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:456:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:531:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:672:29: warning: incorrect type in assignment (different address spaces)
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:672:29:    expected void [noderef] <asn:2>*iobase
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:672:29:    got struct i2c_client *client
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:781:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:818:19: warning: cast removes address space of expression
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:841:19: warning: cast removes address space of expression
>   CC [M]  /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.o
>   Building modules, stage 2.
>   MODPOST 8 modules
> 
> 
> Please fix these if applicable - otherwise you'll probably get a friendly reminder to do so by fengguang's build test ;)
> 
> 
> = smatch =
> Same applies to smatch
> make -C /data/data-old/linux-2.6/ M=`pwd`  modules C=1 CHECK=smatch
> make: Entering directory `/data/data-old/linux-2.6'
>   CHECK   /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:535 tpm_stm_i2c_recv() warn: variable dereferenced before check 'chip' (see line 531)
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:748 tpm_st33_i2c_probe() warn: variable dereferenced before check 'platform_data' (see line 659)
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:848 tpm_st33_i2c_pm_resume() warn: should this be a bitwise op?
> /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.c:848 tpm_st33_i2c_pm_resume() warn: should this be a bitwise op?
>   CC [M]  /data/data-old/linux-2.6/drivers/char/tpm/tpm_stm_st33_i2c.o
> 
> Please fix these if applicable - otherwise you'll probably get a friendly reminder to do so by fengguang's build test ;)
> 
> = checkpatch =
> Also please run .../scripts/checkpatch.pl -strict before submission - not everything that is reported might be applicable, but quite often it is.
> 
> 
> 
> Looking forward to your v2 so I can give a more detailed code review of your code.
> 
> 
> Thanks,
> Peter
> 
> 


  reply	other threads:[~2012-12-05 17:15 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-19 22:15 [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 3.x.x Mathias Leblanc
2012-11-19 22:15 ` [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 2.6 Mathias Leblanc
2012-11-26 17:46 ` [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 3.x.x Kent Yoder
2012-11-27  8:44   ` Mathias LEBLANC
2012-11-27 14:48     ` [tpmdd-devel] " Kent Yoder
2012-11-28  8:54       ` Mathias LEBLANC
2012-11-28 15:31         ` Kent Yoder
2012-11-28 17:48           ` Mathias LEBLANC
2012-11-28 19:04             ` Kent Yoder
2012-11-29  0:04             ` Peter Hüwe
2012-12-05 16:11               ` Mathias LEBLANC
2012-12-05 17:13                 ` Kent Yoder [this message]
2012-12-05 17:45                   ` Kent Yoder
2012-12-05 18:07                     ` Kent Yoder
2012-12-05 20:20                       ` Peter Hüwe
2012-12-05 21:00                         ` Kent Yoder
2012-12-05 21:39                           ` Peter Hüwe
2012-12-05 21:14                       ` Peter Hüwe
2012-12-05 23:09                         ` Kent Yoder
2012-12-06  0:10                           ` Peter Hüwe
2012-12-06 15:06                             ` Kent Yoder
2012-12-08  4:00                               ` [tpmdd-devel] [PATCH 1/1] TPM: STMicroelectronics ST33 I2C KERNEL 3.x.x OOPS! Peter Hüwe
     [not found]                                 ` <20130108172053.GA11223@ennui.austin.ibm.com>
2013-01-09 14:31                                   ` Mathias LEBLANC
2013-01-09 19:41                                     ` Peter Hüwe
2013-01-22 23:30                                       ` Kent Yoder
2012-12-06  0:20                           ` [PATCH] char/tpm: Use struct dev_pm_ops for power management Peter Huewe
2012-12-06 15:07                             ` Kent Yoder
2012-12-10 18:11                               ` Mathias LEBLANC
2012-12-06 16:27                             ` Kent Yoder
2012-12-08  3:55                               ` Peter Hüwe

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=20121205171350.GD21050@ennui.austin.ibm.com \
    --to=key@linux.vnet.ibm.com \
    --cc=Mathias.LEBLANC@st.com \
    --cc=PeterHuewe@gmx.de \
    --cc=Sirrix@jasper.es \
    --cc=jean-luc.blanc@st.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mail@srajiv.net \
    --cc=shpedoikal@gmail.com \
    --cc=tpmdd-devel@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.