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
nexedi
linux
Commits
ddc4b477
Commit
ddc4b477
authored
Apr 21, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/davem/net-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
1de95269
df42471d
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
210 additions
and
70 deletions
+210
-70
arch/sparc/kernel/pcic.c
arch/sparc/kernel/pcic.c
+17
-3
arch/sparc/kernel/time.c
arch/sparc/kernel/time.c
+24
-5
arch/sparc64/defconfig
arch/sparc64/defconfig
+24
-1
arch/sparc64/kernel/chmc.c
arch/sparc64/kernel/chmc.c
+1
-1
arch/sparc64/kernel/entry.S
arch/sparc64/kernel/entry.S
+1
-1
arch/sparc64/kernel/head.S
arch/sparc64/kernel/head.S
+1
-1
arch/sparc64/kernel/ioctl32.c
arch/sparc64/kernel/ioctl32.c
+3
-1
arch/sparc64/kernel/pci_common.c
arch/sparc64/kernel/pci_common.c
+1
-1
arch/sparc64/kernel/pci_psycho.c
arch/sparc64/kernel/pci_psycho.c
+1
-1
arch/sparc64/kernel/ptrace.c
arch/sparc64/kernel/ptrace.c
+1
-1
arch/sparc64/kernel/rtrap.S
arch/sparc64/kernel/rtrap.S
+1
-1
arch/sparc64/kernel/sbus.c
arch/sparc64/kernel/sbus.c
+2
-2
arch/sparc64/kernel/smp.c
arch/sparc64/kernel/smp.c
+2
-2
arch/sparc64/kernel/time.c
arch/sparc64/kernel/time.c
+24
-7
arch/sparc64/kernel/trampoline.S
arch/sparc64/kernel/trampoline.S
+1
-1
arch/sparc64/prom/printf.c
arch/sparc64/prom/printf.c
+1
-1
arch/sparc64/solaris/misc.c
arch/sparc64/solaris/misc.c
+1
-1
drivers/block/ll_rw_blk.c
drivers/block/ll_rw_blk.c
+4
-2
drivers/block/umem.c
drivers/block/umem.c
+66
-23
fs/jfs/jfs_txnmgr.c
fs/jfs/jfs_txnmgr.c
+14
-1
include/asm-sparc64/asi.h
include/asm-sparc64/asi.h
+2
-2
include/asm-sparc64/bpp.h
include/asm-sparc64/bpp.h
+1
-1
include/asm-sparc64/chafsr.h
include/asm-sparc64/chafsr.h
+2
-2
include/asm-sparc64/estate.h
include/asm-sparc64/estate.h
+2
-2
include/asm-sparc64/ns87303.h
include/asm-sparc64/ns87303.h
+2
-2
include/asm-sparc64/pci.h
include/asm-sparc64/pci.h
+2
-2
include/asm-sparc64/svr4.h
include/asm-sparc64/svr4.h
+1
-1
include/asm-sparc64/upa.h
include/asm-sparc64/upa.h
+1
-1
include/linux/umem.h
include/linux/umem.h
+7
-0
No files found.
arch/sparc/kernel/pcic.c
View file @
ddc4b477
...
...
@@ -828,13 +828,27 @@ static void pci_do_settimeofday(struct timeval *tv)
* made, and then undo it!
*/
tv
->
tv_usec
-=
do_gettimeoffset
();
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
1000000
/
HZ
);
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
USEC_PER_SEC
/
HZ
);
while
(
tv
->
tv_usec
<
0
)
{
tv
->
tv_usec
+=
1000000
;
tv
->
tv_usec
+=
USEC_PER_SEC
;
tv
->
tv_sec
--
;
}
tv
->
tv_usec
*=
NSEC_PER_USEC
;
wall_to_monotonic
.
tv_sec
+=
xtime
.
tv_sec
-
tv
->
tv_sec
;
wall_to_monotonic
.
tv_nsec
+=
xtime
.
tv_nsec
-
tv
->
tv_usec
;
if
(
wall_to_monotonic
.
tv_nsec
>
NSEC_PER_SEC
)
{
wall_to_monotonic
.
tv_nsec
-=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
++
;
}
if
(
wall_to_monotonic
.
tv_nsec
<
0
)
{
wall_to_monotonic
.
tv_nsec
+=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
--
;
}
xtime
.
tv_sec
=
tv
->
tv_sec
;
xtime
.
tv_nsec
=
(
tv
->
tv_usec
*
1000
)
;
xtime
.
tv_nsec
=
tv
->
tv_usec
;
time_adjust
=
0
;
/* stop active adjtime() */
time_status
|=
STA_UNSYNC
;
time_maxerror
=
NTP_PHASE_LIMIT
;
...
...
arch/sparc/kernel/time.c
View file @
ddc4b477
...
...
@@ -408,7 +408,9 @@ void __init sbus_time_init(void)
mon
=
MSTK_REG_MONTH
(
mregs
);
year
=
MSTK_CVT_YEAR
(
MSTK_REG_YEAR
(
mregs
)
);
xtime
.
tv_sec
=
mktime
(
year
,
mon
,
day
,
hour
,
min
,
sec
);
xtime
.
tv_nsec
=
0
;
wall_to_monotonic
.
tv_sec
=
-
xtime
.
tv_sec
+
INITIAL_JIFFIES
/
HZ
;
xtime
.
tv_nsec
=
(
INITIAL_JIFFIES
%
HZ
)
*
(
NSEC_PER_SEC
/
HZ
);
wall_to_monotonic
.
tv_nsec
=
0
;
mregs
->
creg
&=
~
MSTK_CREG_READ
;
spin_unlock_irq
(
&
mostek_lock
);
#ifdef CONFIG_SUN4
...
...
@@ -439,7 +441,9 @@ void __init sbus_time_init(void)
intersil_start
(
iregs
);
xtime
.
tv_sec
=
mktime
(
year
,
mon
,
day
,
hour
,
min
,
sec
);
xtime
.
tv_nsec
=
0
;
wall_to_monotonic
.
tv_sec
=
-
xtime
.
tv_sec
+
INITIAL_JIFFIES
/
HZ
;
xtime
.
tv_nsec
=
(
INITIAL_JIFFIES
%
HZ
)
*
(
NSEC_PER_SEC
/
HZ
);
wall_to_monotonic
.
tv_nsec
=
0
;
printk
(
"%u/%u/%u %u:%u:%u
\n
"
,
day
,
mon
,
year
,
hour
,
min
,
sec
);
}
#endif
...
...
@@ -512,13 +516,28 @@ static void sbus_do_settimeofday(struct timeval *tv)
* made, and then undo it!
*/
tv
->
tv_usec
-=
do_gettimeoffset
();
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
1000000
/
HZ
);
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
USEC_PER_SEC
/
HZ
);
while
(
tv
->
tv_usec
<
0
)
{
tv
->
tv_usec
+=
1000000
;
tv
->
tv_usec
+=
USEC_PER_SEC
;
tv
->
tv_sec
--
;
}
tv
->
tv_usec
*=
NSEC_PER_USEC
;
wall_to_monotonic
.
tv_sec
+=
xtime
.
tv_sec
-
tv
->
tv_sec
;
wall_to_monotonic
.
tv_nsec
+=
xtime
.
tv_nsec
-
tv
->
tv_usec
;
if
(
wall_to_monotonic
.
tv_nsec
>
NSEC_PER_SEC
)
{
wall_to_monotonic
.
tv_nsec
-=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
++
;
}
if
(
wall_to_monotonic
.
tv_nsec
<
0
)
{
wall_to_monotonic
.
tv_nsec
+=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
--
;
}
xtime
.
tv_sec
=
tv
->
tv_sec
;
xtime
.
tv_nsec
=
(
tv
->
tv_usec
*
1000
)
;
xtime
.
tv_nsec
=
tv
->
tv_usec
;
time_adjust
=
0
;
/* stop active adjtime() */
time_status
|=
STA_UNSYNC
;
time_maxerror
=
NTP_PHASE_LIMIT
;
...
...
arch/sparc64/defconfig
View file @
ddc4b477
...
...
@@ -334,7 +334,30 @@ CONFIG_FUSION_LAN=m
#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
#
# CONFIG_IEEE1394 is not set
CONFIG_IEEE1394=m
#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set
CONFIG_IEEE1394_OUI_DB=y
#
# Device Drivers
#
CONFIG_IEEE1394_OHCI1394=m
#
# Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_IEEE1394_CMP=m
CONFIG_IEEE1394_AMDTP=m
#
# Networking support
...
...
arch/sparc64/kernel/chmc.c
View file @
ddc4b477
...
...
@@ -224,7 +224,7 @@ int chmc_getunumber(int syndrome_code,
int
dimm
;
/* Multi-bit error, we just dump out all the
* dimm labels asso
s
ciated with this bank.
* dimm labels associated with this bank.
*/
for
(
dimm
=
0
;
dimm
<
CHMCTRL_NDIMMS
;
dimm
++
)
{
sprintf
(
buf
,
"%s "
,
...
...
arch/sparc64/kernel/entry.S
View file @
ddc4b477
...
...
@@ -1264,7 +1264,7 @@ dcpe_icpe_tl1_common:
*
because
corrupt
data
may
have
been
placed
there
and
we
don
't
*
want
to
reference
it
.
*
*
%
g1
is
one
if
this
trap
occured
at
%
tl
>=
1
.
*
%
g1
is
one
if
this
trap
occur
r
ed
at
%
tl
>=
1
.
*
*
Next
,
we
turn
off
error
reporting
so
that
we
don
't recurse.
*/
...
...
arch/sparc64/kernel/head.S
View file @
ddc4b477
...
...
@@ -84,7 +84,7 @@ sparc64_boot:
nop
cheetah_plus_boot
:
/
*
Preserve
OBP
cho
o
sen
DCU
and
DCR
register
settings
.
*/
/
*
Preserve
OBP
chosen
DCU
and
DCR
register
settings
.
*/
ba
,
pt
%
xcc
,
cheetah_generic_boot
nop
...
...
arch/sparc64/kernel/ioctl32.c
View file @
ddc4b477
...
...
@@ -3137,7 +3137,7 @@ typedef struct drm32_dma {
#define DRM32_IOCTL_DMA DRM_IOWR(0x29, drm32_dma_t)
/* RED PEN The DRM layer blindly dereferences the send/request
* ind
ice
/size arrays even though they are userland
* ind
ex
/size arrays even though they are userland
* pointers. -DaveM
*/
static
int
drm32_dma
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
...
...
@@ -4243,6 +4243,8 @@ COMPATIBLE_IOCTL(DVD_AUTH)
/* Big L */
COMPATIBLE_IOCTL
(
LOOP_SET_FD
)
COMPATIBLE_IOCTL
(
LOOP_CLR_FD
)
COMPATIBLE_IOCTL
(
LOOP_SET_STATUS64
)
COMPATIBLE_IOCTL
(
LOOP_GET_STATUS64
)
/* Big A */
COMPATIBLE_IOCTL
(
AUDIO_GETINFO
)
COMPATIBLE_IOCTL
(
AUDIO_SETINFO
)
...
...
arch/sparc64/kernel/pci_common.c
View file @
ddc4b477
...
...
@@ -145,7 +145,7 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm,
* there must be a damn good reason for it.
*
* So what we do is delete the device from the
* PCI device tree completely. This scen
e
rio
* PCI device tree completely. This scen
a
rio
* is seen, for example, on CP1500 for the
* second EBUS/HappyMeal pair if the external
* connector for it is not present.
...
...
arch/sparc64/kernel/pci_psycho.c
View file @
ddc4b477
...
...
@@ -854,7 +854,7 @@ static irqreturn_t psycho_ce_intr(int irq, void *dev_id, struct pt_regs *regs)
}
/* PCI Errors. They are signalled by the PCI bus module since they
* are asso
s
ciated with a specific bus segment.
* are associated with a specific bus segment.
*/
#define PSYCHO_PCI_AFSR_A 0x2010UL
#define PSYCHO_PCI_AFSR_B 0x4010UL
...
...
arch/sparc64/kernel/ptrace.c
View file @
ddc4b477
...
...
@@ -6,7 +6,7 @@
* Based upon code written by Ross Biro, Linus Torvalds, Bob Manson,
* and David Mosberger.
*
* Added Linux support -miguel (weird, eh?, the orignal code was meant
* Added Linux support -miguel (weird, eh?, the orig
i
nal code was meant
* to emulate SunOS).
*/
...
...
arch/sparc64/kernel/rtrap.S
View file @
ddc4b477
...
...
@@ -210,7 +210,7 @@ __handle_user_windows_continue:
__handle_perfctrs_continue
:
andcc
%
l1
,
%
o0
,
%
g0
/
*
This
fpdepth
clear
is
nec
c
essary
for
non
-
syscall
rtraps
only
*/
/
*
This
fpdepth
clear
is
necessary
for
non
-
syscall
rtraps
only
*/
user_nowork
:
bne
,
pn
%
xcc
,
__handle_userfpu
stb
%
g0
,
[%
g6
+
TI_FPDEPTH
]
...
...
arch/sparc64/kernel/sbus.c
View file @
ddc4b477
...
...
@@ -728,7 +728,7 @@ static unsigned long sysio_irq_offsets[] = {
#define NUM_SYSIO_OFFSETS (sizeof(sysio_irq_offsets) / sizeof(sysio_irq_offsets[0]))
/* Convert Interrupt Mapping register pointer to asso
s
ciated
/* Convert Interrupt Mapping register pointer to associated
* Interrupt Clear register pointer, SYSIO specific version.
*/
#define SYSIO_ICLR_UNUSED0 0x3400UL
...
...
@@ -1098,7 +1098,7 @@ void __init sbus_iommu_init(int prom_node, struct sbus_bus *sbus)
prom_halt
();
}
/* Align on E$ line boundry. */
/* Align on E$ line bound
a
ry. */
iommu
=
(
struct
sbus_iommu
*
)
(((
unsigned
long
)
iommu
+
(
SMP_CACHE_BYTES
-
1UL
))
&
~
(
SMP_CACHE_BYTES
-
1UL
));
...
...
arch/sparc64/kernel/smp.c
View file @
ddc4b477
...
...
@@ -1071,7 +1071,7 @@ void smp_percpu_timer_interrupt(struct pt_regs *regs)
prof_counter
(
cpu
)
=
prof_multiplier
(
cpu
);
}
/* Guar
e
ntee that the following sequences execute
/* Guar
a
ntee that the following sequences execute
* uninterrupted.
*/
__asm__
__volatile__
(
"rdpr %%pstate, %0
\n\t
"
...
...
@@ -1096,7 +1096,7 @@ static void __init smp_setup_percpu_timer(void)
prof_counter
(
cpu
)
=
prof_multiplier
(
cpu
)
=
1
;
/* Guar
e
ntee that the following sequences execute
/* Guar
a
ntee that the following sequences execute
* uninterrupted.
*/
__asm__
__volatile__
(
"rdpr %%pstate, %0
\n\t
"
...
...
arch/sparc64/kernel/time.c
View file @
ddc4b477
...
...
@@ -489,7 +489,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
#endif
do_timer
(
regs
);
/* Guar
e
ntee that the following sequences execute
/* Guar
a
ntee that the following sequences execute
* uninterrupted.
*/
__asm__
__volatile__
(
"rdpr %%pstate, %0
\n\t
"
...
...
@@ -703,7 +703,9 @@ static void __init set_system_time(void)
}
xtime
.
tv_sec
=
mktime
(
year
,
mon
,
day
,
hour
,
min
,
sec
);
xtime
.
tv_nsec
=
0
;
wall_to_monotonic
.
tv_sec
=
-
xtime
.
tv_sec
+
INITIAL_JIFFIES
/
HZ
;
xtime
.
tv_nsec
=
(
INITIAL_JIFFIES
%
HZ
)
*
(
NSEC_PER_SEC
/
HZ
);
wall_to_monotonic
.
tv_nsec
=
0
;
if
(
mregs
)
{
tmp
=
mostek_read
(
mregs
+
MOSTEK_CREG
);
...
...
@@ -741,7 +743,9 @@ void __init clock_probe(void)
(
unsigned
int
)
(
long
)
&
unix_tod
);
prom_feval
(
obp_gettod
);
xtime
.
tv_sec
=
unix_tod
;
xtime
.
tv_nsec
=
0
;
wall_to_monotonic
.
tv_sec
=
-
xtime
.
tv_sec
+
INITIAL_JIFFIES
/
HZ
;
xtime
.
tv_nsec
=
(
INITIAL_JIFFIES
%
HZ
)
*
(
NSEC_PER_SEC
/
HZ
);
wall_to_monotonic
.
tv_nsec
=
0
;
return
;
}
...
...
@@ -972,7 +976,7 @@ static unsigned long sparc64_init_timers(irqreturn_t (*cfunc)(int, void *, struc
prom_halt
();
}
/* Guar
e
ntee that the following sequences execute
/* Guar
a
ntee that the following sequences execute
* uninterrupted.
*/
__asm__
__volatile__
(
"rdpr %%pstate, %0
\n\t
"
...
...
@@ -1097,15 +1101,28 @@ void do_settimeofday(struct timeval *tv)
* made, and then undo it!
*/
tv
->
tv_usec
-=
do_gettimeoffset
();
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
1000000
/
HZ
);
tv
->
tv_usec
-=
(
jiffies
-
wall_jiffies
)
*
(
USEC_PER_SEC
/
HZ
);
while
(
tv
->
tv_usec
<
0
)
{
tv
->
tv_usec
+=
1000000
;
tv
->
tv_usec
+=
USEC_PER_SEC
;
tv
->
tv_sec
--
;
}
tv
->
tv_usec
*=
NSEC_PER_USEC
;
wall_to_monotonic
.
tv_sec
+=
xtime
.
tv_sec
-
tv
->
tv_sec
;
wall_to_monotonic
.
tv_nsec
+=
xtime
.
tv_nsec
-
tv
->
tv_usec
;
if
(
wall_to_monotonic
.
tv_nsec
>
NSEC_PER_SEC
)
{
wall_to_monotonic
.
tv_nsec
-=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
++
;
}
if
(
wall_to_monotonic
.
tv_nsec
<
0
)
{
wall_to_monotonic
.
tv_nsec
+=
NSEC_PER_SEC
;
wall_to_monotonic
.
tv_sec
--
;
}
xtime
.
tv_sec
=
tv
->
tv_sec
;
xtime
.
tv_nsec
=
(
tv
->
tv_usec
*
1000
)
;
xtime
.
tv_nsec
=
tv
->
tv_usec
;
time_adjust
=
0
;
/* stop active adjtime() */
time_status
|=
STA_UNSYNC
;
time_maxerror
=
NTP_PHASE_LIMIT
;
...
...
arch/sparc64/kernel/trampoline.S
View file @
ddc4b477
...
...
@@ -40,7 +40,7 @@ sparc64_cpu_startup:
nop
cheetah_plus_startup
:
/
*
Preserve
OBP
cho
o
sen
DCU
and
DCR
register
settings
.
*/
/
*
Preserve
OBP
chosen
DCU
and
DCR
register
settings
.
*/
ba
,
pt
%
xcc
,
cheetah_generic_startup
nop
...
...
arch/sparc64/prom/printf.c
View file @
ddc4b477
...
...
@@ -6,7 +6,7 @@
* Copyright (c) 2002 Pete Zaitcev (zaitcev@yahoo.com)
*
* We used to warn all over the code: DO NOT USE prom_printf(),
* and yet people do. Anton's banking code was outputing banks
* and yet people do. Anton's banking code was output
t
ing banks
* with prom_printf for most of the 2.4 lifetime. Since an effective
* stick is not available, we deployed a carrot: an early printk
* through PROM by means of -p boot option. This ought to fix it.
...
...
arch/sparc64/solaris/misc.c
View file @
ddc4b477
/* $Id: misc.c,v 1.36 2002/02/09 19:49:31 davem Exp $
* misc.c: Miscelaneous syscall emulation for Solaris
* misc.c: Miscel
l
aneous syscall emulation for Solaris
*
* Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
...
...
drivers/block/ll_rw_blk.c
View file @
ddc4b477
...
...
@@ -2164,8 +2164,7 @@ int end_that_request_chunk(struct request *req, int uptodate, int nr_bytes)
void
end_that_request_last
(
struct
request
*
req
)
{
struct
gendisk
*
disk
=
req
->
rq_disk
;
if
(
req
->
waiting
)
complete
(
req
->
waiting
);
struct
completion
*
waiting
=
req
->
waiting
;
if
(
disk
)
{
unsigned
long
duration
=
jiffies
-
req
->
start_time
;
...
...
@@ -2183,6 +2182,9 @@ void end_that_request_last(struct request *req)
disk_stat_dec
(
disk
,
in_flight
);
}
__blk_put_request
(
req
->
q
,
req
);
/* Do this LAST! The structure may be freed immediately afterwards */
if
(
waiting
)
complete
(
waiting
);
}
int
__init
blk_dev_init
(
void
)
...
...
drivers/block/umem.c
View file @
ddc4b477
...
...
@@ -149,6 +149,7 @@ struct cardinfo {
spinlock_t
lock
;
int
check_batteries
;
int
flags
;
};
static
struct
cardinfo
cards
[
MM_MAXCARDS
];
...
...
@@ -573,7 +574,7 @@ static int mm_make_request(request_queue_t *q, struct bio *bio)
-- mm_interrupt
-----------------------------------------------------------------------------------
*/
static
void
mm_interrupt
(
int
irq
,
void
*
__card
,
struct
pt_regs
*
regs
)
static
irqreturn_t
mm_interrupt
(
int
irq
,
void
*
__card
,
struct
pt_regs
*
regs
)
{
struct
cardinfo
*
card
=
(
struct
cardinfo
*
)
__card
;
unsigned
int
dma_status
;
...
...
@@ -585,13 +586,16 @@ HW_TRACE(0x30);
if
(
!
(
dma_status
&
(
DMASCR_ERROR_MASK
|
DMASCR_CHAIN_COMPLETE
)))
{
/* interrupt wasn't for me ... */
return
;
return
IRQ_NONE
;
}
/* clear COMPLETION interrupts */
writel
(
cpu_to_le32
(
DMASCR_DMA_COMPLETE
|
DMASCR_CHAIN_COMPLETE
),
card
->
csr_remap
+
DMA_STATUS_CTRL
);
if
(
card
->
flags
&
UM_FLAG_NO_BYTE_STATUS
)
writel
(
cpu_to_le32
(
DMASCR_DMA_COMPLETE
|
DMASCR_CHAIN_COMPLETE
),
card
->
csr_remap
+
DMA_STATUS_CTRL
);
else
writeb
((
DMASCR_DMA_COMPLETE
|
DMASCR_CHAIN_COMPLETE
)
>>
16
,
card
->
csr_remap
+
DMA_STATUS_CTRL
+
2
);
/* log errors and clear interrupt status */
if
(
dma_status
&
DMASCR_ANY_ERR
)
{
...
...
@@ -663,6 +667,7 @@ HW_TRACE(0x30);
HW_TRACE
(
0x36
);
return
IRQ_HANDLED
;
}
/*
-----------------------------------------------------------------------------------
...
...
@@ -755,15 +760,16 @@ static void check_all_batteries(unsigned long ptr)
{
int
i
;
for
(
i
=
0
;
i
<
num_cards
;
i
++
)
{
struct
cardinfo
*
card
=
&
cards
[
i
];
spin_lock_bh
(
&
card
->
lock
);
if
(
card
->
Active
>=
0
)
card
->
check_batteries
=
1
;
else
check_batteries
(
card
);
spin_unlock_bh
(
&
card
->
lock
);
}
for
(
i
=
0
;
i
<
num_cards
;
i
++
)
if
(
!
(
cards
[
i
].
flags
&
UM_FLAG_NO_BATT
))
{
struct
cardinfo
*
card
=
&
cards
[
i
];
spin_lock_bh
(
&
card
->
lock
);
if
(
card
->
Active
>=
0
)
card
->
check_batteries
=
1
;
else
check_batteries
(
card
);
spin_unlock_bh
(
&
card
->
lock
);
}
init_battery_timer
();
}
...
...
@@ -869,6 +875,7 @@ static int __devinit mm_pci_probe(struct pci_dev *dev, const struct pci_device_i
unsigned
char
mem_present
;
unsigned
char
batt_status
;
unsigned
int
saved_bar
,
data
;
int
magic_number
;
if
(
pci_enable_device
(
dev
)
<
0
)
return
-
ENODEV
;
...
...
@@ -933,12 +940,33 @@ static int __devinit mm_pci_probe(struct pci_dev *dev, const struct pci_device_i
printk
(
KERN_INFO
"MM%d: MEM area not remapped (CONFIG_MM_MAP_MEMORY not set)
\n
"
,
card
->
card_number
);
#endif
if
(
readb
(
card
->
csr_remap
+
MEMCTRLSTATUS_MAGIC
)
!=
MM_MAGIC_VALUE
)
{
switch
(
card
->
dev
->
device
)
{
case
0x5415
:
card
->
flags
|=
UM_FLAG_NO_BYTE_STATUS
|
UM_FLAG_NO_BATTREG
;
magic_number
=
0x59
;
break
;
case
0x5425
:
card
->
flags
|=
UM_FLAG_NO_BYTE_STATUS
;
magic_number
=
0x5C
;
break
;
case
0x6155
:
card
->
flags
|=
UM_FLAG_NO_BYTE_STATUS
|
UM_FLAG_NO_BATTREG
|
UM_FLAG_NO_BATT
;
magic_number
=
0x99
;
break
;
default:
magic_number
=
0x100
;
break
;
}
if
(
readb
(
card
->
csr_remap
+
MEMCTRLSTATUS_MAGIC
)
!=
magic_number
)
{
printk
(
KERN_ERR
"MM%d: Magic number invalid
\n
"
,
card
->
card_number
);
ret
=
-
ENOMEM
;
goto
failed_magic
;
}
card
->
mm_pages
[
0
].
desc
=
pci_alloc_consistent
(
card
->
dev
,
PAGE_SIZE
*
2
,
&
card
->
mm_pages
[
0
].
page_dma
);
...
...
@@ -997,14 +1025,19 @@ static int __devinit mm_pci_probe(struct pci_dev *dev, const struct pci_device_i
card
->
battery
[
1
].
good
=
!
(
batt_status
&
BATTERY_2_FAILURE
);
card
->
battery
[
0
].
last_change
=
card
->
battery
[
1
].
last_change
=
jiffies
;
printk
(
KERN_INFO
"MM%d: Size %d KB, Battery 1 %s (%s), Battery 2 %s (%s)
\n
"
,
card
->
card_number
,
card
->
mm_size
,
(
batt_status
&
BATTERY_1_DISABLED
?
"Disabled"
:
"Enabled"
),
card
->
battery
[
0
].
good
?
"OK"
:
"FAILURE"
,
(
batt_status
&
BATTERY_2_DISABLED
?
"Disabled"
:
"Enabled"
),
card
->
battery
[
1
].
good
?
"OK"
:
"FAILURE"
);
if
(
card
->
flags
&
UM_FLAG_NO_BATT
)
printk
(
KERN_INFO
"MM%d: Size %d KB
\n
"
,
card
->
card_number
,
card
->
mm_size
);
else
{
printk
(
KERN_INFO
"MM%d: Size %d KB, Battery 1 %s (%s), Battery 2 %s (%s)
\n
"
,
card
->
card_number
,
card
->
mm_size
,
(
batt_status
&
BATTERY_1_DISABLED
?
"Disabled"
:
"Enabled"
),
card
->
battery
[
0
].
good
?
"OK"
:
"FAILURE"
,
(
batt_status
&
BATTERY_2_DISABLED
?
"Disabled"
:
"Enabled"
),
card
->
battery
[
1
].
good
?
"OK"
:
"FAILURE"
);
set_fault_to_battery_status
(
card
);
set_fault_to_battery_status
(
card
);
}
pci_read_config_dword
(
dev
,
PCI_BASE_ADDRESS_1
,
&
saved_bar
);
data
=
0xffffffff
;
...
...
@@ -1117,6 +1150,16 @@ static const struct pci_device_id __devinitdata mm_pci_ids[] = { {
},
{
.
vendor
=
PCI_VENDOR_ID_MICRO_MEMORY
,
.
device
=
PCI_DEVICE_ID_MICRO_MEMORY_5425CN
,
},
{
.
vendor
=
PCI_VENDOR_ID_MICRO_MEMORY
,
.
device
=
PCI_DEVICE_ID_MICRO_MEMORY_6155
,
},
{
.
vendor
=
0x8086
,
.
device
=
0xB555
,
.
subvendor
=
0x1332
,
.
subdevice
=
0x5460
,
.
class
=
0x050000
,
.
class_mask
=
0
,
},
{
/* end: all zeroes */
}
};
...
...
fs/jfs/jfs_txnmgr.c
View file @
ddc4b477
...
...
@@ -1240,8 +1240,21 @@ int txCommit(tid_t tid, /* transaction identifier */
* Ensure that inode isn't reused before
* lazy commit thread finishes processing
*/
if
(
tblk
->
xflag
&
(
COMMIT_CREATE
|
COMMIT_DELETE
))
if
(
tblk
->
xflag
&
(
COMMIT_CREATE
|
COMMIT_DELETE
))
{
atomic_inc
(
&
tblk
->
ip
->
i_count
);
/*
* Avoid a rare deadlock
*
* If the inode is locked, we may be blocked in
* jfs_commit_inode. If so, we don't want the
* lazy_commit thread doing the last iput() on the inode
* since that may block on the locked inode. Instead,
* commit the transaction synchronously, so the last iput
* will be done by the calling thread (or later)
*/
if
(
tblk
->
ip
->
i_state
&
I_LOCK
)
tblk
->
xflag
&=
~
COMMIT_LAZY
;
}
ASSERT
((
!
(
tblk
->
xflag
&
COMMIT_DELETE
))
||
((
tblk
->
ip
->
i_nlink
==
0
)
&&
...
...
include/asm-sparc64/asi.h
View file @
ddc4b477
...
...
@@ -102,13 +102,13 @@
#define ASI_PST8_P 0xc0
/* Primary, 8 8-bit, partial */
#define ASI_PST8_S 0xc1
/* Secondary, 8 8-bit, partial */
#define ASI_PST16_P 0xc2
/* Primary, 4 16-bit, partial */
#define ASI_PST16_S 0xc3
/* Seconary, 4 16-bit, partial */
#define ASI_PST16_S 0xc3
/* Secon
d
ary, 4 16-bit, partial */
#define ASI_PST32_P 0xc4
/* Primary, 2 32-bit, partial */
#define ASI_PST32_S 0xc5
/* Secondary, 2 32-bit, partial */
#define ASI_PST8_PL 0xc8
/* Primary, 8 8-bit, partial, little */
#define ASI_PST8_SL 0xc9
/* Secondary, 8 8-bit, partial, little */
#define ASI_PST16_PL 0xca
/* Primary, 4 16-bit, partial, little */
#define ASI_PST16_SL 0xcb
/* Seconary, 4 16-bit, partial, little */
#define ASI_PST16_SL 0xcb
/* Secon
d
ary, 4 16-bit, partial, little */
#define ASI_PST32_PL 0xcc
/* Primary, 2 32-bit, partial, little */
#define ASI_PST32_SL 0xcd
/* Secondary, 2 32-bit, partial, little */
#define ASI_FL8_P 0xd0
/* Primary, 1 8-bit, fpu ld/st */
...
...
include/asm-sparc64/bpp.h
View file @
ddc4b477
...
...
@@ -17,7 +17,7 @@
* with compliant or compatible devices. It will use whatever features
* the device supports, prefering those that are typically faster.
*
* When the device is opened, it is left in COMPAT
A
BILITY mode, and
* When the device is opened, it is left in COMPAT
I
BILITY mode, and
* writes work like any printer device. The driver only attempt to
* negotiate 1284 modes when needed so that plugs can be pulled,
* switch boxes switched, etc., without disrupting things. It will
...
...
include/asm-sparc64/chafsr.h
View file @
ddc4b477
...
...
@@ -61,7 +61,7 @@
/* Uncorrectable system bus data ECC error for read of interrupt vector */
#define CHAFSR_IVU 0x0000200000000000
/* Unmappe
e
d error from system bus */
/* Unmapped error from system bus */
#define CHAFSR_TO 0x0000100000000000
/* Bus error response from system bus */
...
...
@@ -127,7 +127,7 @@
/* The AFSR must be explicitly cleared by software, it is not cleared automatically
* by a read. Writes to bits <51:33> with bits set will clear the corresponding
* bits in the AFSR. Bits asso
s
ciated with disrupting traps must be cleared before
* bits in the AFSR. Bits associated with disrupting traps must be cleared before
* interrupts are re-enabled to prevent multiple traps for the same error. I.e.
* PSTATE.IE and AFSR bits control delivery of disrupting traps.
*
...
...
include/asm-sparc64/estate.h
View file @
ddc4b477
...
...
@@ -15,7 +15,7 @@
* errors 2) uncorrectable E-cache errors. Such events only occur on reads
* of the E-cache by the local processor for: 1) data loads 2) instruction
* fetches 3) atomic operations. Such events _cannot_ occur for: 1) merge
* 2) writeback 2) copyout. The AFSR bits asso
s
ciated with these traps are
* 2) writeback 2) copyout. The AFSR bits associated with these traps are
* UCC and UCU.
*/
...
...
@@ -31,7 +31,7 @@
* 4) As the result of such errors on instruction vector fetch can generate any
* of the 3 trap types.
*
* The AFSR bits asso
s
ciated with these traps are EMU, EDU, WDU, CPU, IVU, UE,
* The AFSR bits associated with these traps are EMU, EDU, WDU, CPU, IVU, UE,
* BERR, and TO.
*/
...
...
include/asm-sparc64/ns87303.h
View file @
ddc4b477
...
...
@@ -9,7 +9,7 @@
#define _SPARC_NS87303_H 1
/*
* Control
l
Register Index Values
* Control Register Index Values
*/
#define FER 0x00
#define FAR 0x01
...
...
@@ -58,7 +58,7 @@
#define TUP_EPP_TIMO 0x02
/* Enable EPP timeout IRQ */
/* Advanced SuperIO Config Register (ASC) bits */
#define ASC_LPT_IRQ7 0x01
/* Al
l
ways use IRQ7 for LPT */
#define ASC_LPT_IRQ7 0x01
/* Always use IRQ7 for LPT */
#define ASC_DRV2_SEL 0x02
/* Logical Drive Exchange controlled by TDR */
#define FER_RESERVED 0x00
...
...
include/asm-sparc64/pci.h
View file @
ddc4b477
...
...
@@ -50,7 +50,7 @@ extern void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size, dma_addr_t
* size must be the same as what as passed into pci_alloc_consistent,
* and likewise dma_addr must be the same as what *dma_addrp was set to.
*
* References to the memory and mappings asso
s
ciated with cpu_addr/dma_addr
* References to the memory and mappings associated with cpu_addr/dma_addr
* past this call are illegal.
*/
extern
void
pci_free_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
void
*
vaddr
,
dma_addr_t
dma_handle
);
...
...
@@ -92,7 +92,7 @@ extern void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, size_t
(((PTR)->LEN_NAME) = (VAL))
/* Map a set of buffers described by scatterlist in streaming
* mode for DMA. This is the scat
h
er-gather version of the
* mode for DMA. This is the scat
t
er-gather version of the
* above pci_map_single interface. Here the scatter gather list
* elements are each tagged with the appropriate dma address
* and length. They are obtained via sg_dma_{address,length}(SG).
...
...
include/asm-sparc64/svr4.h
View file @
ddc4b477
...
...
@@ -85,7 +85,7 @@ enum svr4_stack_flags {
SVR4_SS_DISABLE
,
};
/* signal stack exection place, unsupported */
/* signal stack exec
u
tion place, unsupported */
typedef
struct
svr4_stack_t
{
char
*
sp
;
int
size
;
...
...
include/asm-sparc64/upa.h
View file @
ddc4b477
...
...
@@ -21,7 +21,7 @@
#define UPA_PORTID_PREQDQ 0x000000007e000000
/* slave-wr's to mod supported */
#define UPA_PORTID_PREQRD 0x0000000001e00000
/* # incoming P_REQ's supported */
#define UPA_PORTID_UPACAP 0x00000000001f0000
/* UPA capabilities of mod */
#define UPA_PORTID_ID 0x000000000000ffff
/* Module I
n
dentification bits */
#define UPA_PORTID_ID 0x000000000000ffff
/* Module Identification bits */
/* UPA I/O space accessors */
#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
...
...
include/linux/umem.h
View file @
ddc4b477
...
...
@@ -128,4 +128,11 @@ struct mm_dma_desc {
#define PCI_VENDOR_ID_MICRO_MEMORY 0x1332
#define PCI_DEVICE_ID_MICRO_MEMORY_5415CN 0x5415
#define PCI_DEVICE_ID_MICRO_MEMORY_5425CN 0x5425
#define PCI_DEVICE_ID_MICRO_MEMORY_6155 0x6155
/* bits for card->flags */
#define UM_FLAG_DMA_IN_REGS 1
#define UM_FLAG_NO_BYTE_STATUS 2
#define UM_FLAG_NO_BATTREG 4
#define UM_FLAG_NO_BATT 8
#endif
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