Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
0f692ee3
Commit
0f692ee3
authored
Jun 09, 2004
by
Vojtech Pavlik
Browse files
Options
Browse Files
Download
Plain Diff
Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input
parents
f531472d
056d7d3a
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
231 additions
and
137 deletions
+231
-137
Makefile
Makefile
+2
-1
arch/i386/defconfig
arch/i386/defconfig
+50
-43
arch/ppc64/kernel/smp.c
arch/ppc64/kernel/smp.c
+3
-4
arch/ppc64/kernel/traps.c
arch/ppc64/kernel/traps.c
+13
-3
drivers/media/dvb/frontends/tda1004x.c
drivers/media/dvb/frontends/tda1004x.c
+1
-0
drivers/net/3c527.c
drivers/net/3c527.c
+1
-0
drivers/net/at1700.c
drivers/net/at1700.c
+9
-4
drivers/net/e1000/e1000_main.c
drivers/net/e1000/e1000_main.c
+2
-1
drivers/net/epic100.c
drivers/net/epic100.c
+28
-2
drivers/net/tulip/interrupt.c
drivers/net/tulip/interrupt.c
+4
-0
drivers/usb/core/devio.c
drivers/usb/core/devio.c
+1
-1
drivers/usb/media/Kconfig
drivers/usb/media/Kconfig
+1
-1
drivers/usb/media/pwc-if.c
drivers/usb/media/pwc-if.c
+1
-8
drivers/usb/serial/cyberjack.c
drivers/usb/serial/cyberjack.c
+6
-15
include/asm-ppc64/current.h
include/asm-ppc64/current.h
+1
-3
include/asm-ppc64/paca.h
include/asm-ppc64/paca.h
+3
-1
include/linux/ethtool.h
include/linux/ethtool.h
+2
-0
include/linux/netfilter_arp.h
include/linux/netfilter_arp.h
+0
-1
include/linux/tcp.h
include/linux/tcp.h
+6
-3
include/linux/usb.h
include/linux/usb.h
+1
-0
lib/rwsem.c
lib/rwsem.c
+20
-15
net/core/ethtool.c
net/core/ethtool.c
+71
-31
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/arp_tables.c
+2
-0
net/ipv4/tcp_diag.c
net/ipv4/tcp_diag.c
+3
-0
No files found.
Makefile
View file @
0f692ee3
VERSION
=
2
PATCHLEVEL
=
6
SUBLEVEL
=
7
EXTRAVERSION
=
-rc
2
EXTRAVERSION
=
-rc
3
NAME
=
Zonked Quokka
# *DOCUMENTATION*
...
...
@@ -1062,6 +1062,7 @@ versioncheck:
buildcheck
:
$(PERL)
scripts/reference_discarded.pl
$(PERL)
scripts/reference_init.pl
endif
#ifeq ($(config-targets),1)
endif
#ifeq ($(mixed-targets),1)
...
...
arch/i386/defconfig
View file @
0f692ee3
...
...
@@ -18,8 +18,11 @@ CONFIG_STANDALONE=y
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_LOG_BUF_SHIFT=15
CONFIG_HOTPLUG=y
# CONFIG_IKCONFIG is not set
...
...
@@ -30,6 +33,7 @@ CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
...
...
@@ -88,6 +92,7 @@ CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_HPET_EMULATE_RTC is not set
CONFIG_SMP=y
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
CONFIG_PREEMPT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
...
...
@@ -200,7 +205,7 @@ CONFIG_BINFMT_MISC=y
#
# Generic Driver Options
#
# CONFIG_FW_LOADER is not set
CONFIG_FW_LOADER=m
#
# Memory Technology Devices (MTD)
...
...
@@ -259,7 +264,6 @@ CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
...
...
@@ -307,6 +311,7 @@ CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
...
...
@@ -332,7 +337,6 @@ CONFIG_CHR_DEV_SG=y
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
...
...
@@ -354,6 +358,7 @@ CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
CONFIG_SCSI_DPT_I2O=m
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_MEGARAID is not set
...
...
@@ -361,7 +366,9 @@ CONFIG_SCSI_SATA=y
# CONFIG_SCSI_SATA_SVW is not set
CONFIG_SCSI_ATA_PIIX=y
# CONFIG_SCSI_SATA_PROMISE is not set
CONFIG_SCSI_SATA_SX4=m
# CONFIG_SCSI_SATA_SIL is not set
CONFIG_SCSI_SATA_SIS=m
# CONFIG_SCSI_SATA_VIA is not set
# CONFIG_SCSI_SATA_VITESSE is not set
# CONFIG_SCSI_BUSLOGIC is not set
...
...
@@ -380,6 +387,9 @@ CONFIG_SCSI_ATA_PIIX=y
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
CONFIG_SCSI_IPR=m
# CONFIG_SCSI_IPR_TRACE is not set
# CONFIG_SCSI_IPR_DUMP is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
...
...
@@ -484,8 +494,6 @@ CONFIG_IP_MULTICAST=y
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
...
...
@@ -539,13 +547,17 @@ CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_RAW=m
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
...
...
@@ -566,18 +578,23 @@ CONFIG_IP_NF_ARP_MANGLE=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -619,7 +636,6 @@ CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_8139_RXBUF_IDX=2
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
...
...
@@ -637,7 +653,6 @@ CONFIG_8139_RXBUF_IDX=2
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
...
...
@@ -645,47 +660,31 @@ CONFIG_8139_RXBUF_IDX=2
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
CONFIG_S2IO=m
# CONFIG_S2IO_NAPI is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
# Wireless LAN (non-hamradio)
#
# CONFIG_
IRDA
is not set
# CONFIG_
NET_RADIO
is not set
#
#
Bluetooth support
#
Wan interfaces
#
# CONFIG_BT is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
...
...
@@ -803,6 +802,7 @@ CONFIG_AGP=y
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
CONFIG_AGP_INTEL_MCH=m
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
...
...
@@ -978,6 +978,7 @@ CONFIG_USB_DEVICEFS=y
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=y
...
...
@@ -1012,6 +1013,7 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
CONFIG_USB_EGALAX=m
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
...
...
@@ -1061,6 +1063,8 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
CONFIG_USB_CYTHERM=m
CONFIG_USB_PHIDGETSERVO=m
# CONFIG_USB_TEST is not set
#
...
...
@@ -1110,6 +1114,7 @@ CONFIG_VFAT_FS=y
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
...
...
@@ -1152,7 +1157,6 @@ CONFIG_SUNRPC=y
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_AFS_FS is not set
#
...
...
@@ -1217,6 +1221,7 @@ CONFIG_OPROFILE=y
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_FRAME_POINTER is not set
CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
...
...
@@ -1234,8 +1239,10 @@ CONFIG_X86_MPPARSE=y
# Library routines
#
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_X86_SMP=y
CONFIG_X86_HT=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_X86_TRAMPOLINE=y
CONFIG_X86_STD_RESOURCES=y
CONFIG_PC=y
arch/ppc64/kernel/smp.c
View file @
0f692ee3
...
...
@@ -390,8 +390,7 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
}
/* Fixup atomic count: it exited inside IRQ handler. */
((
struct
task_struct
*
)
paca
[
lcpu
].
xCurrent
)
->
thread_info
->
preempt_count
=
0
;
paca
[
lcpu
].
xCurrent
->
thread_info
->
preempt_count
=
0
;
/* Fixup SLB round-robin so next segment (kernel) goes in segment 0 */
paca
[
lcpu
].
xStab_data
.
next_round_robin
=
0
;
...
...
@@ -817,7 +816,7 @@ static void __init smp_create_idle(unsigned int cpu)
init_idle
(
p
,
cpu
);
unhash_process
(
p
);
paca
[
cpu
].
xCurrent
=
(
u64
)
p
;
paca
[
cpu
].
xCurrent
=
p
;
current_set
[
cpu
]
=
p
->
thread_info
;
}
...
...
@@ -869,7 +868,7 @@ void __devinit smp_prepare_boot_cpu(void)
/* cpu_possible is set up in prom.c */
cpu_set
(
boot_cpuid
,
cpu_online_map
);
paca
[
boot_cpuid
].
xCurrent
=
(
u64
)
current
;
paca
[
boot_cpuid
].
xCurrent
=
current
;
current_set
[
boot_cpuid
]
=
current
->
thread_info
;
}
...
...
arch/ppc64/kernel/traps.c
View file @
0f692ee3
...
...
@@ -466,6 +466,18 @@ SingleStepException(struct pt_regs *regs)
_exception
(
SIGTRAP
,
&
info
,
regs
);
}
/*
* After we have successfully emulated an instruction, we have to
* check if the instruction was being single-stepped, and if so,
* pretend we got a single-step exception. This was pointed out
* by Kumar Gala. -- paulus
*/
static
inline
void
emulate_single_step
(
struct
pt_regs
*
regs
)
{
if
(
regs
->
msr
&
MSR_SE
)
SingleStepException
(
regs
);
}
static
void
dummy_perf
(
struct
pt_regs
*
regs
)
{
}
...
...
@@ -487,10 +499,8 @@ AlignmentException(struct pt_regs *regs)
fixed
=
fix_alignment
(
regs
);
if
(
fixed
==
1
)
{
if
(
!
user_mode
(
regs
))
PPCDBG
(
PPCDBG_ALIGNFIXUP
,
"fix alignment at %lx
\n
"
,
regs
->
nip
);
regs
->
nip
+=
4
;
/* skip over emulated instruction */
emulate_single_step
(
regs
);
return
;
}
...
...
drivers/media/dvb/frontends/tda1004x.c
View file @
0f692ee3
...
...
@@ -190,6 +190,7 @@ static int tda10045h_fwinfo_count = sizeof(tda10045h_fwinfo) / sizeof(struct fwi
static
struct
fwinfo
tda10046h_fwinfo
[]
=
{
{.
file_size
=
286720
,.
fw_offset
=
0x3c4f9
,.
fw_size
=
24479
}
};
static
int
tda10046h_fwinfo_count
=
sizeof
(
tda10046h_fwinfo
)
/
sizeof
(
struct
fwinfo
);
static
int
errno
;
static
int
tda1004x_write_byte
(
struct
dvb_i2c_bus
*
i2c
,
struct
tda1004x_state
*
tda_state
,
int
reg
,
int
data
)
...
...
drivers/net/3c527.c
View file @
0f692ee3
...
...
@@ -287,6 +287,7 @@ struct net_device *__init mc32_probe(int unit)
}
}
free_netdev
(
dev
);
return
ERR_PTR
(
-
ENODEV
);
}
...
...
drivers/net/at1700.c
View file @
0f692ee3
...
...
@@ -242,7 +242,7 @@ static void cleanup_card(struct net_device *dev)
{
#ifdef CONFIG_MCA
struct
net_local
*
lp
=
netdev_priv
(
dev
);
if
(
lp
->
mca_slot
)
if
(
lp
->
mca_slot
>=
0
)
mca_mark_as_unused
(
lp
->
mca_slot
);
#endif
free_irq
(
dev
->
irq
,
NULL
);
...
...
@@ -444,11 +444,11 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
break
;
}
if
(
i
==
8
)
{
goto
err_
out
;
goto
err_
mca
;
}
}
else
{
if
(
fmv18x_probe_list
[
inb
(
ioaddr
+
IOCONFIG
)
&
0x07
]
!=
ioaddr
)
goto
err_
out
;
goto
err_
mca
;
irq
=
fmv_irqmap
[(
inb
(
ioaddr
+
IOCONFIG
)
>>
6
)
&
0x03
];
}
}
...
...
@@ -546,11 +546,16 @@ static int __init at1700_probe1(struct net_device *dev, int ioaddr)
if
(
ret
)
{
printk
(
" AT1700 at %#3x is unusable due to a conflict on"
"IRQ %d.
\n
"
,
ioaddr
,
irq
);
goto
err_
out
;
goto
err_
mca
;
}
return
0
;
err_mca:
#ifdef CONFIG_MCA
if
(
slot
>=
0
)
mca_mark_as_unused
(
slot
);
#endif
err_out:
#ifndef CONFIG_X86_PC9800
release_region
(
ioaddr
,
AT1700_IO_EXTENT
);
...
...
drivers/net/e1000/e1000_main.c
View file @
0f692ee3
...
...
@@ -52,7 +52,7 @@
char
e1000_driver_name
[]
=
"e1000"
;
char
e1000_driver_string
[]
=
"Intel(R) PRO/1000 Network Driver"
;
char
e1000_driver_version
[]
=
"5.2.52-k
2
"
;
char
e1000_driver_version
[]
=
"5.2.52-k
4
"
;
char
e1000_copyright
[]
=
"Copyright (c) 1999-2004 Intel Corporation."
;
/* e1000_pci_tbl - PCI Device ID Table
...
...
@@ -2143,6 +2143,7 @@ e1000_clean(struct net_device *netdev, int *budget)
if
(
work_done
<
work_to_do
||
!
netif_running
(
netdev
))
{
netif_rx_complete
(
netdev
);
e1000_irq_enable
(
adapter
);
return
0
;
}
return
(
work_done
>=
work_to_do
);
...
...
drivers/net/epic100.c
View file @
0f692ee3
...
...
@@ -66,12 +66,15 @@
LK1.1.14 (Kryzsztof Halasa):
* fix spurious bad initializations
* pound phy a la SMSC's app note on the subject
AC1.1.14ac
* fix power up/down for ethtool that broke in 1.11
*/
#define DRV_NAME "epic100"
#define DRV_VERSION "1.11+LK1.1.14"
#define DRV_RELDATE "
Aug 4, 2002
"
#define DRV_VERSION "1.11+LK1.1.14
+AC1.1.14
"
#define DRV_RELDATE "
June 2, 2004
"
/* The user-configurable values.
These may be modified when a driver module is loaded.*/
...
...
@@ -1424,6 +1427,27 @@ static void netdev_set_msglevel(struct net_device *dev, u32 value)
debug
=
value
;
}
static
int
ethtool_begin
(
struct
net_device
*
dev
)
{
unsigned
long
ioaddr
=
dev
->
base_addr
;
/* power-up, if interface is down */
if
(
!
netif_running
(
dev
))
{
outl
(
0x0200
,
ioaddr
+
GENCTL
);
outl
((
inl
(
ioaddr
+
NVCTL
)
&
~
0x003C
)
|
0x4800
,
ioaddr
+
NVCTL
);
}
return
0
;
}
static
void
ethtool_complete
(
struct
net_device
*
dev
)
{
unsigned
long
ioaddr
=
dev
->
base_addr
;
/* power-down, if interface is down */
if
(
!
netif_running
(
dev
))
{
outl
(
0x0008
,
ioaddr
+
GENCTL
);
outl
((
inl
(
ioaddr
+
NVCTL
)
&
~
0x483C
)
|
0x0000
,
ioaddr
+
NVCTL
);
}
}
static
struct
ethtool_ops
netdev_ethtool_ops
=
{
.
get_drvinfo
=
netdev_get_drvinfo
,
.
get_settings
=
netdev_get_settings
,
...
...
@@ -1434,6 +1458,8 @@ static struct ethtool_ops netdev_ethtool_ops = {
.
set_msglevel
=
netdev_set_msglevel
,
.
get_sg
=
ethtool_op_get_sg
,
.
get_tx_csum
=
ethtool_op_get_tx_csum
,
.
begin
=
ethtool_begin
,
.
complete
=
ethtool_complete
};
static
int
netdev_ioctl
(
struct
net_device
*
dev
,
struct
ifreq
*
rq
,
int
cmd
)
...
...
drivers/net/tulip/interrupt.c
View file @
0f692ee3
...
...
@@ -133,6 +133,10 @@ int tulip_poll(struct net_device *dev, int *budget)
tp
->
rx_ring
[
entry
].
status
);
do
{
if
(
inl
(
dev
->
base_addr
+
CSR5
)
==
0xffffffff
)
{
printk
(
KERN_DEBUG
" In tulip_poll(), hardware disappeared.
\n
"
);
break
;
}
/* Acknowledge current RX interrupt sources. */
outl
((
RxIntr
|
RxNoBuf
),
dev
->
base_addr
+
CSR5
);
...
...
drivers/usb/core/devio.c
View file @
0f692ee3
...
...
@@ -719,7 +719,7 @@ static int proc_connectinfo(struct dev_state *ps, void __user *arg)
static
int
proc_resetdevice
(
struct
dev_state
*
ps
)
{
return
usb_reset_device
(
ps
->
dev
);
return
__
usb_reset_device
(
ps
->
dev
);
}
...
...
drivers/usb/media/Kconfig
View file @
0f692ee3
...
...
@@ -108,7 +108,7 @@ config USB_OV511
config USB_PWC
tristate "USB Philips Cameras"
depends on USB && VIDEO_DEV
&& BROKEN
depends on USB && VIDEO_DEV
---help---
Say Y or M here if you want to use one of these Philips & OEM
webcams:
...
...
drivers/usb/media/pwc-if.c
View file @
0f692ee3
...
...
@@ -129,7 +129,6 @@ static struct {
static
int
pwc_video_open
(
struct
inode
*
inode
,
struct
file
*
file
);
static
int
pwc_video_close
(
struct
inode
*
inode
,
struct
file
*
file
);
static
int
pwc_video_release
(
struct
video_device
*
);
static
ssize_t
pwc_video_read
(
struct
file
*
file
,
char
*
buf
,
size_t
count
,
loff_t
*
ppos
);
static
unsigned
int
pwc_video_poll
(
struct
file
*
file
,
poll_table
*
wait
);
...
...
@@ -1121,12 +1120,6 @@ static int pwc_video_close(struct inode *inode, struct file *file)
return
0
;
}
static
int
pwc_video_release
(
struct
video_device
*
vfd
)
{
Trace
(
TRACE_OPEN
,
"pwc_video_release() called. Now what?
\n
"
);
}
/*
* FIXME: what about two parallel reads ????
* ANSWER: Not supported. You can't open the device more than once,
...
...
@@ -1855,7 +1848,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
}
}
pdev
->
vdev
.
release
=
pwc_video
_release
;
pdev
->
vdev
.
release
=
video_device
_release
;
i
=
video_register_device
(
&
pdev
->
vdev
,
VFL_TYPE_GRABBER
,
video_nr
);
if
(
i
<
0
)
{
Err
(
"Failed to register as video device (%d).
\n
"
,
i
);
...
...
drivers/usb/serial/cyberjack.c
View file @
0f692ee3
...
...
@@ -109,7 +109,7 @@ struct cyberjack_private {
short
rdtodo
;
/* Bytes still to read */
unsigned
char
wrbuf
[
5
*
64
];
/* Buffer for collecting data to write */
short
wrfilled
;
/* Overall data size we already got */
short
wrsent
;
/* Data a
k
ready sent */
short
wrsent
;
/* Data a
l
ready sent */
};
/* do some startup allocations not currently performed by usb_serial_probe() */
...
...
@@ -159,8 +159,6 @@ static int cyberjack_open (struct usb_serial_port *port, struct file *filp)
dbg
(
"%s - usb_clear_halt"
,
__FUNCTION__
);
usb_clear_halt
(
port
->
serial
->
dev
,
port
->
write_urb
->
pipe
);
usb_clear_halt
(
port
->
serial
->
dev
,
port
->
read_urb
->
pipe
);
usb_clear_halt
(
port
->
serial
->
dev
,
port
->
interrupt_in_urb
->
pipe
);
/* force low_latency on so that our tty_push actually forces
* the data through, otherwise it is scheduled, and with high
...
...
@@ -212,7 +210,6 @@ static int cyberjack_write (struct usb_serial_port *port, int from_user, const u
unsigned
long
flags
;
int
result
;
int
wrexpected
;
unsigned
char
localbuf
[
CYBERJACK_LOCAL_BUF_SIZE
];
/* Buffer for collecting data to write */
dbg
(
"%s - port %d"
,
__FUNCTION__
,
port
->
number
);
dbg
(
"%s - from_user %d"
,
__FUNCTION__
,
from_user
);
...
...
@@ -229,29 +226,23 @@ static int cyberjack_write (struct usb_serial_port *port, int from_user, const u
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
if
(
(
count
+
priv
->
wrfilled
)
>
sizeof
(
priv
->
wrbuf
)
||
(
count
>
sizeof
(
localbuf
))
)
{
/* To much data for buffer. Reset buffer. */
if
(
(
count
+
priv
->
wrfilled
)
>
sizeof
(
priv
->
wrbuf
)
)
{
/* To much data for buffer. Reset buffer. */
priv
->
wrfilled
=
0
;
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
return
(
0
);
}
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
/* Copy data */
if
(
from_user
)
{
if
(
copy_from_user
(
localbuf
,
buf
,
count
))
{
if
(
copy_from_user
(
priv
->
wrbuf
+
priv
->
wrfilled
,
buf
,
count
))
{
spin_unlock_irqrestore
(
&
priv
->
lock
,
flags
);
return
-
EFAULT
;
}
}
else
{
memcpy
(
localbuf
,
buf
,
count
);
memcpy
(
priv
->
wrbuf
+
priv
->
wrfilled
,
buf
,
count
);
}
spin_lock_irqsave
(
&
priv
->
lock
,
flags
);
memcpy
(
priv
->
wrbuf
+
priv
->
wrfilled
,
localbuf
,
count
);
usb_serial_debug_data
(
__FILE__
,
__FUNCTION__
,
count
,
priv
->
wrbuf
+
priv
->
wrfilled
);
priv
->
wrfilled
+=
count
;
...
...
include/asm-ppc64/current.h
View file @
0f692ee3
...
...
@@ -8,13 +8,11 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Use r13 for current since the ppc64 ABI reserves it - Anton
*/
#include <asm/thread_info.h>
#define get_current() (
(struct task_struct *)(get_paca()->xCurrent)
)
#define get_current() (
get_paca()->xCurrent
)
#define current get_current()
#endif
/* !(_PPC64_CURRENT_H) */
include/asm-ppc64/paca.h
View file @
0f692ee3
...
...
@@ -37,6 +37,8 @@ extern struct paca_struct paca[];
register
struct
paca_struct
*
local_paca
asm
(
"r13"
);
#define get_paca() local_paca
struct
task_struct
;
/*============================================================================
* Name_______: paca
*
...
...
@@ -59,7 +61,7 @@ struct paca_struct {
*/
struct
ItLpPaca
*
xLpPacaPtr
;
/* Pointer to LpPaca for PLIC 0x00 */
struct
ItLpRegSave
*
xLpRegSavePtr
;
/* Pointer to LpRegSave for PLIC 0x08 */
u64
xCurrent
;
/* Pointer to current 0x10 */
struct
task_struct
*
xCurrent
;
/* Pointer to current 0x10 */
/* Note: the spinlock functions in arch/ppc64/lib/locks.c load lock_token and
xPacaIndex with a single lwz instruction, using the constant offset 24.
If you move either field, fix the spinlocks and rwlocks. */
...
...
include/linux/ethtool.h
View file @
0f692ee3
...
...
@@ -351,6 +351,8 @@ struct ethtool_ops {
int
(
*
phys_id
)(
struct
net_device
*
,
u32
);
int
(
*
get_stats_count
)(
struct
net_device
*
);
void
(
*
get_ethtool_stats
)(
struct
net_device
*
,
struct
ethtool_stats
*
,
u64
*
);
int
(
*
begin
)(
struct
net_device
*
);
void
(
*
complete
)(
struct
net_device
*
);
};
/* CMDs currently supported */
...
...
include/linux/netfilter_arp.h
View file @
0f692ee3
...
...
@@ -17,5 +17,4 @@
#define NF_ARP_FORWARD 2
#define NF_ARP_NUMHOOKS 3
static
DECLARE_MUTEX
(
arpt_mutex
);
#endif
/* __LINUX_ARP_NETFILTER_H */
include/linux/tcp.h
View file @
0f692ee3
...
...
@@ -183,6 +183,9 @@ struct tcp_info
__u32
tcpi_snd_cwnd
;
__u32
tcpi_advmss
;
__u32
tcpi_reordering
;
__u32
tcpi_rcv_rtt
;
__u32
tcpi_rcv_space
;
};
#ifdef __KERNEL__
...
...
@@ -351,11 +354,11 @@ struct tcp_opt {
__u8
urg_mode
;
/* In urgent mode */
__u32
snd_up
;
/* Urgent pointer */
/* The syn_wait_lock is necessary only to avoid
tcp_get_info
having
/* The syn_wait_lock is necessary only to avoid
proc interface
having
* to grab the main lock sock while browsing the listening hash
* (otherwise it's deadlock prone).
* This lock is acquired in read mode only from
tcp_get_info() and
* it's acquired in write mode _only_ from code that is actively
* This lock is acquired in read mode only from
listening_get_next()
*
and
it's acquired in write mode _only_ from code that is actively
* changing the syn_wait_queue. All readers that are holding
* the master sock lock don't need to grab this lock in read mode
* too as the syn_wait_queue writes are always protected from
...
...
include/linux/usb.h
View file @
0f692ee3
...
...
@@ -334,6 +334,7 @@ extern void usb_put_dev(struct usb_device *dev);
/* mostly for devices emulating SCSI over USB */
extern
int
usb_reset_device
(
struct
usb_device
*
dev
);
extern
int
__usb_reset_device
(
struct
usb_device
*
dev
);
extern
struct
usb_device
*
usb_find_device
(
u16
vendor_id
,
u16
product_id
);
...
...
lib/rwsem.c
View file @
0f692ee3
...
...
@@ -29,15 +29,15 @@ void rwsemtrace(struct rw_semaphore *sem, const char *str)
/*
* handle the lock being released whilst there are processes blocked on it that can now run
* - if we come here, then:
* - the 'active part' of the count (&0x0000ffff)
reached zero but has been re-incremented
* - if we come here
from up_xxxx()
, then:
* - the 'active part' of the count (&0x0000ffff)
had reached zero (but may have changed)
* - the 'waiting part' of the count (&0xffff0000) is negative (and will still be so)
* - there must be someone on the queue
* - the spinlock must be held by the caller
* - woken process blocks are discarded from the list after having task zeroed
* - writers are only woken if
wakewrite is non-zero
* - writers are only woken if
downgrading is false
*/
static
inline
struct
rw_semaphore
*
__rwsem_do_wake
(
struct
rw_semaphore
*
sem
,
int
wakewrite
)
static
inline
struct
rw_semaphore
*
__rwsem_do_wake
(
struct
rw_semaphore
*
sem
,
int
downgrading
)
{
struct
rwsem_waiter
*
waiter
;
struct
task_struct
*
tsk
;
...
...
@@ -46,10 +46,12 @@ static inline struct rw_semaphore *__rwsem_do_wake(struct rw_semaphore *sem, int
rwsemtrace
(
sem
,
"Entering __rwsem_do_wake"
);
if
(
!
wakewrite
)
if
(
downgrading
)
goto
dont_wake_writers
;
/* only wake someone up if we can transition the active part of the count from 0 -> 1 */
/* if we came through an up_xxxx() call, we only only wake someone up
* if we can transition the active part of the count from 0 -> 1
*/
try_again:
oldcount
=
rwsem_atomic_update
(
RWSEM_ACTIVE_BIAS
,
sem
)
-
RWSEM_ACTIVE_BIAS
;
if
(
oldcount
&
RWSEM_ACTIVE_MASK
)
...
...
@@ -78,9 +80,10 @@ static inline struct rw_semaphore *__rwsem_do_wake(struct rw_semaphore *sem, int
if
(
waiter
->
flags
&
RWSEM_WAITING_FOR_WRITE
)
goto
out
;
/* grant an infinite number of read locks to the readers at the front of the queue
* - note we increment the 'active part' of the count by the number of readers (less one
* for the activity decrement we've already done) before waking any processes up
/* grant an infinite number of read locks to the readers at the front
* of the queue
* - note we increment the 'active part' of the count by the number of
* readers before waking any processes up
*/
readers_only:
woken
=
0
;
...
...
@@ -95,8 +98,10 @@ static inline struct rw_semaphore *__rwsem_do_wake(struct rw_semaphore *sem, int
}
while
(
waiter
->
flags
&
RWSEM_WAITING_FOR_READ
);
loop
=
woken
;
woken
*=
RWSEM_ACTIVE_BIAS
-
RWSEM_WAITING_BIAS
;
woken
-=
RWSEM_ACTIVE_BIAS
;
woken
*=
RWSEM_ACTIVE_BIAS
-
RWSEM_WAITING_BIAS
;
if
(
!
downgrading
)
woken
-=
RWSEM_ACTIVE_BIAS
;
/* we'd already done one increment
* earlier */
rwsem_atomic_add
(
woken
,
sem
);
next
=
sem
->
wait_list
.
next
;
...
...
@@ -150,7 +155,7 @@ static inline struct rw_semaphore *rwsem_down_failed_common(struct rw_semaphore
* - it might even be this process, since the waker takes a more active part
*/
if
(
!
(
count
&
RWSEM_ACTIVE_MASK
))
sem
=
__rwsem_do_wake
(
sem
,
1
);
sem
=
__rwsem_do_wake
(
sem
,
0
);
spin_unlock
(
&
sem
->
wait_lock
);
...
...
@@ -201,7 +206,7 @@ struct rw_semaphore fastcall __sched *rwsem_down_write_failed(struct rw_semaphor
/*
* handle waking up a waiter on the semaphore
* - up_read has decremented the active part of the count if we come here
* - up_read
/up_write
has decremented the active part of the count if we come here
*/
struct
rw_semaphore
fastcall
*
rwsem_wake
(
struct
rw_semaphore
*
sem
)
{
...
...
@@ -211,7 +216,7 @@ struct rw_semaphore fastcall *rwsem_wake(struct rw_semaphore *sem)
/* do nothing if list empty */
if
(
!
list_empty
(
&
sem
->
wait_list
))
sem
=
__rwsem_do_wake
(
sem
,
1
);
sem
=
__rwsem_do_wake
(
sem
,
0
);
spin_unlock
(
&
sem
->
wait_lock
);
...
...
@@ -233,7 +238,7 @@ struct rw_semaphore fastcall *rwsem_downgrade_wake(struct rw_semaphore *sem)
/* do nothing if list empty */
if
(
!
list_empty
(
&
sem
->
wait_list
))
sem
=
__rwsem_do_wake
(
sem
,
0
);
sem
=
__rwsem_do_wake
(
sem
,
1
);
spin_unlock
(
&
sem
->
wait_lock
);
...
...
net/core/ethtool.c
View file @
0f692ee3
...
...
@@ -652,6 +652,7 @@ int dev_ethtool(struct ifreq *ifr)
struct
net_device
*
dev
=
__dev_get_by_name
(
ifr
->
ifr_name
);
void
__user
*
useraddr
=
ifr
->
ifr_data
;
u32
ethcmd
;
int
rc
;
/*
* XXX: This can be pushed down into the ethtool_* handlers that
...
...
@@ -669,70 +670,109 @@ int dev_ethtool(struct ifreq *ifr)
if
(
copy_from_user
(
&
ethcmd
,
useraddr
,
sizeof
(
ethcmd
)))
return
-
EFAULT
;
if
(
dev
->
ethtool_ops
->
begin
)
if
((
rc
=
dev
->
ethtool_ops
->
begin
(
dev
))
<
0
)
return
rc
;
switch
(
ethcmd
)
{
case
ETHTOOL_GSET
:
return
ethtool_get_settings
(
dev
,
useraddr
);
rc
=
ethtool_get_settings
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SSET
:
return
ethtool_set_settings
(
dev
,
useraddr
);
rc
=
ethtool_set_settings
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GDRVINFO
:
return
ethtool_get_drvinfo
(
dev
,
useraddr
);
rc
=
ethtool_get_drvinfo
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GREGS
:
return
ethtool_get_regs
(
dev
,
useraddr
);
rc
=
ethtool_get_regs
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GWOL
:
return
ethtool_get_wol
(
dev
,
useraddr
);
rc
=
ethtool_get_wol
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SWOL
:
return
ethtool_set_wol
(
dev
,
useraddr
);
rc
=
ethtool_set_wol
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GMSGLVL
:
return
ethtool_get_msglevel
(
dev
,
useraddr
);
rc
=
ethtool_get_msglevel
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SMSGLVL
:
return
ethtool_set_msglevel
(
dev
,
useraddr
);
rc
=
ethtool_set_msglevel
(
dev
,
useraddr
);
break
;
case
ETHTOOL_NWAY_RST
:
return
ethtool_nway_reset
(
dev
);
rc
=
ethtool_nway_reset
(
dev
);
break
;
case
ETHTOOL_GLINK
:
return
ethtool_get_link
(
dev
,
useraddr
);
rc
=
ethtool_get_link
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GEEPROM
:
return
ethtool_get_eeprom
(
dev
,
useraddr
);
rc
=
ethtool_get_eeprom
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SEEPROM
:
return
ethtool_set_eeprom
(
dev
,
useraddr
);
rc
=
ethtool_set_eeprom
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GCOALESCE
:
return
ethtool_get_coalesce
(
dev
,
useraddr
);
rc
=
ethtool_get_coalesce
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SCOALESCE
:
return
ethtool_set_coalesce
(
dev
,
useraddr
);
rc
=
ethtool_set_coalesce
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GRINGPARAM
:
return
ethtool_get_ringparam
(
dev
,
useraddr
);
rc
=
ethtool_get_ringparam
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SRINGPARAM
:
return
ethtool_set_ringparam
(
dev
,
useraddr
);
rc
=
ethtool_set_ringparam
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GPAUSEPARAM
:
return
ethtool_get_pauseparam
(
dev
,
useraddr
);
rc
=
ethtool_get_pauseparam
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SPAUSEPARAM
:
return
ethtool_set_pauseparam
(
dev
,
useraddr
);
rc
=
ethtool_set_pauseparam
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GRXCSUM
:
return
ethtool_get_rx_csum
(
dev
,
useraddr
);
rc
=
ethtool_get_rx_csum
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SRXCSUM
:
return
ethtool_set_rx_csum
(
dev
,
useraddr
);
rc
=
ethtool_set_rx_csum
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GTXCSUM
:
return
ethtool_get_tx_csum
(
dev
,
useraddr
);
rc
=
ethtool_get_tx_csum
(
dev
,
useraddr
);
break
;
case
ETHTOOL_STXCSUM
:
return
ethtool_set_tx_csum
(
dev
,
useraddr
);
rc
=
ethtool_set_tx_csum
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GSG
:
return
ethtool_get_sg
(
dev
,
useraddr
);
rc
=
ethtool_get_sg
(
dev
,
useraddr
);
break
;
case
ETHTOOL_SSG
:
return
ethtool_set_sg
(
dev
,
useraddr
);
rc
=
ethtool_set_sg
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GTSO
:
return
ethtool_get_tso
(
dev
,
useraddr
);
rc
=
ethtool_get_tso
(
dev
,
useraddr
);
break
;
case
ETHTOOL_STSO
:
return
ethtool_set_tso
(
dev
,
useraddr
);
rc
=
ethtool_set_tso
(
dev
,
useraddr
);
break
;
case
ETHTOOL_TEST
:
return
ethtool_self_test
(
dev
,
useraddr
);
rc
=
ethtool_self_test
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GSTRINGS
:
return
ethtool_get_strings
(
dev
,
useraddr
);
rc
=
ethtool_get_strings
(
dev
,
useraddr
);
break
;
case
ETHTOOL_PHYS_ID
:
return
ethtool_phys_id
(
dev
,
useraddr
);
rc
=
ethtool_phys_id
(
dev
,
useraddr
);
break
;
case
ETHTOOL_GSTATS
:
return
ethtool_get_stats
(
dev
,
useraddr
);
rc
=
ethtool_get_stats
(
dev
,
useraddr
);
break
;
default:
r
eturn
-
EOPNOTSUPP
;
r
c
=
-
EOPNOTSUPP
;
}
if
(
dev
->
ethtool_ops
->
complete
)
dev
->
ethtool_ops
->
complete
(
dev
);
return
rc
;
ioctl:
if
(
dev
->
do_ioctl
)
...
...
net/ipv4/netfilter/arp_tables.c
View file @
0f692ee3
...
...
@@ -62,6 +62,8 @@ do { \
#include <linux/netfilter_ipv4/lockhelp.h>
#include <linux/netfilter_ipv4/listhelp.h>
static
DECLARE_MUTEX
(
arpt_mutex
);
struct
arpt_table_info
{
unsigned
int
size
;
unsigned
int
number
;
...
...
net/ipv4/tcp_diag.c
View file @
0f692ee3
...
...
@@ -91,6 +91,9 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
info
->
tcpi_snd_cwnd
=
tp
->
snd_cwnd
;
info
->
tcpi_advmss
=
tp
->
advmss
;
info
->
tcpi_reordering
=
tp
->
reordering
;
info
->
tcpi_rcv_rtt
=
((
1000000
*
tp
->
rcv_rtt_est
.
rtt
)
/
HZ
)
>>
3
;
info
->
tcpi_rcv_space
=
tp
->
rcvq_space
.
space
;
}
static
int
tcpdiag_fill
(
struct
sk_buff
*
skb
,
struct
sock
*
sk
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment