Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 98945
b: refs/heads/master
c: b1c02d9
h: refs/heads/master
i:
  98943: 63c9f5c
v: v3
  • Loading branch information
Michael Ernst authored and Heiko Carstens committed Jul 14, 2008
1 parent 8c73391 commit e0c7503
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9689b336e193680fc0fcaa33829dc670637e9c98
refs/heads/master: b1c02d9110e72ec510ec9b038f9564e3c0d87384
45 changes: 39 additions & 6 deletions trunk/drivers/s390/char/sclp_cpi_sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
#define CPI_LENGTH_NAME 8
#define CPI_LENGTH_LEVEL 16

static DEFINE_MUTEX(sclp_cpi_mutex);

struct cpi_evbuf {
struct evbuf_header header;
u8 id_format;
Expand Down Expand Up @@ -223,7 +225,12 @@ static void set_string(char *attr, const char *value)
static ssize_t system_name_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{
return snprintf(page, PAGE_SIZE, "%s\n", system_name);
int rc;

mutex_lock(&sclp_cpi_mutex);
rc = snprintf(page, PAGE_SIZE, "%s\n", system_name);
mutex_unlock(&sclp_cpi_mutex);
return rc;
}

static ssize_t system_name_store(struct kobject *kobj,
Expand All @@ -237,7 +244,9 @@ static ssize_t system_name_store(struct kobject *kobj,
if (rc)
return rc;

mutex_lock(&sclp_cpi_mutex);
set_string(system_name, buf);
mutex_unlock(&sclp_cpi_mutex);

return len;
}
Expand All @@ -248,7 +257,12 @@ static struct kobj_attribute system_name_attr =
static ssize_t sysplex_name_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{
return snprintf(page, PAGE_SIZE, "%s\n", sysplex_name);
int rc;

mutex_lock(&sclp_cpi_mutex);
rc = snprintf(page, PAGE_SIZE, "%s\n", sysplex_name);
mutex_unlock(&sclp_cpi_mutex);
return rc;
}

static ssize_t sysplex_name_store(struct kobject *kobj,
Expand All @@ -262,7 +276,9 @@ static ssize_t sysplex_name_store(struct kobject *kobj,
if (rc)
return rc;

mutex_lock(&sclp_cpi_mutex);
set_string(sysplex_name, buf);
mutex_unlock(&sclp_cpi_mutex);

return len;
}
Expand All @@ -273,7 +289,12 @@ static struct kobj_attribute sysplex_name_attr =
static ssize_t system_type_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{
return snprintf(page, PAGE_SIZE, "%s\n", system_type);
int rc;

mutex_lock(&sclp_cpi_mutex);
rc = snprintf(page, PAGE_SIZE, "%s\n", system_type);
mutex_unlock(&sclp_cpi_mutex);
return rc;
}

static ssize_t system_type_store(struct kobject *kobj,
Expand All @@ -287,7 +308,9 @@ static ssize_t system_type_store(struct kobject *kobj,
if (rc)
return rc;

mutex_lock(&sclp_cpi_mutex);
set_string(system_type, buf);
mutex_unlock(&sclp_cpi_mutex);

return len;
}
Expand All @@ -298,8 +321,11 @@ static struct kobj_attribute system_type_attr =
static ssize_t system_level_show(struct kobject *kobj,
struct kobj_attribute *attr, char *page)
{
unsigned long long level = system_level;
unsigned long long level;

mutex_lock(&sclp_cpi_mutex);
level = system_level;
mutex_unlock(&sclp_cpi_mutex);
return snprintf(page, PAGE_SIZE, "%#018llx\n", level);
}

Expand All @@ -320,8 +346,9 @@ static ssize_t system_level_store(struct kobject *kobj,
if (*endp)
return -EINVAL;

mutex_lock(&sclp_cpi_mutex);
system_level = level;

mutex_unlock(&sclp_cpi_mutex);
return len;
}

Expand All @@ -334,7 +361,9 @@ static ssize_t set_store(struct kobject *kobj,
{
int rc;

mutex_lock(&sclp_cpi_mutex);
rc = cpi_req();
mutex_unlock(&sclp_cpi_mutex);
if (rc)
return rc;

Expand Down Expand Up @@ -373,12 +402,16 @@ int sclp_cpi_set_data(const char *system, const char *sysplex, const char *type,
if (rc)
return rc;

mutex_lock(&sclp_cpi_mutex);
set_string(system_name, system);
set_string(sysplex_name, sysplex);
set_string(system_type, type);
system_level = level;

return cpi_req();
rc = cpi_req();
mutex_unlock(&sclp_cpi_mutex);

return rc;
}
EXPORT_SYMBOL(sclp_cpi_set_data);

Expand Down

0 comments on commit e0c7503

Please sign in to comment.