From 59992092476a096994827d2aa8d40aae727eb626 Mon Sep 17 00:00:00 2001 From: JoeyJiao Date: Tue, 3 Jan 2012 16:16:56 +0800 Subject: [PATCH] Fix akmd2 failure; Improve char device --- drivers/char/agp/generic.c | 11 ++++++++--- drivers/i2c/chips/st303_gs.c | 4 ++-- drivers/input/accelerometer/gs_st.c | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index c5054396..f7f80dc5 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c @@ -1123,8 +1123,8 @@ int agp_generic_insert_memory(struct agp_memory * mem, off_t pg_start, int type) return -EINVAL; } - /* AK: could wrap */ - if ((pg_start + mem->page_count) > num_entries) + if (((pg_start + mem->page_count) > num_entries) || + ((pg_start + mem->page_count) < pg_start)) return -EINVAL; j = pg_start; @@ -1158,7 +1158,7 @@ int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type) { size_t i; struct agp_bridge_data *bridge; - int mask_type; + int mask_type, num_entries; bridge = mem->bridge; if (!bridge) @@ -1170,6 +1170,11 @@ int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type) if (type != mem->type) return -EINVAL; + num_entries = agp_num_entries(); + if (((pg_start + mem->page_count) > num_entries) || + ((pg_start + mem->page_count) < pg_start)) + return -EINVAL; + mask_type = bridge->driver->agp_type_to_mask_type(bridge, type); if (mask_type != 0) { /* The generic routines know nothing of memory types */ diff --git a/drivers/i2c/chips/st303_gs.c b/drivers/i2c/chips/st303_gs.c index 5a7c0db8..eee760dd 100644 --- a/drivers/i2c/chips/st303_gs.c +++ b/drivers/i2c/chips/st303_gs.c @@ -46,8 +46,8 @@ static struct workqueue_struct *gs_wq; static signed short st_sensor_data[3]; -#define ST303DLH_I2C_NAME "st_303dlh" -#define ST303DLM_I2C_NAME "st_303dlm" +#define ST303DLH_I2C_NAME "ST303DLH" +#define ST303DLM_I2C_NAME "ST303DLM" enum { diff --git a/drivers/input/accelerometer/gs_st.c b/drivers/input/accelerometer/gs_st.c index a1b144e3..75692994 100644 --- a/drivers/input/accelerometer/gs_st.c +++ b/drivers/input/accelerometer/gs_st.c @@ -111,7 +111,7 @@ static inline int reg_write(struct gs_data *gs, int reg, uint8_t val) static int sensor_data[4]; /*adjust device name */ -static char st_device_id[] = "st_35de"; +static char st_device_id[] = "ST35DE"; int gs_st_data_to_compass(int accel_data [3]) {