On Tue, Aug 23, 2016 at 08:05:26PM +0100, Robin Murphy wrote:
> In the final step of preparation for full generic configuration support,
> swap our fixed-size master_cfg for the generic iommu_fwspec. For the
> legacy DT bindings, the driver simply gets to act as its own 'firmware'.
> Farewell, arbitrary MAX_MASTER_STREAMIDS!
> 
> Signed-off-by: Robin Murphy <[email protected]>
> ---
>  drivers/iommu/arm-smmu.c | 139 
> ++++++++++++++++++++++++++---------------------
>  1 file changed, 77 insertions(+), 62 deletions(-)

[...]

>  static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device 
> *dev)
>  {
>       int ret;
> +     struct iommu_fwspec *fwspec = dev_iommu_fwspec(dev);
> +     struct arm_smmu_device *smmu = fwspec_smmu(fwspec);
>       struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
> -     struct arm_smmu_master_cfg *cfg = dev->archdata.iommu;
>  
> -     if (!cfg) {
> +     if (!fwspec || fwspec->iommu_ops != &arm_smmu_ops) {

As mentioned off-list, you have already dereferenced fwspec before this
NULL check.

Will
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to