return r;
 }
 
+static int flic_has_attr(struct kvm_device *dev,
+                            struct kvm_device_attr *attr)
+{
+       switch (attr->group) {
+       case KVM_DEV_FLIC_GET_ALL_IRQS:
+       case KVM_DEV_FLIC_ENQUEUE:
+       case KVM_DEV_FLIC_CLEAR_IRQS:
+       case KVM_DEV_FLIC_APF_ENABLE:
+       case KVM_DEV_FLIC_APF_DISABLE_WAIT:
+       case KVM_DEV_FLIC_ADAPTER_REGISTER:
+       case KVM_DEV_FLIC_ADAPTER_MODIFY:
+               return 0;
+       }
+       return -ENXIO;
+}
+
 static int flic_create(struct kvm_device *dev, u32 type)
 {
        if (!dev)
        .name = "kvm-flic",
        .get_attr = flic_get_attr,
        .set_attr = flic_set_attr,
+       .has_attr = flic_has_attr,
        .create = flic_create,
        .destroy = flic_destroy,
 };