Lines Matching refs:elog

32 	ssize_t (*show)(struct elog_obj *elog, struct elog_attribute *attr,
34 ssize_t (*store)(struct elog_obj *elog, struct elog_attribute *attr,
100 struct elog_obj *elog;
103 elog = to_elog_obj(kobj);
108 return attribute->show(elog, attribute, buf);
116 struct elog_obj *elog;
119 elog = to_elog_obj(kobj);
124 return attribute->store(elog, attribute, buf, len);
134 struct elog_obj *elog;
136 elog = to_elog_obj(kobj);
137 kfree(elog->buffer);
138 kfree(elog);
163 struct elog_obj *elog = to_elog_obj(kobj);
166 if (!elog->buffer) {
167 elog->buffer = kzalloc(elog->size, GFP_KERNEL);
168 if (!elog->buffer)
171 opal_rc = opal_read_elog(__pa(elog->buffer),
172 elog->size, elog->id);
175 elog->id);
176 kfree(elog->buffer);
177 elog->buffer = NULL;
182 memcpy(buffer, elog->buffer + pos, count);
189 struct elog_obj *elog;
192 elog = kzalloc(sizeof(*elog), GFP_KERNEL);
193 if (!elog)
196 elog->kobj.kset = elog_kset;
198 kobject_init(&elog->kobj, &elog_ktype);
200 sysfs_bin_attr_init(&elog->raw_attr);
202 elog->raw_attr.attr.name = "raw";
203 elog->raw_attr.attr.mode = 0400;
204 elog->raw_attr.size = size;
205 elog->raw_attr.read = raw_attr_read;
207 elog->id = id;
208 elog->size = size;
209 elog->type = type;
211 elog->buffer = kzalloc(elog->size, GFP_KERNEL);
213 if (elog->buffer) {
214 rc = opal_read_elog(__pa(elog->buffer),
215 elog->size, elog->id);
218 elog->id);
219 kfree(elog->buffer);
220 elog->buffer = NULL;
224 rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
226 kobject_put(&elog->kobj);
231 * As soon as the sysfs file for this elog is created/activated there is
233 * acknowledge the elog before kobject_uevent() is called. If that
245 kobject_get(&elog->kobj);
246 rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
248 kobject_uevent(&elog->kobj, KOBJ_ADD);
251 kobject_put(&elog->kobj);
255 kobject_put(&elog->kobj);
313 elog_kset = kset_create_and_add("elog", NULL, opal_kobj);
315 pr_warn("%s: failed to create elog kset\n", __func__);
327 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "opal-elog", NULL);