Messages in this thread | | | Date | Tue, 1 Dec 2015 12:44:19 -0700 | From | Jason Gunthorpe <> | Subject | Re: [PATCH v2 2/3] tpm_tis: Use devm_ioremap_resource |
| |
On Tue, Dec 01, 2015 at 08:22:40PM +0100, Uwe Kleine-König wrote:
> here, which IMHO reads nicer and maybe is even more efficient (I don't > know much about x86).
Sure
> > + if (resource_size(&tpm_info.res) == 0) > > + return -ENODEV; > > + > > Does this result in an error message from the upper layers?
I think so, yes. The probe will fail which causes the driver core to report a message.
The scenario this triggers is if the acpi stuff doesn't have a mem resource, which is a firmware bug, I think. It could get a dedicated print if that is what you are thinking?
- if (resource_size(&tpm_info.res) == 0) + if (tpm_info.res.flags == 0) { + dev_err(&pdev->dev, FW_BUG "no memory resource defined\n"); return -ENODEV; + } if (is_itpm(acpi_dev)) itpm = true;
[resource_size is wrong as well since it will return 1 for 0'd struct resource, sigh..]
Previously it would try to call devm_ioremap with start/len=0 as the range which should also fails in broadly the same way. So this is just moving the existing failure up.
Something was needed because the change to struct resource means the new code would call devm_ioremap_resource with a 0'd resource struct, which is not as safe as start/len=0 as before.
Jason
| |