mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 12:10:52 -04:00
Merge branch 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
* 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: pstore: make pstore write function return normal success/fail value pstore: change mutex locking to spin_locks pstore: defer inserting OOPS entries into pstore
This commit is contained in:
commit
1c39865151
6 changed files with 129 additions and 43 deletions
|
|
@ -933,7 +933,7 @@ static int erst_open_pstore(struct pstore_info *psi);
|
|||
static int erst_close_pstore(struct pstore_info *psi);
|
||||
static ssize_t erst_reader(u64 *id, enum pstore_type_id *type,
|
||||
struct timespec *time, struct pstore_info *psi);
|
||||
static u64 erst_writer(enum pstore_type_id type, unsigned int part,
|
||||
static int erst_writer(enum pstore_type_id type, u64 *id, unsigned int part,
|
||||
size_t size, struct pstore_info *psi);
|
||||
static int erst_clearer(enum pstore_type_id type, u64 id,
|
||||
struct pstore_info *psi);
|
||||
|
|
@ -1040,11 +1040,12 @@ out:
|
|||
return (rc < 0) ? rc : (len - sizeof(*rcd));
|
||||
}
|
||||
|
||||
static u64 erst_writer(enum pstore_type_id type, unsigned int part,
|
||||
static int erst_writer(enum pstore_type_id type, u64 *id, unsigned int part,
|
||||
size_t size, struct pstore_info *psi)
|
||||
{
|
||||
struct cper_pstore_record *rcd = (struct cper_pstore_record *)
|
||||
(erst_info.buf - sizeof(*rcd));
|
||||
int ret;
|
||||
|
||||
memset(rcd, 0, sizeof(*rcd));
|
||||
memcpy(rcd->hdr.signature, CPER_SIG_RECORD, CPER_SIG_SIZE);
|
||||
|
|
@ -1079,9 +1080,10 @@ static u64 erst_writer(enum pstore_type_id type, unsigned int part,
|
|||
}
|
||||
rcd->sec_hdr.section_severity = CPER_SEV_FATAL;
|
||||
|
||||
erst_write(&rcd->hdr);
|
||||
ret = erst_write(&rcd->hdr);
|
||||
*id = rcd->hdr.record_id;
|
||||
|
||||
return rcd->hdr.record_id;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int erst_clearer(enum pstore_type_id type, u64 id,
|
||||
|
|
@ -1165,7 +1167,7 @@ static int __init erst_init(void)
|
|||
goto err_release_erange;
|
||||
|
||||
buf = kmalloc(erst_erange.size, GFP_KERNEL);
|
||||
mutex_init(&erst_info.buf_mutex);
|
||||
spin_lock_init(&erst_info.buf_lock);
|
||||
if (buf) {
|
||||
erst_info.buf = buf + sizeof(struct cper_pstore_record);
|
||||
erst_info.bufsize = erst_erange.size -
|
||||
|
|
|
|||
Loading…
Reference in a new issue