diff options
Diffstat (limited to 'fs/pstore/ram.c')
| -rw-r--r-- | fs/pstore/ram.c | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index f883e7e7430..288f068740f 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -167,12 +167,16 @@ static ssize_t ramoops_pstore_read(u64 *id, enum pstore_type_id *type,  static size_t ramoops_write_kmsg_hdr(struct persistent_ram_zone *prz)  {  	char *hdr; -	struct timeval timestamp; +	struct timespec timestamp;  	size_t len; -	do_gettimeofday(×tamp); +	/* Report zeroed timestamp if called before timekeeping has resumed. */ +	if (__getnstimeofday(×tamp)) { +		timestamp.tv_sec = 0; +		timestamp.tv_nsec = 0; +	}  	hdr = kasprintf(GFP_ATOMIC, RAMOOPS_KERNMSG_HDR "%lu.%lu\n", -		(long)timestamp.tv_sec, (long)timestamp.tv_usec); +		(long)timestamp.tv_sec, (long)(timestamp.tv_nsec / 1000));  	WARN_ON_ONCE(!hdr);  	len = hdr ? strlen(hdr) : 0;  	persistent_ram_write(prz, hdr, len); @@ -291,9 +295,8 @@ static void ramoops_free_przs(struct ramoops_context *cxt)  	kfree(cxt->przs);  } -static int __devinit ramoops_init_przs(struct device *dev, -				       struct ramoops_context *cxt, -				       phys_addr_t *paddr, size_t dump_mem_sz) +static int ramoops_init_przs(struct device *dev, struct ramoops_context *cxt, +			     phys_addr_t *paddr, size_t dump_mem_sz)  {  	int err = -ENOMEM;  	int i; @@ -336,10 +339,9 @@ fail_prz:  	return err;  } -static int __devinit ramoops_init_prz(struct device *dev, -				      struct ramoops_context *cxt, -				      struct persistent_ram_zone **prz, -				      phys_addr_t *paddr, size_t sz, u32 sig) +static int ramoops_init_prz(struct device *dev, struct ramoops_context *cxt, +			    struct persistent_ram_zone **prz, +			    phys_addr_t *paddr, size_t sz, u32 sig)  {  	if (!sz)  		return 0; @@ -367,7 +369,7 @@ static int __devinit ramoops_init_prz(struct device *dev,  	return 0;  } -static int __devinit ramoops_probe(struct platform_device *pdev) +static int ramoops_probe(struct platform_device *pdev)  {  	struct device *dev = &pdev->dev;  	struct ramoops_platform_data *pdata = pdev->dev.platform_data;  |