mirror of https://gitee.com/openkylin/linux.git
[PATCH] I2O: Optimizing
- make i2o_iop_free() static inline (from Adrian Bunk) - changed kmalloc() + memset(0) into kzalloc() Signed-off-by: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
2e1973a3cd
commit
f6ed39a6e1
|
@ -22,7 +22,7 @@
|
|||
#include <asm/uaccess.h>
|
||||
|
||||
#define OSM_NAME "config-osm"
|
||||
#define OSM_VERSION "1.317"
|
||||
#define OSM_VERSION "1.323"
|
||||
#define OSM_DESCRIPTION "I2O Configuration OSM"
|
||||
|
||||
/* access mode user rw */
|
||||
|
|
|
@ -40,7 +40,16 @@ extern int i2o_device_parse_lct(struct i2o_controller *);
|
|||
|
||||
/* IOP */
|
||||
extern struct i2o_controller *i2o_iop_alloc(void);
|
||||
extern void i2o_iop_free(struct i2o_controller *);
|
||||
|
||||
/**
|
||||
* i2o_iop_free - Free the i2o_controller struct
|
||||
* @c: I2O controller to free
|
||||
*/
|
||||
static inline void i2o_iop_free(struct i2o_controller *c)
|
||||
{
|
||||
i2o_pool_free(&c->in_msg);
|
||||
kfree(c);
|
||||
}
|
||||
|
||||
extern int i2o_iop_add(struct i2o_controller *);
|
||||
extern void i2o_iop_remove(struct i2o_controller *);
|
||||
|
|
|
@ -195,12 +195,10 @@ static struct i2o_device *i2o_device_alloc(void)
|
|||
{
|
||||
struct i2o_device *dev;
|
||||
|
||||
dev = kmalloc(sizeof(*dev), GFP_KERNEL);
|
||||
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
||||
if (!dev)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
memset(dev, 0, sizeof(*dev));
|
||||
|
||||
INIT_LIST_HEAD(&dev->list);
|
||||
init_MUTEX(&dev->lock);
|
||||
|
||||
|
|
|
@ -217,10 +217,9 @@ int i2o_driver_dispatch(struct i2o_controller *c, u32 m)
|
|||
/* cut of header from message size (in 32-bit words) */
|
||||
size = (le32_to_cpu(msg->u.head[0]) >> 16) - 5;
|
||||
|
||||
evt = kmalloc(size * 4 + sizeof(*evt), GFP_ATOMIC);
|
||||
evt = kzalloc(size * 4 + sizeof(*evt), GFP_ATOMIC);
|
||||
if (!evt)
|
||||
return -ENOMEM;
|
||||
memset(evt, 0, size * 4 + sizeof(*evt));
|
||||
|
||||
evt->size = size;
|
||||
evt->tcntxt = le32_to_cpu(msg->u.s.tcntxt);
|
||||
|
@ -348,12 +347,10 @@ int __init i2o_driver_init(void)
|
|||
osm_info("max drivers = %d\n", i2o_max_drivers);
|
||||
|
||||
i2o_drivers =
|
||||
kmalloc(i2o_max_drivers * sizeof(*i2o_drivers), GFP_KERNEL);
|
||||
kzalloc(i2o_max_drivers * sizeof(*i2o_drivers), GFP_KERNEL);
|
||||
if (!i2o_drivers)
|
||||
return -ENOMEM;
|
||||
|
||||
memset(i2o_drivers, 0, i2o_max_drivers * sizeof(*i2o_drivers));
|
||||
|
||||
rc = bus_register(&i2o_bus_type);
|
||||
|
||||
if (rc < 0)
|
||||
|
|
|
@ -75,12 +75,10 @@ static struct i2o_exec_wait *i2o_exec_wait_alloc(void)
|
|||
{
|
||||
struct i2o_exec_wait *wait;
|
||||
|
||||
wait = kmalloc(sizeof(*wait), GFP_KERNEL);
|
||||
wait = kzalloc(sizeof(*wait), GFP_KERNEL);
|
||||
if (!wait)
|
||||
return NULL;
|
||||
|
||||
memset(wait, 0, sizeof(*wait));
|
||||
|
||||
INIT_LIST_HEAD(&wait->list);
|
||||
|
||||
return wait;
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
#include "i2o_block.h"
|
||||
|
||||
#define OSM_NAME "block-osm"
|
||||
#define OSM_VERSION "1.316"
|
||||
#define OSM_VERSION "1.325"
|
||||
#define OSM_DESCRIPTION "I2O Block Device OSM"
|
||||
|
||||
static struct i2o_driver i2o_block_driver;
|
||||
|
@ -981,13 +981,12 @@ static struct i2o_block_device *i2o_block_device_alloc(void)
|
|||
struct request_queue *queue;
|
||||
int rc;
|
||||
|
||||
dev = kmalloc(sizeof(*dev), GFP_KERNEL);
|
||||
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
|
||||
if (!dev) {
|
||||
osm_err("Insufficient memory to allocate I2O Block disk.\n");
|
||||
rc = -ENOMEM;
|
||||
goto exit;
|
||||
}
|
||||
memset(dev, 0, sizeof(*dev));
|
||||
|
||||
INIT_LIST_HEAD(&dev->open_queue);
|
||||
spin_lock_init(&dev->lock);
|
||||
|
|
|
@ -583,13 +583,12 @@ static int i2o_cfg_passthru32(struct file *file, unsigned cmnd,
|
|||
reply_size >>= 16;
|
||||
reply_size <<= 2;
|
||||
|
||||
reply = kmalloc(reply_size, GFP_KERNEL);
|
||||
reply = kzalloc(reply_size, GFP_KERNEL);
|
||||
if (!reply) {
|
||||
printk(KERN_WARNING "%s: Could not allocate reply buffer\n",
|
||||
c->name);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(reply, 0, reply_size);
|
||||
|
||||
sg_offset = (msg->u.head[0] >> 4) & 0x0f;
|
||||
|
||||
|
@ -817,13 +816,12 @@ static int i2o_cfg_passthru(unsigned long arg)
|
|||
reply_size >>= 16;
|
||||
reply_size <<= 2;
|
||||
|
||||
reply = kmalloc(reply_size, GFP_KERNEL);
|
||||
reply = kzalloc(reply_size, GFP_KERNEL);
|
||||
if (!reply) {
|
||||
printk(KERN_WARNING "%s: Could not allocate reply buffer\n",
|
||||
c->name);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(reply, 0, reply_size);
|
||||
|
||||
sg_offset = (msg->u.head[0] >> 4) & 0x0f;
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "core.h"
|
||||
|
||||
#define OSM_NAME "i2o"
|
||||
#define OSM_VERSION "1.316"
|
||||
#define OSM_VERSION "1.325"
|
||||
#define OSM_DESCRIPTION "I2O subsystem"
|
||||
|
||||
/* global I2O controller list */
|
||||
|
@ -838,12 +838,11 @@ static int i2o_systab_build(void)
|
|||
i2o_systab.len = sizeof(struct i2o_sys_tbl) + num_controllers *
|
||||
sizeof(struct i2o_sys_tbl_entry);
|
||||
|
||||
systab = i2o_systab.virt = kmalloc(i2o_systab.len, GFP_KERNEL);
|
||||
systab = i2o_systab.virt = kzalloc(i2o_systab.len, GFP_KERNEL);
|
||||
if (!systab) {
|
||||
osm_err("unable to allocate memory for System Table\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
memset(systab, 0, i2o_systab.len);
|
||||
|
||||
systab->version = I2OVERSION;
|
||||
systab->change_ind = change_ind + 1;
|
||||
|
@ -1019,16 +1018,6 @@ static int i2o_hrt_get(struct i2o_controller *c)
|
|||
return -EBUSY;
|
||||
}
|
||||
|
||||
/**
|
||||
* i2o_iop_free - Free the i2o_controller struct
|
||||
* @c: I2O controller to free
|
||||
*/
|
||||
void i2o_iop_free(struct i2o_controller *c)
|
||||
{
|
||||
i2o_pool_free(&c->in_msg);
|
||||
kfree(c);
|
||||
};
|
||||
|
||||
/**
|
||||
* i2o_iop_release - release the memory for a I2O controller
|
||||
* @dev: I2O controller which should be released
|
||||
|
@ -1058,13 +1047,12 @@ struct i2o_controller *i2o_iop_alloc(void)
|
|||
struct i2o_controller *c;
|
||||
char poolname[32];
|
||||
|
||||
c = kmalloc(sizeof(*c), GFP_KERNEL);
|
||||
c = kzalloc(sizeof(*c), GFP_KERNEL);
|
||||
if (!c) {
|
||||
osm_err("i2o: Insufficient memory to allocate a I2O controller."
|
||||
"\n");
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
memset(c, 0, sizeof(*c));
|
||||
|
||||
c->unit = unit++;
|
||||
sprintf(c->name, "iop%d", c->unit);
|
||||
|
|
Loading…
Reference in New Issue