git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
ppc64
/
kernel
/
rtas_flash.c
diff --git
a/arch/ppc64/kernel/rtas_flash.c
b/arch/ppc64/kernel/rtas_flash.c
index
9075403
..
c0cefd3
100644
(file)
--- a/
arch/ppc64/kernel/rtas_flash.c
+++ b/
arch/ppc64/kernel/rtas_flash.c
@@
-105,7
+105,7
@@
struct rtas_validate_flash_t
unsigned int update_results; /* Update results token */
};
unsigned int update_results; /* Update results token */
};
-static
spinlock_t flash_file_open_lock = SPIN_LOCK_UNLOCKED
;
+static
DEFINE_SPINLOCK(flash_file_open_lock)
;
static struct proc_dir_entry *firmware_flash_pde;
static struct proc_dir_entry *firmware_update_pde;
static struct proc_dir_entry *validate_pde;
static struct proc_dir_entry *firmware_flash_pde;
static struct proc_dir_entry *firmware_update_pde;
static struct proc_dir_entry *validate_pde;
@@
-344,8
+344,8
@@
static void manage_flash(struct rtas_manage_flash_t *args_buf)
s32 rc;
while (1) {
s32 rc;
while (1) {
- rc =
(s32)
rtas_call(rtas_token("ibm,manage-flash-image"), 1,
-
1, NULL, (long)
args_buf->op);
+ rc = rtas_call(rtas_token("ibm,manage-flash-image"), 1,
+
1, NULL,
args_buf->op);
if (rc == RTAS_RC_BUSY)
udelay(1);
else if (rtas_is_extended_busy(rc)) {
if (rc == RTAS_RC_BUSY)
udelay(1);
else if (rtas_is_extended_busy(rc)) {
@@
-429,15
+429,15
@@
static void validate_flash(struct rtas_validate_flash_t *args_buf)
{
int token = rtas_token("ibm,validate-flash-image");
unsigned int wait_time;
{
int token = rtas_token("ibm,validate-flash-image");
unsigned int wait_time;
-
long
update_results;
+
int
update_results;
s32 rc;
rc = 0;
while(1) {
spin_lock(&rtas_data_buf_lock);
memcpy(rtas_data_buf, args_buf->buf, VALIDATE_BUF_SIZE);
s32 rc;
rc = 0;
while(1) {
spin_lock(&rtas_data_buf_lock);
memcpy(rtas_data_buf, args_buf->buf, VALIDATE_BUF_SIZE);
- rc =
(s32)
rtas_call(token, 2, 2, &update_results,
-
__pa(rtas_data_buf), args_buf->buf_size);
+ rc = rtas_call(token, 2, 2, &update_results,
+
(u32)
__pa(rtas_data_buf), args_buf->buf_size);
memcpy(args_buf->buf, rtas_data_buf, VALIDATE_BUF_SIZE);
spin_unlock(&rtas_data_buf_lock);
memcpy(args_buf->buf, rtas_data_buf, VALIDATE_BUF_SIZE);
spin_unlock(&rtas_data_buf_lock);
@@
-451,7
+451,7
@@
static void validate_flash(struct rtas_validate_flash_t *args_buf)
}
args_buf->status = rc;
}
args_buf->status = rc;
- args_buf->update_results =
(u32)
update_results;
+ args_buf->update_results = update_results;
}
static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf,
}
static int get_validate_flash_msg(struct rtas_validate_flash_t *args_buf,
@@
-562,6
+562,7
@@
static int validate_flash_release(struct inode *inode, struct file *file)
validate_flash(args_buf);
}
validate_flash(args_buf);
}
+ /* The matching atomic_inc was in rtas_excl_open() */
atomic_dec(&dp->count);
return 0;
atomic_dec(&dp->count);
return 0;
@@
-572,7
+573,8
@@
static void remove_flash_pde(struct proc_dir_entry *dp)
if (dp) {
if (dp->data != NULL)
kfree(dp->data);
if (dp) {
if (dp->data != NULL)
kfree(dp->data);
- remove_proc_entry(dp->name, NULL);
+ dp->owner = NULL;
+ remove_proc_entry(dp->name, dp->parent);
}
}
}
}
@@
-692,7
+694,7
@@
int __init rtas_flash_init(void)
if (rc != 0)
goto cleanup;
if (rc != 0)
goto cleanup;
- manage_pde = create_flash_pde("ppc64/rtas" MANAGE_FLASH_NAME,
+ manage_pde = create_flash_pde("ppc64/rtas
/
" MANAGE_FLASH_NAME,
&manage_flash_operations);
if (manage_pde == NULL) {
rc = -ENOMEM;
&manage_flash_operations);
if (manage_pde == NULL) {
rc = -ENOMEM;