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
455ffa60
Commit
455ffa60
authored
Jan 02, 2012
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
parents
3ab0b245
115e8e70
Changes
36
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
189 additions
and
176 deletions
+189
-176
arch/arm/Kconfig
arch/arm/Kconfig
+2
-2
arch/arm/common/pl330.c
arch/arm/common/pl330.c
+49
-67
arch/arm/configs/imx_v4_v5_defconfig
arch/arm/configs/imx_v4_v5_defconfig
+7
-5
arch/arm/mach-exynos/cpu.c
arch/arm/mach-exynos/cpu.c
+0
-5
arch/arm/mach-imx/Kconfig
arch/arm/mach-imx/Kconfig
+4
-4
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/Makefile
+2
-2
arch/arm/mach-imx/clock-imx35.c
arch/arm/mach-imx/clock-imx35.c
+10
-10
arch/arm/mach-imx/mach-cpuimx35.c
arch/arm/mach-imx/mach-cpuimx35.c
+7
-1
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+0
-4
arch/arm/mm/proc-v7.S
arch/arm/mm/proc-v7.S
+4
-2
arch/arm/plat-mxc/cpufreq.c
arch/arm/plat-mxc/cpufreq.c
+1
-1
arch/arm/plat-mxc/include/mach/uncompress.h
arch/arm/plat-mxc/include/mach/uncompress.h
+1
-0
arch/arm/plat-mxc/pwm.c
arch/arm/plat-mxc/pwm.c
+9
-0
arch/arm/plat-orion/gpio.c
arch/arm/plat-orion/gpio.c
+5
-1
arch/arm/plat-samsung/include/plat/cpu-freq-core.h
arch/arm/plat-samsung/include/plat/cpu-freq-core.h
+15
-10
drivers/dma/Kconfig
drivers/dma/Kconfig
+2
-2
drivers/input/mouse/sentelic.c
drivers/input/mouse/sentelic.c
+4
-4
drivers/input/mouse/sentelic.h
drivers/input/mouse/sentelic.h
+2
-1
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/gspca.c
+1
-1
drivers/mmc/host/mmci.c
drivers/mmc/host/mmci.c
+10
-4
drivers/net/ethernet/marvell/skge.c
drivers/net/ethernet/marvell/skge.c
+3
-0
drivers/net/ethernet/mellanox/mlx4/en_cq.c
drivers/net/ethernet/mellanox/mlx4/en_cq.c
+1
-0
drivers/of/platform.c
drivers/of/platform.c
+1
-1
drivers/watchdog/coh901327_wdt.c
drivers/watchdog/coh901327_wdt.c
+4
-2
drivers/watchdog/hpwdt.c
drivers/watchdog/hpwdt.c
+4
-1
drivers/watchdog/iTCO_wdt.c
drivers/watchdog/iTCO_wdt.c
+3
-3
drivers/watchdog/sp805_wdt.c
drivers/watchdog/sp805_wdt.c
+1
-1
fs/ceph/dir.c
fs/ceph/dir.c
+3
-26
include/net/ip_vs.h
include/net/ip_vs.h
+1
-1
kernel/futex.c
kernel/futex.c
+20
-8
kernel/time/clockevents.c
kernel/time/clockevents.c
+0
-1
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_conn.c
+1
-1
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/ipvs/ip_vs_ctl.c
+8
-2
net/netfilter/ipvs/ip_vs_sync.c
net/netfilter/ipvs/ip_vs_sync.c
+1
-1
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_conntrack_netlink.c
+2
-2
sound/soc/codecs/wm8776.c
sound/soc/codecs/wm8776.c
+1
-0
No files found.
arch/arm/Kconfig
View file @
455ffa60
...
...
@@ -1246,7 +1246,7 @@ config PL310_ERRATA_588369
config ARM_ERRATA_720789
bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
depends on CPU_V7
&& SMP
depends on CPU_V7
help
This option enables the workaround for the 720789 Cortex-A9 (prior to
r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
...
...
@@ -1282,7 +1282,7 @@ config ARM_ERRATA_743622
config ARM_ERRATA_751472
bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
depends on CPU_V7
&& SMP
depends on CPU_V7
help
This option enables the workaround for the 751472 Cortex-A9 (prior
to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
...
...
arch/arm/common/pl330.c
View file @
455ffa60
...
...
@@ -221,17 +221,6 @@
*/
#define MCODE_BUFF_PER_REQ 256
/*
* Mark a _pl330_req as free.
* We do it by writing DMAEND as the first instruction
* because no valid request is going to have DMAEND as
* its first instruction to execute.
*/
#define MARK_FREE(req) do { \
_emit_END(0, (req)->mc_cpu); \
(req)->mc_len = 0; \
} while (0)
/* If the _pl330_req is available to the client */
#define IS_FREE(req) (*((u8 *)((req)->mc_cpu)) == CMD_DMAEND)
...
...
@@ -301,8 +290,10 @@ struct pl330_thread {
struct
pl330_dmac
*
dmac
;
/* Only two at a time */
struct
_pl330_req
req
[
2
];
/* Index of the last
submitt
ed request */
/* Index of the last
enqueu
ed request */
unsigned
lstenq
;
/* Index of the last submitted request or -1 if the DMA is stopped */
int
req_running
;
};
enum
pl330_dmac_state
{
...
...
@@ -778,6 +769,22 @@ static inline void _execute_DBGINSN(struct pl330_thread *thrd,
writel
(
0
,
regs
+
DBGCMD
);
}
/*
* Mark a _pl330_req as free.
* We do it by writing DMAEND as the first instruction
* because no valid request is going to have DMAEND as
* its first instruction to execute.
*/
static
void
mark_free
(
struct
pl330_thread
*
thrd
,
int
idx
)
{
struct
_pl330_req
*
req
=
&
thrd
->
req
[
idx
];
_emit_END
(
0
,
req
->
mc_cpu
);
req
->
mc_len
=
0
;
thrd
->
req_running
=
-
1
;
}
static
inline
u32
_state
(
struct
pl330_thread
*
thrd
)
{
void
__iomem
*
regs
=
thrd
->
dmac
->
pinfo
->
base
;
...
...
@@ -836,31 +843,6 @@ static inline u32 _state(struct pl330_thread *thrd)
}
}
/* If the request 'req' of thread 'thrd' is currently active */
static
inline
bool
_req_active
(
struct
pl330_thread
*
thrd
,
struct
_pl330_req
*
req
)
{
void
__iomem
*
regs
=
thrd
->
dmac
->
pinfo
->
base
;
u32
buf
=
req
->
mc_bus
,
pc
=
readl
(
regs
+
CPC
(
thrd
->
id
));
if
(
IS_FREE
(
req
))
return
false
;
return
(
pc
>=
buf
&&
pc
<=
buf
+
req
->
mc_len
)
?
true
:
false
;
}
/* Returns 0 if the thread is inactive, ID of active req + 1 otherwise */
static
inline
unsigned
_thrd_active
(
struct
pl330_thread
*
thrd
)
{
if
(
_req_active
(
thrd
,
&
thrd
->
req
[
0
]))
return
1
;
/* First req active */
if
(
_req_active
(
thrd
,
&
thrd
->
req
[
1
]))
return
2
;
/* Second req active */
return
0
;
}
static
void
_stop
(
struct
pl330_thread
*
thrd
)
{
void
__iomem
*
regs
=
thrd
->
dmac
->
pinfo
->
base
;
...
...
@@ -892,17 +874,22 @@ static bool _trigger(struct pl330_thread *thrd)
struct
_arg_GO
go
;
unsigned
ns
;
u8
insn
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
int
idx
;
/* Return if already ACTIVE */
if
(
_state
(
thrd
)
!=
PL330_STATE_STOPPED
)
return
true
;
if
(
!
IS_FREE
(
&
thrd
->
req
[
1
-
thrd
->
lstenq
]))
req
=
&
thrd
->
req
[
1
-
thrd
->
lstenq
];
else
if
(
!
IS_FREE
(
&
thrd
->
req
[
thrd
->
lstenq
]))
req
=
&
thrd
->
req
[
thrd
->
lstenq
];
else
req
=
NULL
;
idx
=
1
-
thrd
->
lstenq
;
if
(
!
IS_FREE
(
&
thrd
->
req
[
idx
]))
req
=
&
thrd
->
req
[
idx
];
else
{
idx
=
thrd
->
lstenq
;
if
(
!
IS_FREE
(
&
thrd
->
req
[
idx
]))
req
=
&
thrd
->
req
[
idx
];
else
req
=
NULL
;
}
/* Return if no request */
if
(
!
req
||
!
req
->
r
)
...
...
@@ -933,6 +920,8 @@ static bool _trigger(struct pl330_thread *thrd)
/* Only manager can execute GO */
_execute_DBGINSN
(
thrd
,
insn
,
true
);
thrd
->
req_running
=
idx
;
return
true
;
}
...
...
@@ -1382,8 +1371,8 @@ static void pl330_dotask(unsigned long data)
thrd
->
req
[
0
].
r
=
NULL
;
thrd
->
req
[
1
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
0
]
);
MARK_FREE
(
&
thrd
->
req
[
1
]
);
mark_free
(
thrd
,
0
);
mark_free
(
thrd
,
1
);
/* Clear the reset flag */
pl330
->
dmac_tbd
.
reset_chan
&=
~
(
1
<<
i
);
...
...
@@ -1461,14 +1450,12 @@ int pl330_update(const struct pl330_info *pi)
thrd
=
&
pl330
->
channels
[
id
];
active
=
_thrd_active
(
thrd
)
;
if
(
!
active
)
/* Aborted */
active
=
thrd
->
req_running
;
if
(
active
==
-
1
)
/* Aborted */
continue
;
active
-=
1
;
rqdone
=
&
thrd
->
req
[
active
];
MARK_FREE
(
rqdon
e
);
mark_free
(
thrd
,
activ
e
);
/* Get going again ASAP */
_start
(
thrd
);
...
...
@@ -1509,7 +1496,7 @@ int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op)
struct
pl330_thread
*
thrd
=
ch_id
;
struct
pl330_dmac
*
pl330
;
unsigned
long
flags
;
int
ret
=
0
,
active
;
int
ret
=
0
,
active
=
thrd
->
req_running
;
if
(
!
thrd
||
thrd
->
free
||
thrd
->
dmac
->
state
==
DYING
)
return
-
EINVAL
;
...
...
@@ -1525,28 +1512,24 @@ int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op)
thrd
->
req
[
0
].
r
=
NULL
;
thrd
->
req
[
1
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
0
]
);
MARK_FREE
(
&
thrd
->
req
[
1
]
);
mark_free
(
thrd
,
0
);
mark_free
(
thrd
,
1
);
break
;
case
PL330_OP_ABORT
:
active
=
_thrd_active
(
thrd
);
/* Make sure the channel is stopped */
_stop
(
thrd
);
/* ABORT is only for the active req */
if
(
!
active
)
if
(
active
==
-
1
)
break
;
active
--
;
thrd
->
req
[
active
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
active
]
);
mark_free
(
thrd
,
active
);
/* Start the next */
case
PL330_OP_START
:
if
(
!
_thrd_active
(
thrd
)
&&
!
_start
(
thrd
))
if
(
(
active
==
-
1
)
&&
!
_start
(
thrd
))
ret
=
-
EIO
;
break
;
...
...
@@ -1587,14 +1570,13 @@ int pl330_chan_status(void *ch_id, struct pl330_chanstatus *pstatus)
else
pstatus
->
faulting
=
false
;
active
=
_thrd_active
(
thrd
)
;
active
=
thrd
->
req_running
;
if
(
!
active
)
{
if
(
active
==
-
1
)
{
/* Indicate that the thread is not running */
pstatus
->
top_req
=
NULL
;
pstatus
->
wait_req
=
NULL
;
}
else
{
active
--
;
pstatus
->
top_req
=
thrd
->
req
[
active
].
r
;
pstatus
->
wait_req
=
!
IS_FREE
(
&
thrd
->
req
[
1
-
active
])
?
thrd
->
req
[
1
-
active
].
r
:
NULL
;
...
...
@@ -1659,9 +1641,9 @@ void *pl330_request_channel(const struct pl330_info *pi)
thrd
->
free
=
false
;
thrd
->
lstenq
=
1
;
thrd
->
req
[
0
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
0
]
);
mark_free
(
thrd
,
0
);
thrd
->
req
[
1
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
1
]
);
mark_free
(
thrd
,
1
);
break
;
}
}
...
...
@@ -1767,14 +1749,14 @@ static inline void _reset_thread(struct pl330_thread *thrd)
thrd
->
req
[
0
].
mc_bus
=
pl330
->
mcode_bus
+
(
thrd
->
id
*
pi
->
mcbufsz
);
thrd
->
req
[
0
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
0
]
);
mark_free
(
thrd
,
0
);
thrd
->
req
[
1
].
mc_cpu
=
thrd
->
req
[
0
].
mc_cpu
+
pi
->
mcbufsz
/
2
;
thrd
->
req
[
1
].
mc_bus
=
thrd
->
req
[
0
].
mc_bus
+
pi
->
mcbufsz
/
2
;
thrd
->
req
[
1
].
r
=
NULL
;
MARK_FREE
(
&
thrd
->
req
[
1
]
);
mark_free
(
thrd
,
1
);
}
static
int
dmac_alloc_threads
(
struct
pl330_dmac
*
pl330
)
...
...
arch/arm/configs/imx_v4_v5_defconfig
View file @
455ffa60
...
...
@@ -18,9 +18,10 @@ CONFIG_ARCH_MXC=y
CONFIG_ARCH_IMX_V4_V5=y
CONFIG_ARCH_MX1ADS=y
CONFIG_MACH_SCB9328=y
CONFIG_MACH_APF9328=y
CONFIG_MACH_MX21ADS=y
CONFIG_MACH_MX25_3DS=y
CONFIG_MACH_EUKREA_CPUIMX25=y
CONFIG_MACH_EUKREA_CPUIMX25
SD
=y
CONFIG_MACH_MX27ADS=y
CONFIG_MACH_PCM038=y
CONFIG_MACH_CPUIMX27=y
...
...
@@ -72,17 +73,16 @@ CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_MXC=y
CONFIG_MTD_UBI=y
CONFIG_MISC_DEVICES=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_DM9000=y
CONFIG_SMC91X=y
CONFIG_SMC911X=y
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
CONFIG_SMSC_PHY=y
# CONFIG_INPUT_MOUSEDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_KEYBOARD is not set
...
...
@@ -100,6 +100,7 @@ CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
CONFIG_W1=y
CONFIG_W1_MASTER_MXC=y
CONFIG_W1_SLAVE_THERM=y
...
...
@@ -139,6 +140,7 @@ CONFIG_MMC=y
CONFIG_MMC_MXC=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_MC13783=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
...
...
arch/arm/mach-exynos/cpu.c
View file @
455ffa60
...
...
@@ -110,11 +110,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_DMC0
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
.
virtual
=
(
unsigned
long
)
S5P_VA_SROMC
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_SROMC
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
.
virtual
=
(
unsigned
long
)
S3C_VA_USB_HSPHY
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_HSPHY
),
...
...
arch/arm/mach-imx/Kconfig
View file @
455ffa60
...
...
@@ -132,7 +132,7 @@ config MACH_MX25_3DS
select IMX_HAVE_PLATFORM_MXC_NAND
select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX
config MACH_EUKREA_CPUIMX25
config MACH_EUKREA_CPUIMX25
SD
bool "Support Eukrea CPUIMX25 Platform"
select SOC_IMX25
select IMX_HAVE_PLATFORM_FLEXCAN
...
...
@@ -148,7 +148,7 @@ config MACH_EUKREA_CPUIMX25
choice
prompt "Baseboard"
depends on MACH_EUKREA_CPUIMX25
depends on MACH_EUKREA_CPUIMX25
SD
default MACH_EUKREA_MBIMXSD25_BASEBOARD
config MACH_EUKREA_MBIMXSD25_BASEBOARD
...
...
@@ -542,7 +542,7 @@ config MACH_MX35_3DS
Include support for MX35PDK platform. This includes specific
configurations for the board and its peripherals.
config MACH_EUKREA_CPUIMX35
config MACH_EUKREA_CPUIMX35
SD
bool "Support Eukrea CPUIMX35 Platform"
select SOC_IMX35
select IMX_HAVE_PLATFORM_FLEXCAN
...
...
@@ -560,7 +560,7 @@ config MACH_EUKREA_CPUIMX35
choice
prompt "Baseboard"
depends on MACH_EUKREA_CPUIMX35
depends on MACH_EUKREA_CPUIMX35
SD
default MACH_EUKREA_MBIMXSD35_BASEBOARD
config MACH_EUKREA_MBIMXSD35_BASEBOARD
...
...
arch/arm/mach-imx/Makefile
View file @
455ffa60
...
...
@@ -24,7 +24,7 @@ obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o
# i.MX25 based machines
obj-$(CONFIG_MACH_MX25_3DS)
+=
mach-mx25_3ds.o
obj-$(CONFIG_MACH_EUKREA_CPUIMX25)
+=
mach-eukrea_cpuimx25.o
obj-$(CONFIG_MACH_EUKREA_CPUIMX25
SD
)
+=
mach-eukrea_cpuimx25.o
obj-$(CONFIG_MACH_EUKREA_MBIMXSD25_BASEBOARD)
+=
eukrea_mbimxsd25-baseboard.o
# i.MX27 based machines
...
...
@@ -57,7 +57,7 @@ obj-$(CONFIG_MACH_BUG) += mach-bug.o
# i.MX35 based machines
obj-$(CONFIG_MACH_PCM043)
+=
mach-pcm043.o
obj-$(CONFIG_MACH_MX35_3DS)
+=
mach-mx35_3ds.o
obj-$(CONFIG_MACH_EUKREA_CPUIMX35)
+=
mach-cpuimx35.o
obj-$(CONFIG_MACH_EUKREA_CPUIMX35
SD
)
+=
mach-cpuimx35.o
obj-$(CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD)
+=
eukrea_mbimxsd35-baseboard.o
obj-$(CONFIG_MACH_VPR200)
+=
mach-vpr200.o
...
...
arch/arm/mach-imx/clock-imx35.c
View file @
455ffa60
...
...
@@ -507,7 +507,7 @@ static struct clk_lookup lookups[] = {
int
__init
mx35_clocks_init
()
{
unsigned
int
cgr2
=
3
<<
26
,
cgr3
=
0
;
unsigned
int
cgr2
=
3
<<
26
;
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_ICEDCC)
cgr2
|=
3
<<
16
;
...
...
@@ -521,6 +521,12 @@ int __init mx35_clocks_init()
__raw_writel
((
3
<<
18
),
CCM_BASE
+
CCM_CGR0
);
__raw_writel
((
3
<<
2
)
|
(
3
<<
4
)
|
(
3
<<
6
)
|
(
3
<<
8
)
|
(
3
<<
16
),
CCM_BASE
+
CCM_CGR1
);
__raw_writel
(
cgr2
,
CCM_BASE
+
CCM_CGR2
);
__raw_writel
(
0
,
CCM_BASE
+
CCM_CGR3
);
clk_enable
(
&
iim_clk
);
imx_print_silicon_rev
(
"i.MX35"
,
mx35_revision
());
clk_disable
(
&
iim_clk
);
/*
* Check if we came up in internal boot mode. If yes, we need some
...
...
@@ -529,17 +535,11 @@ int __init mx35_clocks_init()
*/
if
(
!
(
__raw_readl
(
CCM_BASE
+
CCM_RCSR
)
&
(
3
<<
10
)))
{
/* Additionally turn on UART1, SCC, and IIM clocks */
cgr2
|=
3
<<
16
|
3
<<
4
;
cgr3
|=
3
<<
2
;
clk_enable
(
&
iim_clk
);
clk_enable
(
&
uart1_clk
);
clk_enable
(
&
scc_clk
);
}
__raw_writel
(
cgr2
,
CCM_BASE
+
CCM_CGR2
);
__raw_writel
(
cgr3
,
CCM_BASE
+
CCM_CGR3
);
clk_enable
(
&
iim_clk
);
imx_print_silicon_rev
(
"i.MX35"
,
mx35_revision
());
clk_disable
(
&
iim_clk
);
#ifdef CONFIG_MXC_USE_EPIT
epit_timer_init
(
&
epit1_clk
,
MX35_IO_ADDRESS
(
MX35_EPIT1_BASE_ADDR
),
MX35_INT_EPIT1
);
...
...
arch/arm/mach-imx/mach-cpuimx35.c
View file @
455ffa60
...
...
@@ -53,12 +53,18 @@ static const struct imxi2c_platform_data
.
bitrate
=
100000
,
};
#define TSC2007_IRQGPIO IMX_GPIO_NR(3, 2)
static
int
tsc2007_get_pendown_state
(
void
)
{
return
!
gpio_get_value
(
TSC2007_IRQGPIO
);
}
static
struct
tsc2007_platform_data
tsc2007_info
=
{
.
model
=
2007
,
.
x_plate_ohms
=
180
,
.
get_pendown_state
=
tsc2007_get_pendown_state
,
};
#define TSC2007_IRQGPIO IMX_GPIO_NR(3, 2)
static
struct
i2c_board_info
eukrea_cpuimx35_i2c_devices
[]
=
{
{
I2C_BOARD_INFO
(
"pcf8563"
,
0x51
),
...
...
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
View file @
455ffa60
...
...
@@ -3247,18 +3247,14 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
/* 3430ES1-only hwmods */
static
__initdata
struct
omap_hwmod
*
omap3430es1_hwmods
[]
=
{
&
omap3xxx_iva_hwmod
,
&
omap3430es1_dss_core_hwmod
,
&
omap3xxx_mailbox_hwmod
,
NULL
};
/* 3430ES2+-only hwmods */
static
__initdata
struct
omap_hwmod
*
omap3430es2plus_hwmods
[]
=
{
&
omap3xxx_iva_hwmod
,
&
omap3xxx_dss_core_hwmod
,
&
omap3xxx_usbhsotg_hwmod
,
&
omap3xxx_mailbox_hwmod
,
NULL
};
...
...
arch/arm/mm/proc-v7.S
View file @
455ffa60
...
...
@@ -363,11 +363,13 @@ __v7_setup:
orreq
r10
,
r10
,
#
1
<<
6
@
set
bit
#
6
mcreq
p15
,
0
,
r10
,
c15
,
c0
,
1
@
write
diagnostic
register
#endif
#ifdef CONFIG_ARM_ERRATA_751472
cmp
r6
,
#
0x30
@
present
prior
to
r3p0
#if defined(CONFIG_ARM_ERRATA_751472) && defined(CONFIG_SMP)
ALT_SMP
(
cmp
r6
,
#
0x30
)
@
present
prior
to
r3p0
ALT_UP_B
(1
f
)
mrclt
p15
,
0
,
r10
,
c15
,
c0
,
1
@
read
diagnostic
register
orrlt
r10
,
r10
,
#
1
<<
11
@
set
bit
#
11
mcrlt
p15
,
0
,
r10
,
c15
,
c0
,
1
@
write
diagnostic
register
1
:
#endif
3
:
mov
r10
,
#
0
...
...
arch/arm/plat-mxc/cpufreq.c
View file @
455ffa60
...
...
@@ -98,7 +98,7 @@ static int mxc_set_target(struct cpufreq_policy *policy,
return
ret
;
}
static
int
__init
mxc_cpufreq_init
(
struct
cpufreq_policy
*
policy
)
static
int
mxc_cpufreq_init
(
struct
cpufreq_policy
*
policy
)
{
int
ret
;
int
i
;
...
...
arch/arm/plat-mxc/include/mach/uncompress.h
View file @
455ffa60
...
...
@@ -98,6 +98,7 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id)
case
MACH_TYPE_PCM043
:
case
MACH_TYPE_LILLY1131
:
case
MACH_TYPE_VPR200
:
case
MACH_TYPE_EUKREA_CPUIMX35SD
:
uart_base
=
MX3X_UART1_BASE_ADDR
;
break
;
case
MACH_TYPE_MAGX_ZN5
:
...
...
arch/arm/plat-mxc/pwm.c
View file @
455ffa60
...
...
@@ -77,6 +77,15 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
do_div
(
c
,
period_ns
);
duty_cycles
=
c
;
/*
* according to imx pwm RM, the real period value should be
* PERIOD value in PWMPR plus 2.
*/
if
(
period_cycles
>
2
)
period_cycles
-=
2
;
else
period_cycles
=
0
;
writel
(
duty_cycles
,
pwm
->
mmio_base
+
MX3_PWMSAR
);
writel
(
period_cycles
,
pwm
->
mmio_base
+
MX3_PWMPR
);
...
...
arch/arm/plat-orion/gpio.c
View file @
455ffa60
...
...
@@ -384,12 +384,16 @@ void __init orion_gpio_init(int gpio_base, int ngpio,
struct
orion_gpio_chip
*
ochip
;
struct
irq_chip_generic
*
gc
;
struct
irq_chip_type
*
ct
;
char
gc_label
[
16
];
if
(
orion_gpio_chip_count
==
ARRAY_SIZE
(
orion_gpio_chips
))
return
;
snprintf
(
gc_label
,
sizeof
(
gc_label
),
"orion_gpio%d"
,
orion_gpio_chip_count
);
ochip
=
orion_gpio_chips
+
orion_gpio_chip_count
;
ochip
->
chip
.
label
=
"orion_gpio"
;
ochip
->
chip
.
label
=
kstrdup
(
gc_label
,
GFP_KERNEL
)
;
ochip
->
chip
.
request
=
orion_gpio_request
;
ochip
->
chip
.
direction_input
=
orion_gpio_direction_input
;
ochip
->
chip
.
get
=
orion_gpio_get
;
...
...
arch/arm/plat-samsung/include/plat/cpu-freq-core.h
View file @
455ffa60
...
...
@@ -202,14 +202,6 @@ extern int s3c_plltab_register(struct cpufreq_frequency_table *plls,
extern
struct
s3c_cpufreq_config
*
s3c_cpufreq_getconfig
(
void
);
extern
struct
s3c_iotimings
*
s3c_cpufreq_getiotimings
(
void
);
extern
void
s3c2410_iotiming_debugfs
(
struct
seq_file
*
seq
,
struct
s3c_cpufreq_config
*
cfg
,
union
s3c_iobank
*
iob
);
extern
void
s3c2412_iotiming_debugfs
(
struct
seq_file
*
seq
,
struct
s3c_cpufreq_config
*
cfg
,
union
s3c_iobank
*
iob
);
#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
#define s3c_cpufreq_debugfs_call(x) x
#else
...
...
@@ -226,6 +218,10 @@ extern void s3c2410_cpufreq_setrefresh(struct s3c_cpufreq_config *cfg);
extern
void
s3c2410_set_fvco
(
struct
s3c_cpufreq_config
*
cfg
);
#ifdef CONFIG_S3C2410_IOTIMING
extern
void
s3c2410_iotiming_debugfs
(
struct
seq_file
*
seq
,
struct
s3c_cpufreq_config
*
cfg
,
union
s3c_iobank
*
iob
);
extern
int
s3c2410_iotiming_calc
(
struct
s3c_cpufreq_config
*
cfg
,
struct
s3c_iotimings
*
iot
);
...
...
@@ -235,6 +231,7 @@ extern int s3c2410_iotiming_get(struct s3c_cpufreq_config *cfg,
extern
void
s3c2410_iotiming_set
(
struct
s3c_cpufreq_config
*
cfg
,
struct
s3c_iotimings
*
iot
);
#else
#define s3c2410_iotiming_debugfs NULL
#define s3c2410_iotiming_calc NULL
#define s3c2410_iotiming_get NULL
#define s3c2410_iotiming_set NULL
...
...
@@ -242,8 +239,10 @@ extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg,
/* S3C2412 compatible routines */
extern
int
s3c2412_iotiming_get
(
struct
s3c_cpufreq_config
*
cfg
,
struct
s3c_iotimings
*
timings
);
#ifdef CONFIG_S3C2412_IOTIMING
extern
void
s3c2412_iotiming_debugfs
(
struct
seq_file
*
seq
,
struct
s3c_cpufreq_config
*
cfg
,
union
s3c_iobank
*
iob
);
extern
int
s3c2412_iotiming_get
(
struct
s3c_cpufreq_config
*
cfg
,
struct
s3c_iotimings
*
timings
);
...
...
@@ -253,6 +252,12 @@ extern int s3c2412_iotiming_calc(struct s3c_cpufreq_config *cfg,
extern
void
s3c2412_iotiming_set
(
struct
s3c_cpufreq_config
*
cfg
,
struct
s3c_iotimings
*
iot
);
#else
#define s3c2412_iotiming_debugfs NULL
#define s3c2412_iotiming_calc NULL
#define s3c2412_iotiming_get NULL
#define s3c2412_iotiming_set NULL
#endif
/* CONFIG_S3C2412_IOTIMING */
#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUG
#define s3c_freq_dbg(x...) printk(KERN_INFO x)
...
...
drivers/dma/Kconfig
View file @
455ffa60
...
...
@@ -124,7 +124,7 @@ config MV_XOR
config MX3_IPU
bool "MX3x Image Processing Unit support"
depends on
ARCH_MX3
depends on
SOC_IMX31 || SOC_IMX35
select DMA_ENGINE
default y
help
...
...
@@ -216,7 +216,7 @@ config PCH_DMA
config IMX_SDMA
tristate "i.MX SDMA support"
depends on ARCH_MX25 ||
ARCH_MX3
|| ARCH_MX5
depends on ARCH_MX25 ||
SOC_IMX31 || SOC_IMX35
|| ARCH_MX5
select DMA_ENGINE
help
Support the i.MX SDMA engine. This engine is integrated into
...
...
drivers/input/mouse/sentelic.c
View file @
455ffa60
...
...
@@ -2,7 +2,7 @@
* Finger Sensing Pad PS/2 mouse driver.
*
* Copyright (C) 2005-2007 Asia Vital Components Co., Ltd.
* Copyright (C) 2005-201
0
Tai-hwa Liang, Sentelic Corporation.
* Copyright (C) 2005-201
1
Tai-hwa Liang, Sentelic Corporation.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
...
...
@@ -162,7 +162,7 @@ static int fsp_reg_write(struct psmouse *psmouse, int reg_addr, int reg_val)
ps2_sendbyte
(
ps2dev
,
v
,
FSP_CMD_TIMEOUT2
);
if
(
ps2_sendbyte
(
ps2dev
,
0xf3
,
FSP_CMD_TIMEOUT
)
<
0
)
return
-
1
;
goto
out
;
if
((
v
=
fsp_test_invert_cmd
(
reg_val
))
!=
reg_val
)
{
/* inversion is required */
...
...
@@ -261,7 +261,7 @@ static int fsp_page_reg_write(struct psmouse *psmouse, int reg_val)
ps2_sendbyte
(
ps2dev
,
0x88
,
FSP_CMD_TIMEOUT2
);
if
(
ps2_sendbyte
(
ps2dev
,
0xf3
,
FSP_CMD_TIMEOUT
)
<
0
)
return
-
1
;
goto
out
;
if
((
v
=
fsp_test_invert_cmd
(
reg_val
))
!=
reg_val
)
{
ps2_sendbyte
(
ps2dev
,
0x47
,
FSP_CMD_TIMEOUT2
);
...
...
@@ -309,7 +309,7 @@ static int fsp_get_buttons(struct psmouse *psmouse, int *btn)
};
int
val
;
if
(
fsp_reg_read
(
psmouse
,
FSP_REG_TMOD_STATUS
1
,
&
val
)
==
-
1
)
if
(
fsp_reg_read
(
psmouse
,
FSP_REG_TMOD_STATUS
,
&
val
)
==
-
1
)
return
-
EIO
;
*
btn
=
buttons
[(
val
&
0x30
)
>>
4
];
...
...
drivers/input/mouse/sentelic.h
View file @
455ffa60
...
...
@@ -2,7 +2,7 @@
* Finger Sensing Pad PS/2 mouse driver.
*
* Copyright (C) 2005-2007 Asia Vital Components Co., Ltd.
* Copyright (C) 2005-20
09
Tai-hwa Liang, Sentelic Corporation.
* Copyright (C) 2005-20
11
Tai-hwa Liang, Sentelic Corporation.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
...
...
@@ -33,6 +33,7 @@
/* Finger-sensing Pad control registers */
#define FSP_REG_SYSCTL1 0x10
#define FSP_BIT_EN_REG_CLK BIT(5)
#define FSP_REG_TMOD_STATUS 0x20
#define FSP_REG_OPC_QDOWN 0x31
#define FSP_BIT_EN_OPC_TAG BIT(7)
#define FSP_REG_OPTZ_XLO 0x34
...
...
drivers/media/video/gspca/gspca.c
View file @
455ffa60
...
...
@@ -957,7 +957,7 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
ret
=
-
EIO
;
goto
out
;
}
alt
=
ep_tb
[
--
alt_idx
].
alt
;
gspca_dev
->
alt
=
ep_tb
[
--
alt_idx
].
alt
;
}
}
out:
...
...
drivers/mmc/host/mmci.c
View file @
455ffa60
...
...
@@ -675,7 +675,8 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data,
unsigned
int
status
)
{
/* First check for errors */
if
(
status
&
(
MCI_DATACRCFAIL
|
MCI_DATATIMEOUT
|
MCI_TXUNDERRUN
|
MCI_RXOVERRUN
))
{
if
(
status
&
(
MCI_DATACRCFAIL
|
MCI_DATATIMEOUT
|
MCI_STARTBITERR
|
MCI_TXUNDERRUN
|
MCI_RXOVERRUN
))
{
u32
remain
,
success
;
/* Terminate the DMA transfer */
...
...
@@ -754,8 +755,12 @@ mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
}
if
(
!
cmd
->
data
||
cmd
->
error
)
{
if
(
host
->
data
)
if
(
host
->
data
)
{
/* Terminate the DMA transfer */
if
(
dma_inprogress
(
host
))
mmci_dma_data_error
(
host
);
mmci_stop_data
(
host
);
}
mmci_request_end
(
host
,
cmd
->
mrq
);
}
else
if
(
!
(
cmd
->
data
->
flags
&
MMC_DATA_READ
))
{
mmci_start_data
(
host
,
cmd
->
data
);
...
...
@@ -955,8 +960,9 @@ static irqreturn_t mmci_irq(int irq, void *dev_id)
dev_dbg
(
mmc_dev
(
host
->
mmc
),
"irq0 (data+cmd) %08x
\n
"
,
status
);
data
=
host
->
data
;
if
(
status
&
(
MCI_DATACRCFAIL
|
MCI_DATATIMEOUT
|
MCI_TXUNDERRUN
|
MCI_RXOVERRUN
|
MCI_DATAEND
|
MCI_DATABLOCKEND
)
&&
data
)
if
(
status
&
(
MCI_DATACRCFAIL
|
MCI_DATATIMEOUT
|
MCI_STARTBITERR
|
MCI_TXUNDERRUN
|
MCI_RXOVERRUN
|
MCI_DATAEND
|
MCI_DATABLOCKEND
)
&&
data
)
mmci_data_irq
(
host
,
data
,
status
);
cmd
=
host
->
cmd
;
...
...
drivers/net/ethernet/marvell/skge.c
View file @
455ffa60
...
...
@@ -2606,6 +2606,9 @@ static int skge_up(struct net_device *dev)
spin_unlock_irq
(
&
hw
->
hw_lock
);
napi_enable
(
&
skge
->
napi
);
skge_set_multicast
(
dev
);
return
0
;
free_tx_ring:
...
...
drivers/net/ethernet/mellanox/mlx4/en_cq.c
View file @
455ffa60
...
...
@@ -144,6 +144,7 @@ void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
mlx4_free_hwq_res
(
mdev
->
dev
,
&
cq
->
wqres
,
cq
->
buf_size
);
if
(
priv
->
mdev
->
dev
->
caps
.
comp_pool
&&
cq
->
vector
)
mlx4_release_eq
(
priv
->
mdev
->
dev
,
cq
->
vector
);
cq
->
vector
=
0
;
cq
->
buf_size
=
0
;
cq
->
buf
=
NULL
;
}
...
...
drivers/of/platform.c
View file @
455ffa60
...
...
@@ -314,7 +314,7 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l
if
(
!
lookup
)
return
NULL
;
for
(;
lookup
->
nam
e
!=
NULL
;
lookup
++
)
{
for
(;
lookup
->
compatibl
e
!=
NULL
;
lookup
++
)
{
if
(
!
of_device_is_compatible
(
np
,
lookup
->
compatible
))
continue
;
if
(
of_address_to_resource
(
np
,
0
,
&
res
))
...
...
drivers/watchdog/coh901327_wdt.c
View file @
455ffa60
...
...
@@ -76,8 +76,6 @@ static int irq;
static
void
__iomem
*
virtbase
;
static
unsigned
long
coh901327_users
;
static
unsigned
long
boot_status
;
static
u16
wdogenablestore
;
static
u16
irqmaskstore
;
static
struct
device
*
parent
;
/*
...
...
@@ -461,6 +459,10 @@ static int __init coh901327_probe(struct platform_device *pdev)
}
#ifdef CONFIG_PM
static
u16
wdogenablestore
;
static
u16
irqmaskstore
;
static
int
coh901327_suspend
(
struct
platform_device
*
pdev
,
pm_message_t
state
)
{
irqmaskstore
=
readw
(
virtbase
+
U300_WDOG_IMR
)
&
0x0001U
;
...
...
drivers/watchdog/hpwdt.c
View file @
455ffa60
...
...
@@ -231,6 +231,7 @@ static int __devinit cru_detect(unsigned long map_entry,
cmn_regs
.
u1
.
reax
=
CRU_BIOS_SIGNATURE_VALUE
;
set_memory_x
((
unsigned
long
)
bios32_entrypoint
,
(
2
*
PAGE_SIZE
));
asminline_call
(
&
cmn_regs
,
bios32_entrypoint
);
if
(
cmn_regs
.
u1
.
ral
!=
0
)
{
...
...
@@ -248,8 +249,10 @@ static int __devinit cru_detect(unsigned long map_entry,
if
((
physical_bios_base
+
physical_bios_offset
))
{
cru_rom_addr
=
ioremap
(
cru_physical_address
,
cru_length
);
if
(
cru_rom_addr
)
if
(
cru_rom_addr
)
{
set_memory_x
((
unsigned
long
)
cru_rom_addr
,
cru_length
);
retval
=
0
;
}
}
printk
(
KERN_DEBUG
"hpwdt: CRU Base Address: 0x%lx
\n
"
,
...
...
drivers/watchdog/iTCO_wdt.c
View file @
455ffa60
...
...
@@ -384,10 +384,10 @@ MODULE_PARM_DESC(nowayout,
"Watchdog cannot be stopped once started (default="
__MODULE_STRING
(
WATCHDOG_NOWAYOUT
)
")"
);
static
int
turn_SMI_watchdog_clear_off
=
0
;
static
int
turn_SMI_watchdog_clear_off
=
1
;
module_param
(
turn_SMI_watchdog_clear_off
,
int
,
0
);
MODULE_PARM_DESC
(
turn_SMI_watchdog_clear_off
,
"Turn off SMI clearing watchdog (de
fault=0
)"
);
"Turn off SMI clearing watchdog (de
pends on TCO-version)(default=1
)"
);
/*
* Some TCO specific functions
...
...
@@ -813,7 +813,7 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
ret
=
-
EIO
;
goto
out_unmap
;
}
if
(
turn_SMI_watchdog_clear_off
)
{
if
(
turn_SMI_watchdog_clear_off
>=
iTCO_wdt_private
.
iTCO_version
)
{
/* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
val32
=
inl
(
SMI_EN
);
val32
&=
0xffffdfff
;
/* Turn off SMI clearing watchdog */
...
...
drivers/watchdog/sp805_wdt.c
View file @
455ffa60
...
...
@@ -351,7 +351,7 @@ static int __devexit sp805_wdt_remove(struct amba_device *adev)
return
0
;
}
static
struct
amba_id
sp805_wdt_ids
[]
__initdata
=
{
static
struct
amba_id
sp805_wdt_ids
[]
=
{
{
.
id
=
0x00141805
,
.
mask
=
0x00ffffff
,
...
...
fs/ceph/dir.c
View file @
455ffa60
...
...
@@ -1094,42 +1094,19 @@ static int ceph_snapdir_d_revalidate(struct dentry *dentry,
/*
* Set/clear/test dir complete flag on the dir's dentry.
*/
static
struct
dentry
*
__d_find_any_alias
(
struct
inode
*
inode
)
{
struct
dentry
*
alias
;
if
(
list_empty
(
&
inode
->
i_dentry
))
return
NULL
;
alias
=
list_first_entry
(
&
inode
->
i_dentry
,
struct
dentry
,
d_alias
);
return
alias
;
}
void
ceph_dir_set_complete
(
struct
inode
*
inode
)
{
struct
dentry
*
dentry
=
__d_find_any_alias
(
inode
);
if
(
dentry
&&
ceph_dentry
(
dentry
))
{
dout
(
" marking %p (%p) complete
\n
"
,
inode
,
dentry
);
set_bit
(
CEPH_D_COMPLETE
,
&
ceph_dentry
(
dentry
)
->
flags
);
}
/* not yet implemented */
}
void
ceph_dir_clear_complete
(
struct
inode
*
inode
)
{
struct
dentry
*
dentry
=
__d_find_any_alias
(
inode
);
if
(
dentry
&&
ceph_dentry
(
dentry
))
{
dout
(
" marking %p (%p) NOT complete
\n
"
,
inode
,
dentry
);
clear_bit
(
CEPH_D_COMPLETE
,
&
ceph_dentry
(
dentry
)
->
flags
);
}
/* not yet implemented */
}
bool
ceph_dir_test_complete
(
struct
inode
*
inode
)
{
struct
dentry
*
dentry
=
__d_find_any_alias
(
inode
);
if
(
dentry
&&
ceph_dentry
(
dentry
))
return
test_bit
(
CEPH_D_COMPLETE
,
&
ceph_dentry
(
dentry
)
->
flags
);
/* not yet implemented */
return
false
;
}
...
...
include/net/ip_vs.h
View file @
455ffa60
...
...
@@ -1207,7 +1207,7 @@ extern void ip_vs_control_cleanup(void);
extern
struct
ip_vs_dest
*
ip_vs_find_dest
(
struct
net
*
net
,
int
af
,
const
union
nf_inet_addr
*
daddr
,
__be16
dport
,
const
union
nf_inet_addr
*
vaddr
,
__be16
vport
,
__u16
protocol
,
__u32
fwmark
);
__u16
protocol
,
__u32
fwmark
,
__u32
flags
);
extern
struct
ip_vs_dest
*
ip_vs_try_bind_dest
(
struct
ip_vs_conn
*
cp
);
...
...
kernel/futex.c
View file @
455ffa60
...
...
@@ -314,17 +314,29 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
#endif
lock_page
(
page_head
);
/*
* If page_head->mapping is NULL, then it cannot be a PageAnon
* page; but it might be the ZERO_PAGE or in the gate area or
* in a special mapping (all cases which we are happy to fail);
* or it may have been a good file page when get_user_pages_fast
* found it, but truncated or holepunched or subjected to
* invalidate_complete_page2 before we got the page lock (also
* cases which we are happy to fail). And we hold a reference,
* so refcount care in invalidate_complete_page's remove_mapping
* prevents drop_caches from setting mapping to NULL beneath us.
*
* The case we do have to guard against is when memory pressure made
* shmem_writepage move it from filecache to swapcache beneath us:
* an unlikely race, but we do need to retry for page_head->mapping.
*/
if
(
!
page_head
->
mapping
)
{
int
shmem_swizzled
=
PageSwapCache
(
page_head
);
unlock_page
(
page_head
);
put_page
(
page_head
);
/*
* ZERO_PAGE pages don't have a mapping. Avoid a busy loop
* trying to find one. RW mapping would have COW'd (and thus
* have a mapping) so this page is RO and won't ever change.
*/
if
((
page_head
==
ZERO_PAGE
(
address
)))
return
-
EFAULT
;
goto
again
;
if
(
shmem_swizzled
)
goto
again
;
return
-
EFAULT
;
}
/*
...
...
kernel/time/clockevents.c
View file @
455ffa60
...
...
@@ -387,7 +387,6 @@ void clockevents_exchange_device(struct clock_event_device *old,
* released list and do a notify add later.
*/
if
(
old
)
{
old
->
event_handler
=
clockevents_handle_noop
;
clockevents_set_mode
(
old
,
CLOCK_EVT_MODE_UNUSED
);
list_del
(
&
old
->
list
);
list_add
(
&
old
->
list
,
&
clockevents_released
);
...
...
net/netfilter/ipvs/ip_vs_conn.c
View file @
455ffa60
...
...
@@ -616,7 +616,7 @@ struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp)
if
((
cp
)
&&
(
!
cp
->
dest
))
{
dest
=
ip_vs_find_dest
(
ip_vs_conn_net
(
cp
),
cp
->
af
,
&
cp
->
daddr
,
cp
->
dport
,
&
cp
->
vaddr
,
cp
->
vport
,
cp
->
protocol
,
cp
->
fwmark
);
cp
->
protocol
,
cp
->
fwmark
,
cp
->
flags
);
ip_vs_bind_dest
(
cp
,
dest
);
return
dest
;
}
else
...
...
net/netfilter/ipvs/ip_vs_ctl.c
View file @
455ffa60
...
...
@@ -619,15 +619,21 @@ struct ip_vs_dest *ip_vs_find_dest(struct net *net, int af,
const
union
nf_inet_addr
*
daddr
,
__be16
dport
,
const
union
nf_inet_addr
*
vaddr
,
__be16
vport
,
__u16
protocol
,
__u32
fwmark
)
__be16
vport
,
__u16
protocol
,
__u32
fwmark
,
__u32
flags
)
{
struct
ip_vs_dest
*
dest
;
struct
ip_vs_service
*
svc
;
__be16
port
=
dport
;
svc
=
ip_vs_service_get
(
net
,
af
,
fwmark
,
protocol
,
vaddr
,
vport
);
if
(
!
svc
)
return
NULL
;
dest
=
ip_vs_lookup_dest
(
svc
,
daddr
,
dport
);
if
(
fwmark
&&
(
flags
&
IP_VS_CONN_F_FWD_MASK
)
!=
IP_VS_CONN_F_MASQ
)
port
=
0
;
dest
=
ip_vs_lookup_dest
(
svc
,
daddr
,
port
);
if
(
!
dest
)
dest
=
ip_vs_lookup_dest
(
svc
,
daddr
,
port
^
dport
);
if
(
dest
)
atomic_inc
(
&
dest
->
refcnt
);
ip_vs_service_put
(
svc
);
...
...
net/netfilter/ipvs/ip_vs_sync.c
View file @
455ffa60
...
...
@@ -740,7 +740,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
* but still handled.
*/
dest
=
ip_vs_find_dest
(
net
,
type
,
daddr
,
dport
,
param
->
vaddr
,
param
->
vport
,
protocol
,
fwmark
);
param
->
vport
,
protocol
,
fwmark
,
flags
);
/* Set the approprite ativity flag */
if
(
protocol
==
IPPROTO_TCP
)
{
...
...
net/netfilter/nf_conntrack_netlink.c
View file @
455ffa60
...
...
@@ -135,7 +135,7 @@ ctnetlink_dump_status(struct sk_buff *skb, const struct nf_conn *ct)
static
inline
int
ctnetlink_dump_timeout
(
struct
sk_buff
*
skb
,
const
struct
nf_conn
*
ct
)
{
long
timeout
=
(
ct
->
timeout
.
expires
-
jiffies
)
/
HZ
;
long
timeout
=
(
(
long
)
ct
->
timeout
.
expires
-
(
long
)
jiffies
)
/
HZ
;
if
(
timeout
<
0
)
timeout
=
0
;
...
...
@@ -1650,7 +1650,7 @@ ctnetlink_exp_dump_expect(struct sk_buff *skb,
const
struct
nf_conntrack_expect
*
exp
)
{
struct
nf_conn
*
master
=
exp
->
master
;
long
timeout
=
(
exp
->
timeout
.
expires
-
jiffies
)
/
HZ
;
long
timeout
=
(
(
long
)
exp
->
timeout
.
expires
-
(
long
)
jiffies
)
/
HZ
;
struct
nf_conn_help
*
help
;
if
(
timeout
<
0
)
...
...
sound/soc/codecs/wm8776.c
View file @
455ffa60
...
...
@@ -235,6 +235,7 @@ static int wm8776_hw_params(struct snd_pcm_substream *substream,
switch
(
snd_pcm_format_width
(
params_format
(
params
)))
{
case
16
:
iface
=
0
;
break
;
case
20
:
iface
=
0x10
;
break
;
...
...
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