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);
164 struct elog_obj *elog = to_elog_obj(kobj);
167 if (!elog->buffer) {
168 elog->buffer = kzalloc(elog->size, GFP_KERNEL);
169 if (!elog->buffer)
172 opal_rc = opal_read_elog(__pa(elog->buffer),
173 elog->size, elog->id);
176 elog->id);
177 kfree(elog->buffer);
178 elog->buffer = NULL;
183 memcpy(buffer, elog->buffer + pos, count);
190 struct elog_obj *elog;
193 elog = kzalloc(sizeof(*elog), GFP_KERNEL);
194 if (!elog)
197 elog->kobj.kset = elog_kset;
199 kobject_init(&elog->kobj, &elog_ktype);
201 sysfs_bin_attr_init(&elog->raw_attr);
203 elog->raw_attr.attr.name = "raw";
204 elog->raw_attr.attr.mode = 0400;
205 elog->raw_attr.size = size;
206 elog->raw_attr.read = raw_attr_read;
208 elog->id = id;
209 elog->size = size;
210 elog->type = type;
212 elog->buffer = kzalloc(elog->size, GFP_KERNEL);
214 if (elog->buffer) {
215 rc = opal_read_elog(__pa(elog->buffer),
216 elog->size, elog->id);
219 elog->id);
220 kfree(elog->buffer);
221 elog->buffer = NULL;
225 rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
227 kobject_put(&elog->kobj);
232 * As soon as the sysfs file for this elog is created/activated there is
234 * acknowledge the elog before kobject_uevent() is called. If that
246 kobject_get(&elog->kobj);
247 rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
249 kobject_uevent(&elog->kobj, KOBJ_ADD);
252 kobject_put(&elog->kobj);
256 kobject_put(&elog->kobj);
314 elog_kset = kset_create_and_add("elog", NULL, opal_kobj);
316 pr_warn("%s: failed to create elog kset\n", __func__);
328 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "opal-elog", NULL);