Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
5b2db367
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5b2db367
编写于
12月 15, 2005
作者:
L
Len Brown
浏览文件
操作
浏览文件
下载
差异文件
Auto-update from upstream
上级
d3e4cefc
7116317d
变更
37
展开全部
隐藏空白更改
内联
并排
Showing
37 changed file
with
703 addition
and
1246 deletion
+703
-1246
arch/arm/kernel/module.c
arch/arm/kernel/module.c
+2
-0
arch/arm/mach-pxa/pm.c
arch/arm/mach-pxa/pm.c
+5
-4
arch/ia64/kernel/process.c
arch/ia64/kernel/process.c
+2
-0
drivers/ide/Kconfig
drivers/ide/Kconfig
+1
-9
drivers/ide/ide-cd.c
drivers/ide/ide-cd.c
+0
-7
drivers/ide/ide-cd.h
drivers/ide/ide-cd.h
+0
-1
drivers/ide/ide-disk.c
drivers/ide/ide-disk.c
+2
-2
drivers/ide/ide-dma.c
drivers/ide/ide-dma.c
+6
-9
drivers/ide/mips/Makefile
drivers/ide/mips/Makefile
+3
-0
drivers/ide/mips/au1xxx-ide.c
drivers/ide/mips/au1xxx-ide.c
+532
-966
drivers/ide/pci/sgiioc4.c
drivers/ide/pci/sgiioc4.c
+7
-1
drivers/ide/pci/via82cxxx.c
drivers/ide/pci/via82cxxx.c
+1
-0
drivers/input/mouse/alps.c
drivers/input/mouse/alps.c
+1
-1
drivers/mmc/mmc.c
drivers/mmc/mmc.c
+9
-1
drivers/scsi/ibmvscsi/ibmvscsi.h
drivers/scsi/ibmvscsi/ibmvscsi.h
+1
-1
drivers/scsi/ibmvscsi/iseries_vscsi.c
drivers/scsi/ibmvscsi/iseries_vscsi.c
+2
-1
drivers/scsi/ibmvscsi/rpa_vscsi.c
drivers/scsi/ibmvscsi/rpa_vscsi.c
+7
-1
drivers/scsi/megaraid.c
drivers/scsi/megaraid.c
+1
-1
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_def.h
+1
-9
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_init.c
+3
-3
drivers/scsi/qla2xxx/qla_isr.c
drivers/scsi/qla2xxx/qla_isr.c
+15
-0
drivers/scsi/scsi_error.c
drivers/scsi/scsi_error.c
+6
-1
drivers/scsi/scsi_lib.c
drivers/scsi/scsi_lib.c
+21
-12
drivers/scsi/sd.c
drivers/scsi/sd.c
+1
-15
drivers/scsi/sr.c
drivers/scsi/sr.c
+3
-17
drivers/scsi/st.c
drivers/scsi/st.c
+1
-18
drivers/scsi/sym53c8xx_2/sym_hipd.c
drivers/scsi/sym53c8xx_2/sym_hipd.c
+2
-2
fs/reiserfs/inode.c
fs/reiserfs/inode.c
+18
-8
fs/reiserfs/journal.c
fs/reiserfs/journal.c
+14
-4
include/asm-arm/elf.h
include/asm-arm/elf.h
+2
-0
include/asm-mips/mach-au1x00/au1xxx_ide.h
include/asm-mips/mach-au1x00/au1xxx_ide.h
+8
-14
include/linux/ide.h
include/linux/ide.h
+6
-125
include/linux/pci_ids.h
include/linux/pci_ids.h
+1
-0
include/scsi/scsi_cmnd.h
include/scsi/scsi_cmnd.h
+1
-0
init/Kconfig
init/Kconfig
+14
-12
net/8021q/vlan_dev.c
net/8021q/vlan_dev.c
+3
-0
net/ipv4/ip_gre.c
net/ipv4/ip_gre.c
+1
-1
未找到文件。
arch/arm/kernel/module.c
浏览文件 @
5b2db367
...
...
@@ -101,6 +101,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
break
;
case
R_ARM_PC24
:
case
R_ARM_CALL
:
case
R_ARM_JUMP24
:
offset
=
(
*
(
u32
*
)
loc
&
0x00ffffff
)
<<
2
;
if
(
offset
&
0x02000000
)
offset
-=
0x04000000
;
...
...
arch/arm/mach-pxa/pm.c
浏览文件 @
5b2db367
...
...
@@ -155,19 +155,20 @@ int pxa_pm_enter(suspend_state_t state)
PSPR
=
0
;
/* restore registers */
RESTORE_GPLEVEL
(
0
);
RESTORE_GPLEVEL
(
1
);
RESTORE_GPLEVEL
(
2
);
RESTORE
(
GPDR0
);
RESTORE
(
GPDR1
);
RESTORE
(
GPDR2
);
RESTORE
(
GAFR0_L
);
RESTORE
(
GAFR0_U
);
RESTORE
(
GAFR1_L
);
RESTORE
(
GAFR1_U
);
RESTORE
(
GAFR2_L
);
RESTORE
(
GAFR2_U
);
RESTORE_GPLEVEL
(
0
);
RESTORE_GPLEVEL
(
1
);
RESTORE_GPLEVEL
(
2
);
RESTORE
(
GPDR0
);
RESTORE
(
GPDR1
);
RESTORE
(
GPDR2
);
RESTORE
(
GRER0
);
RESTORE
(
GRER1
);
RESTORE
(
GRER2
);
RESTORE
(
GFER0
);
RESTORE
(
GFER1
);
RESTORE
(
GFER2
);
RESTORE
(
PGSR0
);
RESTORE
(
PGSR1
);
RESTORE
(
PGSR2
);
#ifdef CONFIG_PXA27x
RESTORE
(
MDREFR
);
RESTORE
(
GAFR3_L
);
RESTORE
(
GAFR3_U
);
RESTORE_GPLEVEL
(
3
);
RESTORE
(
GPDR3
);
RESTORE
(
GRER3
);
RESTORE
(
GFER3
);
RESTORE
(
PGSR3
);
RESTORE_GPLEVEL
(
3
);
RESTORE
(
GPDR3
);
RESTORE
(
GAFR3_L
);
RESTORE
(
GAFR3_U
);
RESTORE
(
GRER3
);
RESTORE
(
GFER3
);
RESTORE
(
PGSR3
);
RESTORE
(
PWER
);
RESTORE
(
PCFR
);
RESTORE
(
PRER
);
RESTORE
(
PFER
);
RESTORE
(
PKWR
);
#endif
...
...
arch/ia64/kernel/process.c
浏览文件 @
5b2db367
...
...
@@ -721,11 +721,13 @@ flush_thread (void)
/* drop floating-point and debug-register state if it exists: */
current
->
thread
.
flags
&=
~
(
IA64_THREAD_FPH_VALID
|
IA64_THREAD_DBG_VALID
);
ia64_drop_fpu
(
current
);
#ifdef CONFIG_IA32_SUPPORT
if
(
IS_IA32_PROCESS
(
ia64_task_regs
(
current
)))
{
ia32_drop_partial_page_list
(
current
);
current
->
thread
.
task_size
=
IA32_PAGE_OFFSET
;
set_fs
(
USER_DS
);
}
#endif
}
/*
...
...
drivers/ide/Kconfig
浏览文件 @
5b2db367
...
...
@@ -807,14 +807,6 @@ config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX
endchoice
config BLK_DEV_IDE_AU1XXX_BURSTABLE_ON
bool "Enable burstable Mode on DbDMA"
default false
depends BLK_DEV_IDE_AU1XXX
help
This option enable the burstable Flag on DbDMA controller
(cf. "AMD Alchemy 'Au1200' Processor Data Book - PRELIMINARY").
config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
int "Maximum transfer size (KB) per request (up to 128)"
default "128"
...
...
@@ -940,7 +932,7 @@ config BLK_DEV_Q40IDE
config BLK_DEV_MPC8xx_IDE
bool "MPC8xx IDE support"
depends on 8xx
depends on 8xx
&& IDE=y && BLK_DEV_IDE=y
help
This option provides support for IDE on Motorola MPC8xx Systems.
Please see 'Type of MPC8xx IDE interface' for details.
...
...
drivers/ide/ide-cd.c
浏览文件 @
5b2db367
...
...
@@ -1292,7 +1292,6 @@ static ide_startstop_t cdrom_start_seek (ide_drive_t *drive, unsigned int block)
struct
cdrom_info
*
info
=
drive
->
driver_data
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
info
->
start_seek
=
jiffies
;
return
cdrom_start_packet_command
(
drive
,
0
,
cdrom_start_seek_continuation
);
}
...
...
@@ -1344,8 +1343,6 @@ static ide_startstop_t cdrom_start_read (ide_drive_t *drive, unsigned int block)
(
rq
->
nr_sectors
&
(
sectors_per_frame
-
1
)))
info
->
dma
=
0
;
info
->
cmd
=
READ
;
/* Start sending the read request to the drive. */
return
cdrom_start_packet_command
(
drive
,
32768
,
cdrom_start_read_continuation
);
}
...
...
@@ -1484,7 +1481,6 @@ static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive)
struct
cdrom_info
*
info
=
drive
->
driver_data
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
rq
->
flags
&=
~
REQ_FAILED
;
len
=
rq
->
data_len
;
...
...
@@ -1891,7 +1887,6 @@ static ide_startstop_t cdrom_start_write(ide_drive_t *drive, struct request *rq)
/* use dma, if possible. we don't need to check more, since we
* know that the transfer is always (at least!) frame aligned */
info
->
dma
=
drive
->
using_dma
?
1
:
0
;
info
->
cmd
=
WRITE
;
info
->
devinfo
.
media_written
=
1
;
...
...
@@ -1916,7 +1911,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
rq
->
flags
|=
REQ_QUIET
;
info
->
dma
=
0
;
info
->
cmd
=
0
;
/*
* sg request
...
...
@@ -1925,7 +1919,6 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
int
mask
=
drive
->
queue
->
dma_alignment
;
unsigned
long
addr
=
(
unsigned
long
)
page_address
(
bio_page
(
rq
->
bio
));
info
->
cmd
=
rq_data_dir
(
rq
);
info
->
dma
=
drive
->
using_dma
;
/*
...
...
drivers/ide/ide-cd.h
浏览文件 @
5b2db367
...
...
@@ -480,7 +480,6 @@ struct cdrom_info {
struct
request
request_sense_request
;
int
dma
;
int
cmd
;
unsigned
long
last_block
;
unsigned
long
start_seek
;
/* Buffer to hold mechanism status and changer slot table. */
...
...
drivers/ide/ide-disk.c
浏览文件 @
5b2db367
...
...
@@ -1034,12 +1034,12 @@ static int ide_disk_remove(struct device *dev)
struct
ide_disk_obj
*
idkp
=
drive
->
driver_data
;
struct
gendisk
*
g
=
idkp
->
disk
;
ide_cacheflush_p
(
drive
);
ide_unregister_subdriver
(
drive
,
idkp
->
driver
);
del_gendisk
(
g
);
ide_cacheflush_p
(
drive
);
ide_disk_put
(
idkp
);
return
0
;
...
...
drivers/ide/ide-dma.c
浏览文件 @
5b2db367
...
...
@@ -90,11 +90,6 @@
#include <asm/io.h>
#include <asm/irq.h>
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
static
const
struct
drive_list_entry
drive_whitelist
[]
=
{
{
"Micropolis 2112A"
,
"ALL"
},
...
...
@@ -139,7 +134,7 @@ static const struct drive_list_entry drive_blacklist [] = {
};
/**
* in_drive_list - look for drive in black/white list
* i
de_i
n_drive_list - look for drive in black/white list
* @id: drive identifier
* @drive_table: list to inspect
*
...
...
@@ -147,7 +142,7 @@ static const struct drive_list_entry drive_blacklist [] = {
* Returns 1 if the drive is found in the table.
*/
static
int
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
)
int
ide_
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
)
{
for
(
;
drive_table
->
id_model
;
drive_table
++
)
if
((
!
strcmp
(
drive_table
->
id_model
,
id
->
model
))
&&
...
...
@@ -157,6 +152,8 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d
return
0
;
}
EXPORT_SYMBOL_GPL
(
ide_in_drive_list
);
/**
* ide_dma_intr - IDE DMA interrupt handler
* @drive: the drive the interrupt is for
...
...
@@ -663,7 +660,7 @@ int __ide_dma_bad_drive (ide_drive_t *drive)
{
struct
hd_driveid
*
id
=
drive
->
id
;
int
blacklist
=
in_drive_list
(
id
,
drive_blacklist
);
int
blacklist
=
i
de_i
n_drive_list
(
id
,
drive_blacklist
);
if
(
blacklist
)
{
printk
(
KERN_WARNING
"%s: Disabling (U)DMA for %s (blacklisted)
\n
"
,
drive
->
name
,
id
->
model
);
...
...
@@ -677,7 +674,7 @@ EXPORT_SYMBOL(__ide_dma_bad_drive);
int
__ide_dma_good_drive
(
ide_drive_t
*
drive
)
{
struct
hd_driveid
*
id
=
drive
->
id
;
return
in_drive_list
(
id
,
drive_whitelist
);
return
i
de_i
n_drive_list
(
id
,
drive_whitelist
);
}
EXPORT_SYMBOL
(
__ide_dma_good_drive
);
...
...
drivers/ide/mips/Makefile
浏览文件 @
5b2db367
obj-$(CONFIG_BLK_DEV_IDE_SWARM)
+=
swarm.o
obj-$(CONFIG_BLK_DEV_IDE_AU1XXX)
+=
au1xxx-ide.o
EXTRA_CFLAGS
:=
-Idrivers
/ide
drivers/ide/mips/au1xxx-ide.c
浏览文件 @
5b2db367
此差异已折叠。
点击以展开。
drivers/ide/pci/sgiioc4.c
浏览文件 @
5b2db367
...
...
@@ -622,12 +622,18 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d)
ide_hwif_t
*
hwif
;
int
h
;
/*
* Find an empty HWIF; if none available, return -ENOMEM.
*/
for
(
h
=
0
;
h
<
MAX_HWIFS
;
++
h
)
{
hwif
=
&
ide_hwifs
[
h
];
/* Find an empty HWIF */
if
(
hwif
->
chipset
==
ide_unknown
)
break
;
}
if
(
h
==
MAX_HWIFS
)
{
printk
(
KERN_ERR
"%s: too many IDE interfaces, no room in table
\n
"
,
d
->
name
);
return
-
ENOMEM
;
}
/* Get the CmdBlk and CtrlBlk Base Registers */
base
=
pci_resource_start
(
dev
,
0
)
+
IOC4_CMD_OFFSET
;
...
...
drivers/ide/pci/via82cxxx.c
浏览文件 @
5b2db367
...
...
@@ -80,6 +80,7 @@ static struct via_isa_bridge {
u16
flags
;
}
via_isa_bridges
[]
=
{
{
"vt6410"
,
PCI_DEVICE_ID_VIA_6410
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8251"
,
PCI_DEVICE_ID_VIA_8251
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8237"
,
PCI_DEVICE_ID_VIA_8237
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8235"
,
PCI_DEVICE_ID_VIA_8235
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
{
"vt8233a"
,
PCI_DEVICE_ID_VIA_8233A
,
0x00
,
0x2f
,
VIA_UDMA_133
|
VIA_BAD_AST
},
...
...
drivers/input/mouse/alps.c
浏览文件 @
5b2db367
...
...
@@ -42,7 +42,7 @@ static struct alps_model_info alps_model_data[] = {
{
{
0x53
,
0x02
,
0x14
},
0xf8
,
0xf8
,
0
},
{
{
0x63
,
0x02
,
0x0a
},
0xf8
,
0xf8
,
0
},
{
{
0x63
,
0x02
,
0x14
},
0xf8
,
0xf8
,
0
},
{
{
0x63
,
0x02
,
0x28
},
0xf8
,
0xf8
,
0
},
{
{
0x63
,
0x02
,
0x28
},
0xf8
,
0xf8
,
ALPS_FW_BK_2
},
/* Fujitsu Siemens S6010 */
{
{
0x63
,
0x02
,
0x3c
},
0x8f
,
0x8f
,
ALPS_WHEEL
},
/* Toshiba Satellite S2400-103 */
{
{
0x63
,
0x02
,
0x50
},
0xef
,
0xef
,
ALPS_FW_BK_1
},
/* NEC Versa L320 */
{
{
0x63
,
0x02
,
0x64
},
0xf8
,
0xf8
,
0
},
...
...
drivers/mmc/mmc.c
浏览文件 @
5b2db367
...
...
@@ -679,7 +679,15 @@ static void mmc_idle_cards(struct mmc_host *host)
}
/*
* Apply power to the MMC stack.
* Apply power to the MMC stack. This is a two-stage process.
* First, we enable power to the card without the clock running.
* We then wait a bit for the power to stabilise. Finally,
* enable the bus drivers and clock to the card.
*
* We must _NOT_ enable the clock prior to power stablising.
*
* If a host does all the power sequencing itself, ignore the
* initial MMC_POWER_UP stage.
*/
static
void
mmc_power_up
(
struct
mmc_host
*
host
)
{
...
...
drivers/scsi/ibmvscsi/ibmvscsi.h
浏览文件 @
5b2db367
...
...
@@ -100,7 +100,7 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue,
void
ibmvscsi_release_crq_queue
(
struct
crq_queue
*
queue
,
struct
ibmvscsi_host_data
*
hostdata
,
int
max_requests
);
void
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
int
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
struct
ibmvscsi_host_data
*
hostdata
);
void
ibmvscsi_handle_crq
(
struct
viosrp_crq
*
crq
,
...
...
drivers/scsi/ibmvscsi/iseries_vscsi.c
浏览文件 @
5b2db367
...
...
@@ -117,9 +117,10 @@ void ibmvscsi_release_crq_queue(struct crq_queue *queue,
*
* no-op for iSeries
*/
void
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
int
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
struct
ibmvscsi_host_data
*
hostdata
)
{
return
0
;
}
/**
...
...
drivers/scsi/ibmvscsi/rpa_vscsi.c
浏览文件 @
5b2db367
...
...
@@ -230,6 +230,11 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue,
rc
=
plpar_hcall_norets
(
H_REG_CRQ
,
vdev
->
unit_address
,
queue
->
msg_token
,
PAGE_SIZE
);
if
(
rc
==
H_Resource
)
/* maybe kexecing and resource is busy. try a reset */
rc
=
ibmvscsi_reset_crq_queue
(
queue
,
hostdata
);
if
(
rc
==
2
)
{
/* Adapter is good, but other end is not ready */
printk
(
KERN_WARNING
"ibmvscsi: Partner adapter not ready
\n
"
);
...
...
@@ -281,7 +286,7 @@ int ibmvscsi_init_crq_queue(struct crq_queue *queue,
* @hostdata: ibmvscsi_host_data of host
*
*/
void
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
int
ibmvscsi_reset_crq_queue
(
struct
crq_queue
*
queue
,
struct
ibmvscsi_host_data
*
hostdata
)
{
int
rc
;
...
...
@@ -309,4 +314,5 @@ void ibmvscsi_reset_crq_queue(struct crq_queue *queue,
printk
(
KERN_WARNING
"ibmvscsi: couldn't register crq--rc 0x%x
\n
"
,
rc
);
}
return
rc
;
}
drivers/scsi/megaraid.c
浏览文件 @
5b2db367
...
...
@@ -664,7 +664,7 @@ mega_build_cmd(adapter_t *adapter, Scsi_Cmnd *cmd, int *busy)
sg
->
offset
;
}
else
buf
=
cmd
->
request_buffer
;
memset
(
cmd
->
request_buffer
,
0
,
cmd
->
cmnd
[
4
]);
memset
(
buf
,
0
,
cmd
->
cmnd
[
4
]);
if
(
cmd
->
use_sg
)
{
struct
scatterlist
*
sg
;
...
...
drivers/scsi/qla2xxx/qla_def.h
浏览文件 @
5b2db367
...
...
@@ -2476,17 +2476,9 @@ typedef struct scsi_qla_host {
*/
#define LOOP_TRANSITION(ha) \
(test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \
test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
#define LOOP_NOT_READY(ha) \
((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \
test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) || \
test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \
test_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags)) || \
test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \
atomic_read(&ha->loop_state) == LOOP_DOWN)
#define LOOP_RDY(ha) (!LOOP_NOT_READY(ha))
#define TGT_Q(ha, t) (ha->otgt[t])
#define to_qla_host(x) ((scsi_qla_host_t *) (x)->hostdata)
...
...
drivers/scsi/qla2xxx/qla_init.c
浏览文件 @
5b2db367
...
...
@@ -1259,7 +1259,7 @@ qla2x00_configure_hba(scsi_qla_host_t *ha)
rval
=
qla2x00_get_adapter_id
(
ha
,
&
loop_id
,
&
al_pa
,
&
area
,
&
domain
,
&
topo
);
if
(
rval
!=
QLA_SUCCESS
)
{
if
(
LOOP_
NOT_READY
(
ha
)
||
atomic_read
(
&
ha
->
loop_down_timer
)
||
if
(
LOOP_
TRANSITION
(
ha
)
||
atomic_read
(
&
ha
->
loop_down_timer
)
||
(
rval
==
QLA_COMMAND_ERROR
&&
loop_id
==
0x7
))
{
DEBUG2
(
printk
(
"%s(%ld) Loop is in a transition state
\n
"
,
__func__
,
ha
->
host_no
));
...
...
@@ -1796,7 +1796,7 @@ qla2x00_configure_loop(scsi_qla_host_t *ha)
}
if
(
rval
==
QLA_SUCCESS
&&
test_bit
(
RSCN_UPDATE
,
&
flags
))
{
if
(
LOOP_
NOT_READY
(
ha
))
{
if
(
LOOP_
TRANSITION
(
ha
))
{
rval
=
QLA_FUNCTION_FAILED
;
}
else
{
rval
=
qla2x00_configure_fabric
(
ha
);
...
...
@@ -2369,7 +2369,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, struct list_head *new_fcports)
if
(
qla2x00_is_reserved_id
(
ha
,
loop_id
))
continue
;
if
(
atomic_read
(
&
ha
->
loop_down_timer
)
||
LOOP_
NOT_READY
(
ha
))
if
(
atomic_read
(
&
ha
->
loop_down_timer
)
||
LOOP_
TRANSITION
(
ha
))
break
;
if
(
swl
!=
NULL
)
{
...
...
drivers/scsi/qla2xxx/qla_isr.c
浏览文件 @
5b2db367
...
...
@@ -909,6 +909,21 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
resid
=
resid_len
;
cp
->
resid
=
resid
;
CMD_RESID_LEN
(
cp
)
=
resid
;
if
(
!
lscsi_status
&&
((
unsigned
)(
cp
->
request_bufflen
-
resid
)
<
cp
->
underflow
))
{
qla_printk
(
KERN_INFO
,
ha
,
"scsi(%ld:%d:%d:%d): Mid-layer underflow "
"detected (%x of %x bytes)...returning "
"error status.
\n
"
,
ha
->
host_no
,
cp
->
device
->
channel
,
cp
->
device
->
id
,
cp
->
device
->
lun
,
resid
,
cp
->
request_bufflen
);
cp
->
result
=
DID_ERROR
<<
16
;
break
;
}
}
cp
->
result
=
DID_OK
<<
16
|
lscsi_status
;
...
...
drivers/scsi/scsi_error.c
浏览文件 @
5b2db367
...
...
@@ -422,10 +422,15 @@ static int scsi_eh_completed_normally(struct scsi_cmnd *scmd)
**/
static
void
scsi_eh_done
(
struct
scsi_cmnd
*
scmd
)
{
struct
completion
*
eh_action
;
SCSI_LOG_ERROR_RECOVERY
(
3
,
printk
(
"%s scmd: %p result: %x
\n
"
,
__FUNCTION__
,
scmd
,
scmd
->
result
));
complete
(
scmd
->
device
->
host
->
eh_action
);
eh_action
=
scmd
->
device
->
host
->
eh_action
;
if
(
eh_action
)
complete
(
eh_action
);
}
/**
...
...
drivers/scsi/scsi_lib.c
浏览文件 @
5b2db367
...
...
@@ -1085,6 +1085,26 @@ static void scsi_generic_done(struct scsi_cmnd *cmd)
scsi_io_completion
(
cmd
,
cmd
->
result
==
0
?
cmd
->
bufflen
:
0
,
0
);
}
void
scsi_setup_blk_pc_cmnd
(
struct
scsi_cmnd
*
cmd
,
int
retries
)
{
struct
request
*
req
=
cmd
->
request
;
BUG_ON
(
sizeof
(
req
->
cmd
)
>
sizeof
(
cmd
->
cmnd
));
memcpy
(
cmd
->
cmnd
,
req
->
cmd
,
sizeof
(
cmd
->
cmnd
));
cmd
->
cmd_len
=
req
->
cmd_len
;
if
(
!
req
->
data_len
)
cmd
->
sc_data_direction
=
DMA_NONE
;
else
if
(
rq_data_dir
(
req
)
==
WRITE
)
cmd
->
sc_data_direction
=
DMA_TO_DEVICE
;
else
cmd
->
sc_data_direction
=
DMA_FROM_DEVICE
;
cmd
->
transfersize
=
req
->
data_len
;
cmd
->
allowed
=
retries
;
cmd
->
timeout_per_command
=
req
->
timeout
;
}
EXPORT_SYMBOL_GPL
(
scsi_setup_blk_pc_cmnd
);
static
int
scsi_prep_fn
(
struct
request_queue
*
q
,
struct
request
*
req
)
{
struct
scsi_device
*
sdev
=
q
->
queuedata
;
...
...
@@ -1220,18 +1240,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req)
goto
kill
;
}
}
else
{
memcpy
(
cmd
->
cmnd
,
req
->
cmd
,
sizeof
(
cmd
->
cmnd
));
cmd
->
cmd_len
=
req
->
cmd_len
;
if
(
rq_data_dir
(
req
)
==
WRITE
)
cmd
->
sc_data_direction
=
DMA_TO_DEVICE
;
else
if
(
req
->
data_len
)
cmd
->
sc_data_direction
=
DMA_FROM_DEVICE
;
else
cmd
->
sc_data_direction
=
DMA_NONE
;
cmd
->
transfersize
=
req
->
data_len
;
cmd
->
allowed
=
3
;
cmd
->
timeout_per_command
=
req
->
timeout
;
scsi_setup_blk_pc_cmnd
(
cmd
,
3
);
cmd
->
done
=
scsi_generic_done
;
}
}
...
...
drivers/scsi/sd.c
浏览文件 @
5b2db367
...
...
@@ -245,24 +245,10 @@ static int sd_init_command(struct scsi_cmnd * SCpnt)
* SG_IO from block layer already setup, just copy cdb basically
*/
if
(
blk_pc_request
(
rq
))
{
if
(
sizeof
(
rq
->
cmd
)
>
sizeof
(
SCpnt
->
cmnd
))
return
0
;
memcpy
(
SCpnt
->
cmnd
,
rq
->
cmd
,
sizeof
(
SCpnt
->
cmnd
));
SCpnt
->
cmd_len
=
rq
->
cmd_len
;
if
(
rq_data_dir
(
rq
)
==
WRITE
)
SCpnt
->
sc_data_direction
=
DMA_TO_DEVICE
;
else
if
(
rq
->
data_len
)
SCpnt
->
sc_data_direction
=
DMA_FROM_DEVICE
;
else
SCpnt
->
sc_data_direction
=
DMA_NONE
;
this_count
=
rq
->
data_len
;
scsi_setup_blk_pc_cmnd
(
SCpnt
,
SD_PASSTHROUGH_RETRIES
);
if
(
rq
->
timeout
)
timeout
=
rq
->
timeout
;
SCpnt
->
transfersize
=
rq
->
data_len
;
SCpnt
->
allowed
=
SD_PASSTHROUGH_RETRIES
;
goto
queue
;
}
...
...
drivers/scsi/sr.c
浏览文件 @
5b2db367
...
...
@@ -320,25 +320,11 @@ static int sr_init_command(struct scsi_cmnd * SCpnt)
* these are already setup, just copy cdb basically
*/
if
(
SCpnt
->
request
->
flags
&
REQ_BLOCK_PC
)
{
s
truct
request
*
rq
=
SCpnt
->
request
;
s
csi_setup_blk_pc_cmnd
(
SCpnt
,
MAX_RETRIES
)
;
if
(
sizeof
(
rq
->
cmd
)
>
sizeof
(
SCpnt
->
cmnd
))
return
0
;
memcpy
(
SCpnt
->
cmnd
,
rq
->
cmd
,
sizeof
(
SCpnt
->
cmnd
));
SCpnt
->
cmd_len
=
rq
->
cmd_len
;
if
(
!
rq
->
data_len
)
SCpnt
->
sc_data_direction
=
DMA_NONE
;
else
if
(
rq_data_dir
(
rq
)
==
WRITE
)
SCpnt
->
sc_data_direction
=
DMA_TO_DEVICE
;
else
SCpnt
->
sc_data_direction
=
DMA_FROM_DEVICE
;
this_count
=
rq
->
data_len
;
if
(
rq
->
timeout
)
timeout
=
rq
->
timeout
;
if
(
SCpnt
->
timeout_per_command
)
timeout
=
SCpnt
->
timeout_per_command
;
SCpnt
->
transfersize
=
rq
->
data_len
;
goto
queue
;
}
...
...
drivers/scsi/st.c
浏览文件 @
5b2db367
...
...
@@ -4194,27 +4194,10 @@ static void st_intr(struct scsi_cmnd *SCpnt)
*/
static
int
st_init_command
(
struct
scsi_cmnd
*
SCpnt
)
{
struct
request
*
rq
;
if
(
!
(
SCpnt
->
request
->
flags
&
REQ_BLOCK_PC
))
return
0
;
rq
=
SCpnt
->
request
;
if
(
sizeof
(
rq
->
cmd
)
>
sizeof
(
SCpnt
->
cmnd
))
return
0
;
memcpy
(
SCpnt
->
cmnd
,
rq
->
cmd
,
sizeof
(
SCpnt
->
cmnd
));
SCpnt
->
cmd_len
=
rq
->
cmd_len
;
if
(
rq_data_dir
(
rq
)
==
WRITE
)
SCpnt
->
sc_data_direction
=
DMA_TO_DEVICE
;
else
if
(
rq
->
data_len
)
SCpnt
->
sc_data_direction
=
DMA_FROM_DEVICE
;
else
SCpnt
->
sc_data_direction
=
DMA_NONE
;
SCpnt
->
timeout_per_command
=
rq
->
timeout
;
SCpnt
->
transfersize
=
rq
->
data_len
;
scsi_setup_blk_pc_cmnd
(
SCpnt
,
0
);
SCpnt
->
done
=
st_intr
;
return
1
;
}
...
...
drivers/scsi/sym53c8xx_2/sym_hipd.c
浏览文件 @
5b2db367
...
...
@@ -1405,7 +1405,6 @@ static void sym_check_goals(struct sym_hcb *np, struct scsi_target *starget,
goal
->
iu
=
0
;
goal
->
dt
=
0
;
goal
->
qas
=
0
;
goal
->
period
=
0
;
goal
->
offset
=
0
;
return
;
}
...
...
@@ -1465,7 +1464,8 @@ static int sym_prepare_nego(struct sym_hcb *np, struct sym_ccb *cp, u_char *msgp
* Many devices implement PPR in a buggy way, so only use it if we
* really want to.
*/
if
(
goal
->
iu
||
goal
->
dt
||
goal
->
qas
||
(
goal
->
period
<
0xa
))
{
if
(
goal
->
offset
&&
(
goal
->
iu
||
goal
->
dt
||
goal
->
qas
||
(
goal
->
period
<
0xa
)))
{
nego
=
NS_PPR
;
}
else
if
(
spi_width
(
starget
)
!=
goal
->
width
)
{
nego
=
NS_WIDE
;
...
...
fs/reiserfs/inode.c
浏览文件 @
5b2db367
...
...
@@ -32,6 +32,7 @@ void reiserfs_delete_inode(struct inode *inode)
JOURNAL_PER_BALANCE_CNT
*
2
+
2
*
REISERFS_QUOTA_INIT_BLOCKS
(
inode
->
i_sb
);
struct
reiserfs_transaction_handle
th
;
int
err
;
truncate_inode_pages
(
&
inode
->
i_data
,
0
);
...
...
@@ -49,15 +50,13 @@ void reiserfs_delete_inode(struct inode *inode)
}
reiserfs_update_inode_transaction
(
inode
);
if
(
reiserfs_delete_object
(
&
th
,
inode
))
{
up
(
&
inode
->
i_sem
);
goto
out
;
}
err
=
reiserfs_delete_object
(
&
th
,
inode
);
/* Do quota update inside a transaction for journaled quotas. We must do that
* after delete_object so that quota updates go into the same transaction as
* stat data deletion */
DQUOT_FREE_INODE
(
inode
);
if
(
!
err
)
DQUOT_FREE_INODE
(
inode
);
if
(
journal_end
(
&
th
,
inode
->
i_sb
,
jbegin_count
))
{
up
(
&
inode
->
i_sem
);
...
...
@@ -66,6 +65,12 @@ void reiserfs_delete_inode(struct inode *inode)
up
(
&
inode
->
i_sem
);
/* check return value from reiserfs_delete_object after
* ending the transaction
*/
if
(
err
)
goto
out
;
/* all items of file are deleted, so we can remove "save" link */
remove_save_link
(
inode
,
0
/* not truncate */
);
/* we can't do anything
* about an error here */
...
...
@@ -2099,6 +2104,7 @@ int reiserfs_truncate_file(struct inode *p_s_inode, int update_timestamps)
struct
page
*
page
=
NULL
;
int
error
;
struct
buffer_head
*
bh
=
NULL
;
int
err2
;
reiserfs_write_lock
(
p_s_inode
->
i_sb
);
...
...
@@ -2136,14 +2142,18 @@ int reiserfs_truncate_file(struct inode *p_s_inode, int update_timestamps)
transaction of truncating gets committed - on reboot the file
either appears truncated properly or not truncated at all */
add_save_link
(
&
th
,
p_s_inode
,
1
);
error
=
reiserfs_do_truncate
(
&
th
,
p_s_inode
,
page
,
update_timestamps
);
if
(
error
)
goto
out
;
err2
=
reiserfs_do_truncate
(
&
th
,
p_s_inode
,
page
,
update_timestamps
);
error
=
journal_end
(
&
th
,
p_s_inode
->
i_sb
,
JOURNAL_PER_BALANCE_CNT
*
2
+
1
);
if
(
error
)
goto
out
;
/* check reiserfs_do_truncate after ending the transaction */
if
(
err2
)
{
error
=
err2
;
goto
out
;
}
if
(
update_timestamps
)
{
error
=
remove_save_link
(
p_s_inode
,
1
/* truncate */
);
if
(
error
)
...
...
fs/reiserfs/journal.c
浏览文件 @
5b2db367
...
...
@@ -1039,6 +1039,10 @@ static int flush_commit_list(struct super_block *s,
}
atomic_dec
(
&
journal
->
j_async_throttle
);
/* We're skipping the commit if there's an error */
if
(
retval
||
reiserfs_is_journal_aborted
(
journal
))
barrier
=
0
;
/* wait on everything written so far before writing the commit
* if we are in barrier mode, send the commit down now
*/
...
...
@@ -1077,10 +1081,16 @@ static int flush_commit_list(struct super_block *s,
BUG_ON
(
atomic_read
(
&
(
jl
->
j_commit_left
))
!=
1
);
if
(
!
barrier
)
{
if
(
buffer_dirty
(
jl
->
j_commit_bh
))
BUG
();
mark_buffer_dirty
(
jl
->
j_commit_bh
);
sync_dirty_buffer
(
jl
->
j_commit_bh
);
/* If there was a write error in the journal - we can't commit
* this transaction - it will be invalid and, if successful,
* will just end up propogating the write error out to
* the file system. */
if
(
likely
(
!
retval
&&
!
reiserfs_is_journal_aborted
(
journal
)))
{
if
(
buffer_dirty
(
jl
->
j_commit_bh
))
BUG
();
mark_buffer_dirty
(
jl
->
j_commit_bh
)
;
sync_dirty_buffer
(
jl
->
j_commit_bh
)
;
}
}
else
wait_on_buffer
(
jl
->
j_commit_bh
);
...
...
include/asm-arm/elf.h
浏览文件 @
5b2db367
...
...
@@ -22,6 +22,8 @@ typedef unsigned long elf_freg_t[3];
#define R_ARM_NONE 0
#define R_ARM_PC24 1
#define R_ARM_ABS32 2
#define R_ARM_CALL 28
#define R_ARM_JUMP24 29
#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
typedef
elf_greg_t
elf_gregset_t
[
ELF_NGREG
];
...
...
include/asm-mips/mach-au1x00/au1xxx_ide.h
浏览文件 @
5b2db367
...
...
@@ -74,9 +74,6 @@ typedef struct
u8
white_list
,
black_list
;
struct
dbdma_cmd
*
dma_table_cpu
;
dma_addr_t
dma_table_dma
;
struct
scatterlist
*
sg_table
;
int
sg_nents
;
int
sg_dma_direction
;
#endif
struct
device
*
dev
;
int
irq
;
...
...
@@ -87,11 +84,6 @@ typedef struct
}
_auide_hwif
;
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
/* HD white list */
static
const
struct
drive_list_entry
dma_white_list
[]
=
{
/*
...
...
@@ -167,13 +159,9 @@ int __init auide_probe(void);
* Multi-Word DMA + DbDMA functions
*/
#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
static
int
in_drive_list
(
struct
hd_driveid
*
id
,
const
struct
drive_list_entry
*
drive_table
);
static
int
auide_build_sglist
(
ide_drive_t
*
drive
,
struct
request
*
rq
);
static
int
auide_build_dmatable
(
ide_drive_t
*
drive
);
static
int
auide_dma_end
(
ide_drive_t
*
drive
);
static
void
auide_dma_start
(
ide_drive_t
*
drive
);
ide_startstop_t
auide_dma_intr
(
ide_drive_t
*
drive
);
static
void
auide_dma_exec_cmd
(
ide_drive_t
*
drive
,
u8
command
);
static
int
auide_dma_setup
(
ide_drive_t
*
drive
);
...
...
@@ -188,8 +176,6 @@ int __init auide_probe(void);
static
void
auide_ddma_rx_callback
(
int
irq
,
void
*
param
,
struct
pt_regs
*
regs
);
static
int
auide_dma_off_quietly
(
ide_drive_t
*
drive
);
static
int
auide_dma_timeout
(
ide_drive_t
*
drive
);
#endif
/* end CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */
/*******************************************************************************
...
...
@@ -299,3 +285,11 @@ int __init auide_probe(void);
#define SBC_IDE_MDMA2_TPM (0x00<<6)
#define SBC_IDE_MDMA2_TA (0x12<<0)
#define SBC_IDE_TIMING(mode) \
SBC_IDE_##mode##_TWCS | \
SBC_IDE_##mode##_TCSH | \
SBC_IDE_##mode##_TCSOFF | \
SBC_IDE_##mode##_TWP | \
SBC_IDE_##mode##_TCSW | \
SBC_IDE_##mode##_TPM | \
SBC_IDE_##mode##_TA
include/linux/ide.h
浏览文件 @
5b2db367
...
...
@@ -23,17 +23,6 @@
#include <asm/io.h>
#include <asm/semaphore.h>
/*
* This is the multiple IDE interface driver, as evolved from hd.c.
* It supports up to four IDE interfaces, on one or more IRQs (usually 14 & 15).
* There can be up to two drives per interface, as per the ATA-2 spec.
*
* Primary i/f: ide0: major=3; (hda) minor=0; (hdb) minor=64
* Secondary i/f: ide1: major=22; (hdc or hd1a) minor=0; (hdd or hd1b) minor=64
* Tertiary i/f: ide2: major=33; (hde) minor=0; (hdf) minor=64
* Quaternary i/f: ide3: major=34; (hdg) minor=0; (hdh) minor=64
*/
/******************************************************************************
* IDE driver configuration options (play with these as desired):
*
...
...
@@ -193,11 +182,6 @@ typedef unsigned char byte; /* used everywhere */
#define WAIT_CMD (10*HZ)
/* 10sec - maximum wait for an IRQ to happen */
#define WAIT_MIN_SLEEP (2*HZ/100)
/* 20msec - minimum sleep time */
#define HOST(hwif,chipset) \
{ \
return ((hwif)->chipset == chipset) ? 1 : 0; \
}
/*
* Check for an interrupt and acknowledge the interrupt status
*/
...
...
@@ -390,45 +374,6 @@ typedef union {
}
b
;
}
ata_nsector_t
,
ata_data_t
,
atapi_bcount_t
,
ata_index_t
;
/*
* ATA-IDE Error Register
*
* mark : Bad address mark
* tzero : Couldn't find track 0
* abrt : Aborted Command
* mcr : Media Change Request
* id : ID field not found
* mce : Media Change Event
* ecc : Uncorrectable ECC error
* bdd : dual meaing
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
mark
:
1
;
unsigned
tzero
:
1
;
unsigned
abrt
:
1
;
unsigned
mcr
:
1
;
unsigned
id
:
1
;
unsigned
mce
:
1
;
unsigned
ecc
:
1
;
unsigned
bdd
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
bdd
:
1
;
unsigned
ecc
:
1
;
unsigned
mce
:
1
;
unsigned
id
:
1
;
unsigned
mcr
:
1
;
unsigned
abrt
:
1
;
unsigned
tzero
:
1
;
unsigned
mark
:
1
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
ata_error_t
;
/*
* ATA-IDE Select Register, aka Device-Head
*
...
...
@@ -503,39 +448,6 @@ typedef union {
}
b
;
}
ata_status_t
,
atapi_status_t
;
/*
* ATA-IDE Control Register
*
* bit0 : Should be set to zero
* nIEN : device INTRQ to host
* SRST : host soft reset bit
* bit3 : ATA-2 thingy, Should be set to 1
* reserved456 : Reserved
* HOB : 48-bit address ordering, High Ordered Bit
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
bit0
:
1
;
unsigned
nIEN
:
1
;
unsigned
SRST
:
1
;
unsigned
bit3
:
1
;
unsigned
reserved456
:
3
;
unsigned
HOB
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
HOB
:
1
;
unsigned
reserved456
:
3
;
unsigned
bit3
:
1
;
unsigned
SRST
:
1
;
unsigned
nIEN
:
1
;
unsigned
bit0
:
1
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
ata_control_t
;
/*
* ATAPI Feature Register
*
...
...
@@ -617,39 +529,6 @@ typedef union {
}
b
;
}
atapi_error_t
;
/*
* ATAPI floppy Drive Select Register
*
* sam_lun : Logical unit number
* reserved3 : Reserved
* drv : The responding drive will be drive 0 (0) or drive 1 (1)
* one5 : Should be set to 1
* reserved6 : Reserved
* one7 : Should be set to 1
*/
typedef
union
{
unsigned
all
:
8
;
struct
{
#if defined(__LITTLE_ENDIAN_BITFIELD)
unsigned
sam_lun
:
3
;
unsigned
reserved3
:
1
;
unsigned
drv
:
1
;
unsigned
one5
:
1
;
unsigned
reserved6
:
1
;
unsigned
one7
:
1
;
#elif defined(__BIG_ENDIAN_BITFIELD)
unsigned
one7
:
1
;
unsigned
reserved6
:
1
;
unsigned
one5
:
1
;
unsigned
drv
:
1
;
unsigned
reserved3
:
1
;
unsigned
sam_lun
:
3
;
#else
#error "Please fix <asm/byteorder.h>"
#endif
}
b
;
}
atapi_select_t
;
/*
* Status returned from various ide_ functions
*/
...
...
@@ -1101,10 +980,7 @@ typedef struct ide_driver_s {
int
(
*
end_request
)(
ide_drive_t
*
,
int
,
int
);
ide_startstop_t
(
*
error
)(
ide_drive_t
*
,
struct
request
*
rq
,
u8
,
u8
);
ide_startstop_t
(
*
abort
)(
ide_drive_t
*
,
struct
request
*
rq
);
int
(
*
ioctl
)(
ide_drive_t
*
,
struct
inode
*
,
struct
file
*
,
unsigned
int
,
unsigned
long
);
ide_proc_entry_t
*
proc
;
void
(
*
ata_prebuilder
)(
ide_drive_t
*
);
void
(
*
atapi_prebuilder
)(
ide_drive_t
*
);
struct
device_driver
gen_driver
;
}
ide_driver_t
;
...
...
@@ -1298,7 +1174,6 @@ extern int ide_spin_wait_hwgroup(ide_drive_t *);
extern
void
ide_timer_expiry
(
unsigned
long
);
extern
irqreturn_t
ide_intr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
extern
void
do_ide_request
(
request_queue_t
*
);
extern
void
ide_init_subdrivers
(
void
);
void
ide_init_disk
(
struct
gendisk
*
,
ide_drive_t
*
);
...
...
@@ -1371,6 +1246,12 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *);
#define GOOD_DMA_DRIVE 1
#ifdef CONFIG_BLK_DEV_IDEDMA
struct
drive_list_entry
{
const
char
*
id_model
;
const
char
*
id_firmware
;
};
int
ide_in_drive_list
(
struct
hd_driveid
*
,
const
struct
drive_list_entry
*
);
int
__ide_dma_bad_drive
(
ide_drive_t
*
);
int
__ide_dma_good_drive
(
ide_drive_t
*
);
int
ide_use_dma
(
ide_drive_t
*
);
...
...
include/linux/pci_ids.h
浏览文件 @
5b2db367
...
...
@@ -1244,6 +1244,7 @@
#define PCI_DEVICE_ID_VIA_8378_0 0x3205
#define PCI_DEVICE_ID_VIA_8783_0 0x3208
#define PCI_DEVICE_ID_VIA_8237 0x3227
#define PCI_DEVICE_ID_VIA_8251 0x3287
#define PCI_DEVICE_ID_VIA_3296_0 0x0296
#define PCI_DEVICE_ID_VIA_8231 0x8231
#define PCI_DEVICE_ID_VIA_8231_4 0x8235
...
...
include/scsi/scsi_cmnd.h
浏览文件 @
5b2db367
...
...
@@ -151,5 +151,6 @@ extern struct scsi_cmnd *scsi_get_command(struct scsi_device *, gfp_t);
extern
void
scsi_put_command
(
struct
scsi_cmnd
*
);
extern
void
scsi_io_completion
(
struct
scsi_cmnd
*
,
unsigned
int
,
unsigned
int
);
extern
void
scsi_finish_command
(
struct
scsi_cmnd
*
cmd
);
extern
void
scsi_setup_blk_pc_cmnd
(
struct
scsi_cmnd
*
cmd
,
int
retries
);
#endif
/* _SCSI_SCSI_CMND_H */
init/Kconfig
浏览文件 @
5b2db367
...
...
@@ -256,6 +256,20 @@ config CPUSETS
source "usr/Kconfig"
config CC_OPTIMIZE_FOR_SIZE
bool "Optimize for size (Look out for broken compilers!)"
default y
depends on ARM || H8300 || EXPERIMENTAL
depends on !SPARC64
help
Enabling this option will pass "-Os" instead of "-O2" to gcc
resulting in a smaller kernel.
WARNING: some versions of gcc may generate incorrect code with this
option. If problems are observed, a gcc upgrade may be needed.
If unsure, say N.
menuconfig EMBEDDED
bool "Configure standard kernel features (for small systems)"
help
...
...
@@ -338,18 +352,6 @@ config EPOLL
Disabling this option will cause the kernel to be built without
support for epoll family of system calls.
config CC_OPTIMIZE_FOR_SIZE
bool "Optimize for size"
default y if ARM || H8300
help
Enabling this option will pass "-Os" instead of "-O2" to gcc
resulting in a smaller kernel.
WARNING: some versions of gcc may generate incorrect code with this
option. If problems are observed, a gcc upgrade may be needed.
If unsure, say N.
config SHMEM
bool "Use full shmem filesystem" if EMBEDDED
default y
...
...
net/8021q/vlan_dev.c
浏览文件 @
5b2db367
...
...
@@ -165,6 +165,9 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
skb_pull
(
skb
,
VLAN_HLEN
);
/* take off the VLAN header (4 bytes currently) */
/* Need to correct hardware checksum */
skb_postpull_rcsum
(
skb
,
vhdr
,
VLAN_HLEN
);
/* Ok, lets check to make sure the device (dev) we
* came in on is what this VLAN is attached to.
*/
...
...
net/ipv4/ip_gre.c
浏览文件 @
5b2db367
...
...
@@ -618,7 +618,7 @@ static int ipgre_rcv(struct sk_buff *skb)
skb
->
mac
.
raw
=
skb
->
nh
.
raw
;
skb
->
nh
.
raw
=
__pskb_pull
(
skb
,
offset
);
skb_postpull_rcsum
(
skb
,
skb
->
mac
.
raw
,
offset
);
skb_postpull_rcsum
(
skb
,
skb
->
h
.
raw
,
offset
);
memset
(
&
(
IPCB
(
skb
)
->
opt
),
0
,
sizeof
(
struct
ip_options
));
skb
->
pkt_type
=
PACKET_HOST
;
#ifdef CONFIG_NET_IPGRE_BROADCAST
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录