- 13 6月, 2012 2 次提交
-
-
由 Rajiv Andrade 提交于
tpm_do_selftest() attempts to read a PCR in order to decide if one can rely on the TPM being used or not. The function that's used by __tpm_pcr_read() does not expect the TPM to be disabled or deactivated, and if so, reports an error. It's fine if the TPM returns this error when trying to use it for the first time after a power cycle, but it's definitely not if it already returned success for a previous attempt to read one of its PCRs. The tpm_do_selftest() was modified so that the driver only reports this return code as an error when it really is. Reported-and-tested-by: NPaul Bolle <pebolle@tiscali.nl> Cc: Stable <stable@vger.kernel.org> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Rajiv Andrade 提交于
Usual contact update, Debora Velarde role resign, and the new co-maintainer inclusion, Kent Yoder. He's accepted to contribute more actively to this driver's maintainership given the current maintainer's slight career change that will affect his contribution time. [Replacing Debora Velarde by Kent Yoder] Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
- 05 3月, 2012 1 次提交
-
-
由 Jiri Kosina 提交于
cleanup_tis() -> tpm_remove_hardware() -> syncrhonize_rcu() is being called in an atomic context (tis_lock spinlock held), which is not allowed. Convert tis_lock to mutex. Signed-off-by: NJiri Kosina <jkosina@suse.cz> Tested-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Acked-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
- 15 2月, 2012 3 次提交
-
-
由 Tim Gardner 提交于
Commit 3321c07a correctly clears the TPM buffer if the user specified read length is >= the TPM buffer length. However, if the user specified read length is < the TPM buffer length, then part of the TPM buffer is left uncleared. Reported-by: NSeth Forshee <seth.forshee@canonical.com> Cc: Debora Velarde <debora@linux.vnet.ibm.com> Cc: Rajiv Andrade <srajiv@linux.vnet.ibm.com> Cc: Marcel Selhorst <m.selhorst@sirrix.com> Cc: tpmdd-devel@lists.sourceforge.net Cc: stable@vger.kernel.org Signed-off-by: NTim Gardner <tim.gardner@canonical.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Commit 90ab5ee9 changed the itpm module parameter from int to bool. Some other changes need to be done to clean up after this change. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Cc: Mauro Carvalho Chehab <mchehab@redhat.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Detect iTPMs through the vendor ID on the hardware interface and only probe the device if the manufacturer is found to be Intel. This obsoletes a previously added delay necessary for some TPMs but not iTPMs. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
- 20 1月, 2012 1 次提交
-
-
由 Fabio Estevam 提交于
Fix the following build warning: warning: (IMA) selects TCG_TPM which has unmet direct dependencies (HAS_IOMEM && EXPERIMENTAL) Suggested-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Cc: <stable@vger.kernel.org> Signed-off-by: NMimi Zohar <zohar@us.ibm.com>
-
- 19 1月, 2012 1 次提交
-
-
由 Stefan Berger 提交于
This patch fixes an (ACPI S3) suspend regression introduced in commit 68d6e671 ("tpm: Introduce function to poll for result of self test") and occurring with an Infineon TPM and tpm_tis and tpm_infineon drivers active. The suspend problem occurred if the TPM was disabled and/or deactivated and therefore the TPM_PCRRead checking the result of the (asynchronous) self test returned an error code which then caused the tpm_tis driver to become inactive and this then seemed to have negatively influenced the suspend support by the tpm_infineon driver... Besides that the tpm_tis drive may stay active even if the TPM is disabled and/or deactivated. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Tested-by: NRafael J. Wysocki <rjw@sisk.pl> Acked-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 13 1月, 2012 1 次提交
-
-
由 Rusty Russell 提交于
module_param(bool) used to counter-intuitively take an int. In fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy trick. It's time to remove the int/unsigned int option. For this version it'll simply give a warning, but it'll break next kernel version. Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
-
- 16 11月, 2011 9 次提交
-
-
由 Rajiv Andrade 提交于
It's incorrect to assume that buffers returned by the TPM 10 bytes long are always error reports. This patches parses the error field in its header instead. The error report is now being printed using dev_err() instead of dev_dbg(), making it easier for users to provide more detailed bug reports. Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Rajiv Andrade 提交于
A previous commit removed its PNP dependency, that in fact wasn't necessary, but also allowed it be built for other architectures not supported by it. This then caused kernel oops on PPC based machines. I'm placing a x86 dependency back correctly. Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Rajiv Andrade 提交于
Moved wait_for_stat to tpm.c so that other drivers can use it. Also renamed it to avoid future namespace conflicts. Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Rajiv Andrade 提交于
Moved from using tpm_tis_status() to the vendor specific one in wait_for_stat(). This way other TPM drivers can use it instead of reimplementing another. Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch adds a delay after aborting a command. Some TPMs need this and will not process the subsequent command correctly otherwise. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Check the return code from getting the TPM's timeouts and durations and reject the driver if they could not be read. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch introduces a function that runs the TPM_ContinueSelfTest() function and then polls the TPM to check whether it finished the selftest and can receive new commands. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Cleanup the tpm_continue_selftest function. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Have the tpm_get_timeouts function return an error code. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
- 23 9月, 2011 4 次提交
-
-
由 Peter Huewe 提交于
Since the buffer might contain security related data it might be a good idea to zero the buffer after we have copied it to userspace. This got assigned CVE-2011-1162. Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Cc: Stable Kernel <stable@kernel.org> Signed-off-by: NJames Morris <jmorris@namei.org>
-
由 Peter Huewe 提交于
This patch changes the call of tpm_transmit by supplying the size of the userspace buffer instead of TPM_BUFSIZE. This got assigned CVE-2011-1161. [The first hunk didn't make sense given one could expect way less data than TPM_BUFSIZE, so added tpm_transmit boundary check over bufsiz instead The last parameter of tpm_transmit() reflects the amount of data expected from the device, and not the buffer size being supplied to it. It isn't ideal to parse it directly, so we just set it to the maximum the input buffer can handle and let the userspace API to do such job.] Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Cc: Stable Kernel <stable@kernel.org> Signed-off-by: NJames Morris <jmorris@namei.org>
-
由 Axel Lin 提交于
platform_device_unregister() will release all resources and remove it from the subsystem, then drop reference count by calling platform_device_put(). We should not call kfree(pdev) after platform_device_unregister(pdev). Signed-off-by: NAxel Lin <axel.lin@gmail.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Signed-off-by: NJames Morris <jmorris@namei.org>
-
由 Geert Uytterhoeven 提交于
On m68k, I get: drivers/char/tpm/tpm_atmel.h: In function ‘atmel_get_base_addr’: drivers/char/tpm/tpm_atmel.h:129: error: implicit declaration of function ‘ioport_map’ drivers/char/tpm/tpm_atmel.h:129: warning: return makes pointer from integer without a cast The code in tpm_atmel.h supports PPC64 (using the device tree and ioremap()) and "anything else" (using ioport_map()). However, ioportmap() is only available on platforms that set HAS_IOPORT. Although PC64 seems to have HAS_IOPORT, a "depends on HAS_IOPORT" should work, but I think it's better to expose the special PPC64 handling explicit using "depends on PPC64 || HAS_IOPORT". Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com> Signed-off-by: NJames Morris <jmorris@namei.org>
-
- 24 8月, 2011 1 次提交
-
-
由 Stefan Berger 提交于
Suppress the output in the 'durations' sysfs entry if they were not read during driver initialization. This is similar to other sysfs entries that return nothing if for some reason sending the commands to the TPM fails. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NJames Morris <jmorris@namei.org>
-
- 04 8月, 2011 1 次提交
-
-
由 Randy Dunlap 提交于
Fix tpm_tis.c build when CONFIG_ACPI is not enabled by providing a stub function. Fixes many build errors/warnings: drivers/char/tpm/tpm_tis.c:89: error: dereferencing pointer to incomplete type drivers/char/tpm/tpm_tis.c:89: warning: type defaults to 'int' in declaration of 'type name' drivers/char/tpm/tpm_tis.c:89: error: request for member 'list' in something not a structure or union ... Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net> Cc: Leendert van Doorn <leendert@watson.ibm.com> Cc: James Morris <jmorris@namei.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 26 7月, 2011 1 次提交
-
-
由 Stefan Berger 提交于
This patch fixes kernel bugzilla 34572. https://bugzilla.kernel.org/show_bug.cgi?id=34572Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Reported-by: NWitold Baryluk <baryluk@smp.if.uj.edu.pl> Tested-by: NWitold Baryluk <baryluk@smp.if.uj.edu.pl> Signed-off-by: NJames Morris <jmorris@namei.org>
-
- 22 7月, 2011 1 次提交
-
-
由 Stefan Berger 提交于
This patch moves the tpm_tis_reenable_interrupts function out of the CONFIG_PNP-surrounded #define block. This solves a compilation error in case CONFIG_PNP is not defined. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Reported-by: NRandy Dunlap <rdunlap@xenotime.net> Acked-by: NRandy Dunlap <rdunlap@xenotime.net> Signed-off-by: NJames Morris <jmorris@namei.org>
-
- 21 7月, 2011 1 次提交
-
-
由 Stefan Berger 提交于
The is_itpm() function is only accessed from a block surrounded by #ifdef CONFIG_PNP. Therefore, also surround it with #ifdef CONFIG_PNP and remove the #else branch causing the warning. http://lxr.linux.no/#linux+v2.6.39/drivers/char/tpm/tpm_tis.c#L622 v2: - fixes a previous typo Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Reported-by: NRandy Dunlap <rdunlap@xenotime.net> Signed-off-by: NJames Morris <jmorris@namei.org>
-
- 13 7月, 2011 12 次提交
-
-
由 Stefan Berger 提交于
This patch fixes a typo. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch introduces a function for automatic probing for the Intel iTPM STS_DATA_EXPECT flaw. The patch splits the current tpm_tis_send function into 2 parts where the 1st part is now called tpm_tis_send_data() and merely sends the data to the TPM. This function is then used for probing. The new tpm_tis_send function now first calls tpm_tis_send_data and if that succeeds has the TPM process the command and waits until the response is there. The probing for the Intel iTPM is only invoked if the user has not passed itpm=1 as parameter for the module *or* if such a TPM was detected via ACPI. Previously it was necessary to pass itpm=1 when also passing force=1 to the module when doing a 'modprobe'. This function is more general than the ACPI test function and the function relying on ACPI could probably be removed. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch fixes several aspects of the probing for interrupts. This patch reads the TPM's timeouts before probing for the interrupts. The tpm_get_timeouts() function is invoked in polling mode and gets the proper timeouts from the TPM so that we don't need to fall back to 2 minutes timeouts for short duration commands while the interrupt probing is happening. This patch introduces a variable probed_irq into the vendor structure that gets the irq number if an interrupt is received while the the tpm_gen_interrupt() function is run in polling mode during interrupt probing. Previously some parts of tpm_gen_interrupt() were run in polling mode, then the irq variable was set in the interrupt handler when an interrupt was received and execution of tpm_gen_interrupt() ended up switching over to interrupt mode. tpm_gen_interrupt() execution ended up on an event queue where it eventually timed out since the probing handler doesn't wake any queues. Before calling into free_irq() clear all interrupt flags that may have been set by the TPM. The reason is that free_irq() will call into the probing interrupt handler and may otherwise fool us into thinking that a real interrupt happened (because we see the flags as being set) while the TPM's interrupt line is not even connected to anything on the motherboard. This solves a problem on one machine I did testing on (Thinkpad T60). If a TPM claims to use a specifc interrupt, the probing is done as well to verify that the interrupt is actually working. If a TPM indicates that it does not use a specific interrupt (returns '0'), probe all interrupts from 3 to 15. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch delays the (ACPI S3) suspend while the TPM is busy processing a command and the TPM TIS driver is run in interrupt mode. This is the same behavior as we already have it for the TPM TIS driver in polling mode. Reasoning: Some of the TPM's commands advance the internal state of the TPM. An example would be the extending of one of its PCR registers. Upper layers, such as IMA or TSS (TrouSerS), would certainly want to be sure that the command succeeded rather than getting an error code (-62 = -ETIME) that may not give a conclusive answer as for what reason the command failed. Reissuing such a command would put the TPM into the wrong state, so waiting for it to finish is really the only option. The downside is that some commands (key creation) can take a long time and actually prevent the machine from entering S3 at all before the 20 second timeout of the power management subsystem arrives. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch makes sure that if the TPM TIS interface is run in interrupt mode (rather than polling mode) that all interrupts are enabled in the TPM's interrupt enable register after a resume from ACPI S3 suspend. The registers may either have been cleared by the TPM loosing its state during device sleep or by the BIOS leaving the TPM in polling mode (after sending a command to the TPM for starting it up again) You may want to check if your TPM runs with interrupts by doing cat /proc/interrupts | grep -i tpm and see whether there is an entry or otherwise for it to use interrupts: modprobe tpm_tis interrupts=1 [add 'itpm=1' for Intel TPM ] v2: - the patch was adapted to work with the pnp and platform driver implementations in tpm_tis.c Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
This patch fixes the TPM's pubek sysfs entry that is accessible as long as the TPM doesn't have an owner. It was necessary to shift the access to the data by -10 -- the first byte immediately follows the 10 byte header. The line data = tpm_cmd.params.readpubek_out_buffer; sets it at the offset '10' in the packet, so we can read the data array starting at offset '0'. Before: Algorithm: 00 0C 00 00 Encscheme: 08 00 Sigscheme: 00 00 Parameters: 00 00 00 00 01 00 AC E2 5E 3C A0 78 Modulus length: -563306801 Modulus: 28 21 08 0F 82 CD F2 B1 E7 49 F7 74 70 BE 59 8C 43 78 B1 24 EA 52 E2 FE 52 5C 3A 12 3B DC 61 71 [...] After: Algorithm: 00 00 00 01 Encscheme: 00 03 Sigscheme: 00 01 Parameters: 00 00 08 00 00 00 00 02 00 00 00 00 Modulus length: 256 Modulus: AC E2 5E 3C A0 78 DE 6C 9E CF 28 21 08 0F 82 CD F2 B1 E7 49 F7 74 70 BE 59 8C 43 78 B1 24 EA 52 [...] Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Display the TPM's interface timeouts in a 'timeouts' sysfs entry. Display the entries as having been adjusted when they were scaled due to their values being reported in milliseconds rather than microseconds. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Adjust the interface timeouts if they are found to be too small, i.e., if they are returned in milliseconds rather than microseconds as we heared from Infineon that some (old) Infineon TPMs do. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
The TPM driver currently discards the interface timeout values returned from the TPM. The check of the response packet needs to consider that the return_code field is 0 on success and the size of the expected packet is equivalent to the header size + u32 length indicator for the TPM_GetCapability() result + 4 interface timeout indicators of type u32. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Display the TPM's command timeouts in a 'durations' sysfs entry. Display the entries as having been adjusted when they were scaled due to their values being reported in milliseconds rather than microseconds. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Tested-by: NGuillaume Chazarain <guichaz@gmail.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
Adjust the durations if they are found to be too small, i.e., if they are returned in milliseconds rather than microseconds as some Infineon TPMs are reported to do. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
由 Stefan Berger 提交于
The TPM driver currently discards the durations values returned from the TPM. The check of the response packet needs to consider that the return_code field is 0 on success and the size of the expected packet is equivalent to the header size + u32 length indicator for the TPM_GetCapability() result + 3 timeout indicators of type u32. v4: - sysfs entry 'durations' is now a patch of its own - the work-around for TPMs reporting durations in milliseconds is now in a patch of its own v3: - sysfs entry now called 'durations' to resemble TPM-speak (previously was called 'timeouts') v2: - adjusting all timeouts for TPM devices reporting timeouts in msec rather than usec - also displaying in sysfs whether the timeouts are 'original' or 'adjusted' Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com> Tested-by: NGuillaume Chazarain <guichaz@gmail.com> Signed-off-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
-
- 30 3月, 2011 1 次提交
-
-
由 Peter Huewe 提交于
This patch fixes information leakage to the userspace by initializing the data buffer to zero. Reported-by: NPeter Huewe <huewe.external@infineon.com> Signed-off-by: NPeter Huewe <huewe.external@infineon.com> Signed-off-by: NMarcel Selhorst <m.selhorst@sirrix.com> [ Also removed the silly "* sizeof(u8)". If that isn't 1, we have way deeper problems than a simple multiplication can fix. - Linus ] Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-