mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 13:22:55 +00:00
Merge branch 'master' into upstream-fixes
This commit is contained in:
commit
eff68d452f
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 2
|
||||
PATCHLEVEL = 6
|
||||
SUBLEVEL = 18
|
||||
EXTRAVERSION = -rc6
|
||||
EXTRAVERSION = -rc7
|
||||
NAME=Crazed Snow-Weasel
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -39,7 +39,6 @@ obj-$(CONFIG_VM86) += vm86.o
|
||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||
obj-$(CONFIG_HPET_TIMER) += hpet.o
|
||||
obj-$(CONFIG_K8_NB) += k8.o
|
||||
obj-$(CONFIG_AUDIT) += audit.o
|
||||
|
||||
EXTRA_AFLAGS := -traditional
|
||||
|
||||
|
@ -75,6 +75,10 @@ config DMA_IS_NORMAL
|
||||
depends on IA64_SGI_SN2
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
choice
|
||||
prompt "System type"
|
||||
default IA64_GENERIC
|
||||
|
@ -95,6 +95,10 @@ config GENERIC_TBSYNC
|
||||
default y if PPC32 && SMP
|
||||
default n
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
config DEFAULT_UIMAGE
|
||||
bool
|
||||
help
|
||||
|
@ -118,6 +118,10 @@ config SYSVIPC_COMPAT
|
||||
depends on COMPAT && SYSVIPC
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
comment "Code generation options"
|
||||
|
||||
choice
|
||||
|
@ -26,7 +26,6 @@ LDFLAGS += -EB -mshelf32_linux
|
||||
endif
|
||||
|
||||
# No requirements for endianess support from AFLAGS, 'as' always run through gcc
|
||||
AFLAGS += -m5 -isa=sh64 -traditional
|
||||
CFLAGS += $(cpu-y)
|
||||
|
||||
LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \
|
||||
|
@ -355,6 +355,9 @@ void machine_power_off(void)
|
||||
enter_deep_standby();
|
||||
}
|
||||
|
||||
void (*pm_power_off)(void) = machine_power_off;
|
||||
EXPORT_SYMBOL(pm_power_off);
|
||||
|
||||
void show_regs(struct pt_regs * regs)
|
||||
{
|
||||
unsigned long long ah, al, bh, bl, ch, cl;
|
||||
|
@ -112,8 +112,10 @@ struct resource io_resources[] = {
|
||||
};
|
||||
|
||||
struct resource kram_resources[] = {
|
||||
{ "Kernel code", 0, 0 }, /* These must be last in the array */
|
||||
{ "Kernel data", 0, 0 } /* These must be last in the array */
|
||||
/* These must be last in the array */
|
||||
{ .name = "Kernel code", .start = 0, .end = 0 },
|
||||
/* These must be last in the array */
|
||||
{ .name = "Kernel data", .start = 0, .end = 0 }
|
||||
};
|
||||
|
||||
struct resource xram_resources[] = {
|
||||
|
@ -449,7 +449,9 @@ ioremap_proc_info(char *buf, char **start, off_t fpos, int length, int *eof,
|
||||
if (p + 32 >= e) /* Better than nothing */
|
||||
break;
|
||||
if ((nm = r->name) == 0) nm = "???";
|
||||
p += sprintf(p, "%08lx-%08lx: %s\n", r->start, r->end, nm);
|
||||
p += sprintf(p, "%08lx-%08lx: %s\n",
|
||||
(unsigned long)r->start,
|
||||
(unsigned long)r->end, nm);
|
||||
}
|
||||
|
||||
return p-buf;
|
||||
|
@ -34,6 +34,10 @@ config ARCH_MAY_HAVE_PC_FDC
|
||||
bool
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
choice
|
||||
prompt "Kernel page size"
|
||||
default SPARC64_PAGE_SIZE_8KB
|
||||
|
@ -25,6 +25,9 @@ obj-$(CONFIG_MODULES) += module.o
|
||||
obj-$(CONFIG_US3_FREQ) += us3_cpufreq.o
|
||||
obj-$(CONFIG_US2E_FREQ) += us2e_cpufreq.o
|
||||
obj-$(CONFIG_KPROBES) += kprobes.o
|
||||
obj-$(CONFIG_AUDIT) += audit.o
|
||||
obj-$(CONFIG_AUDIT)$(CONFIG_SPARC32_COMPAT) += compat_audit.o
|
||||
obj-y += $(obj-yy)
|
||||
|
||||
ifdef CONFIG_SUNOS_EMUL
|
||||
obj-y += sys_sunos32.o sunos_ioctl32.o
|
||||
|
66
arch/sparc64/kernel/audit.c
Normal file
66
arch/sparc64/kernel/audit.c
Normal file
@ -0,0 +1,66 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/audit.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
static unsigned dir_class[] = {
|
||||
#include <asm-generic/audit_dir_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned read_class[] = {
|
||||
#include <asm-generic/audit_read.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned write_class[] = {
|
||||
#include <asm-generic/audit_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
static unsigned chattr_class[] = {
|
||||
#include <asm-generic/audit_change_attr.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
int audit_classify_syscall(int abi, unsigned syscall)
|
||||
{
|
||||
#ifdef CONFIG_SPARC32_COMPAT
|
||||
extern int sparc32_classify_syscall(unsigned);
|
||||
if (abi == AUDIT_ARCH_SPARC)
|
||||
return sparc32_classify_syscall(syscall);
|
||||
#endif
|
||||
switch(syscall) {
|
||||
case __NR_open:
|
||||
return 2;
|
||||
case __NR_openat:
|
||||
return 3;
|
||||
case __NR_socketcall:
|
||||
return 4;
|
||||
case __NR_execve:
|
||||
return 5;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int __init audit_classes_init(void)
|
||||
{
|
||||
#ifdef CONFIG_SPARC32_COMPAT
|
||||
extern __u32 sparc32_dir_class[];
|
||||
extern __u32 sparc32_write_class[];
|
||||
extern __u32 sparc32_read_class[];
|
||||
extern __u32 sparc32_chattr_class[];
|
||||
audit_register_class(AUDIT_CLASS_WRITE_32, sparc32_write_class);
|
||||
audit_register_class(AUDIT_CLASS_READ_32, sparc32_read_class);
|
||||
audit_register_class(AUDIT_CLASS_DIR_WRITE_32, sparc32_dir_class);
|
||||
audit_register_class(AUDIT_CLASS_CHATTR_32, sparc32_chattr_class);
|
||||
#endif
|
||||
audit_register_class(AUDIT_CLASS_WRITE, write_class);
|
||||
audit_register_class(AUDIT_CLASS_READ, read_class);
|
||||
audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);
|
||||
audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);
|
||||
return 0;
|
||||
}
|
||||
|
||||
__initcall(audit_classes_init);
|
37
arch/sparc64/kernel/compat_audit.c
Normal file
37
arch/sparc64/kernel/compat_audit.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include <asm-sparc/unistd.h>
|
||||
|
||||
unsigned sparc32_dir_class[] = {
|
||||
#include <asm-generic/audit_dir_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_chattr_class[] = {
|
||||
#include <asm-generic/audit_change_attr.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_write_class[] = {
|
||||
#include <asm-generic/audit_write.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
unsigned sparc32_read_class[] = {
|
||||
#include <asm-generic/audit_read.h>
|
||||
~0U
|
||||
};
|
||||
|
||||
int sparc32_classify_syscall(unsigned syscall)
|
||||
{
|
||||
switch(syscall) {
|
||||
case __NR_open:
|
||||
return 2;
|
||||
case __NR_openat:
|
||||
return 3;
|
||||
case __NR_socketcall:
|
||||
return 4;
|
||||
case __NR_execve:
|
||||
return 5;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
}
|
@ -85,6 +85,10 @@ config DMI
|
||||
bool
|
||||
default y
|
||||
|
||||
config AUDIT_ARCH
|
||||
bool
|
||||
default y
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ config VIDEO_V4L1_COMPAT
|
||||
If you are unsure as to whether this is required, answer Y.
|
||||
|
||||
config VIDEO_V4L2
|
||||
tristate
|
||||
bool
|
||||
default y
|
||||
|
||||
source "drivers/media/video/Kconfig"
|
||||
|
@ -1190,6 +1190,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
|
||||
}
|
||||
return err;
|
||||
}
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
case VIDIOCGMBUF:
|
||||
{
|
||||
struct video_mbuf *mbuf = arg;
|
||||
@ -1218,6 +1219,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
|
||||
mutex_unlock(&q->lock);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
return v4l_compat_translate_ioctl(inode,file,cmd,arg,
|
||||
saa7146_video_do_ioctl);
|
||||
|
@ -1,6 +1,7 @@
|
||||
config DVB_B2C2_FLEXCOP
|
||||
tristate "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
|
||||
depends on DVB_CORE && I2C
|
||||
select DVB_PLL
|
||||
select DVB_STV0299
|
||||
select DVB_MT352
|
||||
select DVB_MT312
|
||||
|
@ -1,6 +1,7 @@
|
||||
config DVB_BT8XX
|
||||
tristate "BT8xx based PCI cards"
|
||||
depends on DVB_CORE && PCI && I2C && VIDEO_BT848
|
||||
select DVB_PLL
|
||||
select DVB_MT352
|
||||
select DVB_SP887X
|
||||
select DVB_NXT6000
|
||||
|
@ -2,6 +2,7 @@ config DVB_USB
|
||||
tristate "Support for various USB DVB devices"
|
||||
depends on DVB_CORE && USB && I2C
|
||||
select FW_LOADER
|
||||
select DVB_PLL
|
||||
help
|
||||
By enabling this you will be able to choose the various supported
|
||||
USB1.1 and USB2.0 DVB devices.
|
||||
|
@ -6,43 +6,43 @@ comment "DVB-S (satellite) frontends"
|
||||
|
||||
config DVB_STV0299
|
||||
tristate "ST STV0299 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_CX24110
|
||||
tristate "Conexant CX24110 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_CX24123
|
||||
tristate "Conexant CX24123 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_TDA8083
|
||||
tristate "Philips TDA8083 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_MT312
|
||||
tristate "Zarlink VP310/MT312 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_VES1X93
|
||||
tristate "VLSI VES1893 or VES1993 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_S5H1420
|
||||
tristate "Samsung S5H1420 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-S tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
@ -51,7 +51,7 @@ comment "DVB-T (terrestrial) frontends"
|
||||
|
||||
config DVB_SP8870
|
||||
tristate "Spase sp8870 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
@ -63,7 +63,7 @@ config DVB_SP8870
|
||||
|
||||
config DVB_SP887X
|
||||
tristate "Spase sp887x based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
@ -75,25 +75,25 @@ config DVB_SP887X
|
||||
|
||||
config DVB_CX22700
|
||||
tristate "Conexant CX22700 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_CX22702
|
||||
tristate "Conexant cx22702 demodulator (OFDM)"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_L64781
|
||||
tristate "LSI L64781"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_TDA1004X
|
||||
tristate "Philips TDA10045H/TDA10046H based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
@ -106,32 +106,32 @@ config DVB_TDA1004X
|
||||
|
||||
config DVB_NXT6000
|
||||
tristate "NxtWave Communications NXT6000 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_MT352
|
||||
tristate "Zarlink MT352 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_ZL10353
|
||||
tristate "Zarlink ZL10353 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_DIB3000MB
|
||||
tristate "DiBcom 3000M-B"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Designed for mobile usage. Say Y when you want
|
||||
to support this frontend.
|
||||
|
||||
config DVB_DIB3000MC
|
||||
tristate "DiBcom 3000P/M-C"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-T tuner module. Designed for mobile usage. Say Y when you want
|
||||
to support this frontend.
|
||||
@ -141,19 +141,19 @@ comment "DVB-C (cable) frontends"
|
||||
|
||||
config DVB_VES1820
|
||||
tristate "VLSI VES1820 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-C tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_TDA10021
|
||||
tristate "Philips TDA10021 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-C tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
config DVB_STV0297
|
||||
tristate "ST STV0297 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
A DVB-C tuner module. Say Y when you want to support this frontend.
|
||||
|
||||
@ -162,7 +162,7 @@ comment "ATSC (North American/Korean Terrestrial/Cable DTV) frontends"
|
||||
|
||||
config DVB_NXT200X
|
||||
tristate "NxtWave Communications NXT2002/NXT2004 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
|
||||
@ -176,7 +176,7 @@ config DVB_NXT200X
|
||||
|
||||
config DVB_OR51211
|
||||
tristate "Oren OR51211 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
An ATSC 8VSB tuner module. Say Y when you want to support this frontend.
|
||||
@ -188,7 +188,7 @@ config DVB_OR51211
|
||||
|
||||
config DVB_OR51132
|
||||
tristate "Oren OR51132 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
|
||||
@ -203,7 +203,7 @@ config DVB_OR51132
|
||||
|
||||
config DVB_BCM3510
|
||||
tristate "Broadcom BCM3510"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
select FW_LOADER
|
||||
help
|
||||
An ATSC 8VSB/16VSB and QAM64/256 tuner module. Say Y when you want to
|
||||
@ -211,7 +211,7 @@ config DVB_BCM3510
|
||||
|
||||
config DVB_LGDT330X
|
||||
tristate "LG Electronics LGDT3302/LGDT3303 based"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
An ATSC 8VSB and QAM64/256 tuner module. Say Y when you want
|
||||
to support this frontend.
|
||||
@ -220,15 +220,19 @@ config DVB_LGDT330X
|
||||
comment "Miscellaneous devices"
|
||||
depends on DVB_CORE
|
||||
|
||||
config DVB_PLL
|
||||
tristate
|
||||
depends on DVB_CORE && I2C
|
||||
|
||||
config DVB_LNBP21
|
||||
tristate "LNBP21 SEC controller"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
An SEC control chip.
|
||||
|
||||
config DVB_ISL6421
|
||||
tristate "ISL6421 SEC controller"
|
||||
depends on DVB_CORE
|
||||
depends on DVB_CORE && I2C
|
||||
help
|
||||
An SEC control chip.
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/
|
||||
|
||||
obj-$(CONFIG_DVB_CORE) += dvb-pll.o
|
||||
obj-$(CONFIG_DVB_PLL) += dvb-pll.o
|
||||
obj-$(CONFIG_DVB_STV0299) += stv0299.o
|
||||
obj-$(CONFIG_DVB_SP8870) += sp8870.o
|
||||
obj-$(CONFIG_DVB_CX22700) += cx22700.o
|
||||
|
@ -2,6 +2,7 @@ config DVB_PLUTO2
|
||||
tristate "Pluto2 cards"
|
||||
depends on DVB_CORE && PCI && I2C
|
||||
select I2C_ALGOBIT
|
||||
select DVB_PLL
|
||||
select DVB_TDA1004X
|
||||
help
|
||||
Support for PCI cards based on the Pluto2 FPGA like the Satelco
|
||||
|
@ -3,6 +3,7 @@ config DVB_AV7110
|
||||
depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
|
||||
select FW_LOADER
|
||||
select VIDEO_SAA7146_VV
|
||||
select DVB_PLL
|
||||
select DVB_VES1820
|
||||
select DVB_VES1X93
|
||||
select DVB_STV0299
|
||||
@ -61,6 +62,7 @@ config DVB_BUDGET
|
||||
tristate "Budget cards"
|
||||
depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
|
||||
select VIDEO_SAA7146
|
||||
select DVB_PLL
|
||||
select DVB_STV0299
|
||||
select DVB_VES1X93
|
||||
select DVB_VES1820
|
||||
@ -83,6 +85,7 @@ config DVB_BUDGET_CI
|
||||
tristate "Budget cards with onboard CI connector"
|
||||
depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
|
||||
select VIDEO_SAA7146
|
||||
select DVB_PLL
|
||||
select DVB_STV0297
|
||||
select DVB_STV0299
|
||||
select DVB_TDA1004X
|
||||
@ -104,6 +107,7 @@ config DVB_BUDGET_AV
|
||||
tristate "Budget cards with analog video inputs"
|
||||
depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
|
||||
select VIDEO_SAA7146_VV
|
||||
select DVB_PLL
|
||||
select DVB_STV0299
|
||||
select DVB_TDA1004X
|
||||
select DVB_TDA10021
|
||||
@ -122,6 +126,7 @@ config DVB_BUDGET_PATCH
|
||||
tristate "AV7110 cards with Budget Patch"
|
||||
depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
|
||||
select DVB_AV7110
|
||||
select DVB_PLL
|
||||
select DVB_STV0299
|
||||
select DVB_VES1X93
|
||||
select DVB_TDA8083
|
||||
|
@ -1,6 +1,7 @@
|
||||
config DVB_TTUSB_BUDGET
|
||||
tristate "Technotrend/Hauppauge Nova-USB devices"
|
||||
depends on DVB_CORE && USB
|
||||
depends on DVB_CORE && USB && I2C
|
||||
select DVB_PLL
|
||||
select DVB_CX22700
|
||||
select DVB_TDA1004X
|
||||
select DVB_VES1820
|
||||
|
@ -260,7 +260,7 @@ source "drivers/media/video/saa7134/Kconfig"
|
||||
|
||||
config VIDEO_MXB
|
||||
tristate "Siemens-Nixdorf 'Multimedia eXtension Board'"
|
||||
depends on PCI && VIDEO_V4L1
|
||||
depends on PCI && VIDEO_V4L1 && I2C
|
||||
select VIDEO_SAA7146_VV
|
||||
select VIDEO_TUNER
|
||||
---help---
|
||||
@ -272,7 +272,7 @@ config VIDEO_MXB
|
||||
|
||||
config VIDEO_DPC
|
||||
tristate "Philips-Semiconductors 'dpc7146 demonstration board'"
|
||||
depends on PCI && VIDEO_V4L1
|
||||
depends on PCI && VIDEO_V4L1 && I2C
|
||||
select VIDEO_SAA7146_VV
|
||||
select VIDEO_V4L2
|
||||
---help---
|
||||
@ -287,7 +287,7 @@ config VIDEO_DPC
|
||||
|
||||
config VIDEO_HEXIUM_ORION
|
||||
tristate "Hexium HV-PCI6 and Orion frame grabber"
|
||||
depends on PCI && VIDEO_V4L1
|
||||
depends on PCI && VIDEO_V4L1 && I2C
|
||||
select VIDEO_SAA7146_VV
|
||||
select VIDEO_V4L2
|
||||
---help---
|
||||
@ -299,7 +299,7 @@ config VIDEO_HEXIUM_ORION
|
||||
|
||||
config VIDEO_HEXIUM_GEMINI
|
||||
tristate "Hexium Gemini frame grabber"
|
||||
depends on PCI && VIDEO_V4L1
|
||||
depends on PCI && VIDEO_V4L1 && I2C
|
||||
select VIDEO_SAA7146_VV
|
||||
select VIDEO_V4L2
|
||||
---help---
|
||||
|
@ -303,6 +303,7 @@ int bttv_input_init(struct bttv *btv)
|
||||
ir->mask_keyup = 0x010000;
|
||||
ir->polling = 50; // ms
|
||||
break;
|
||||
case BTTV_BOARD_PV_M4900:
|
||||
case BTTV_BOARD_PV_BT878P_9B:
|
||||
case BTTV_BOARD_PV_BT878P_PLUS:
|
||||
ir_codes = ir_codes_pixelview;
|
||||
|
@ -51,6 +51,7 @@ config VIDEO_CX88_DVB
|
||||
tristate "DVB/ATSC Support for cx2388x based TV cards"
|
||||
depends on VIDEO_CX88 && DVB_CORE
|
||||
select VIDEO_BUF_DVB
|
||||
select DVB_PLL
|
||||
---help---
|
||||
This adds support for DVB/ATSC cards based on the
|
||||
Conexant 2388x chip.
|
||||
|
@ -40,6 +40,7 @@ config VIDEO_SAA7134_DVB
|
||||
depends on VIDEO_SAA7134 && DVB_CORE
|
||||
select VIDEO_BUF_DVB
|
||||
select FW_LOADER
|
||||
select DVB_PLL
|
||||
---help---
|
||||
This adds support for DVB cards based on the
|
||||
Philips saa7134 chip.
|
||||
|
@ -926,11 +926,17 @@ static struct tuner_params tuner_lg_tdvs_h06xf_params[] = {
|
||||
|
||||
/* ------------ TUNER_YMEC_TVF66T5_B_DFF - Philips PAL ------------ */
|
||||
|
||||
static struct tuner_range tuner_ymec_tvf66t5_b_dff_pal_ranges[] = {
|
||||
{ 16 * 160.25 /*MHz*/, 0x8e, 0x01, },
|
||||
{ 16 * 464.25 /*MHz*/, 0x8e, 0x02, },
|
||||
{ 16 * 999.99 , 0x8e, 0x08, },
|
||||
};
|
||||
|
||||
static struct tuner_params tuner_ymec_tvf66t5_b_dff_params[] = {
|
||||
{
|
||||
.type = TUNER_PARAM_TYPE_PAL,
|
||||
.ranges = tuner_tena_9533_di_pal_ranges,
|
||||
.count = ARRAY_SIZE(tuner_tena_9533_di_pal_ranges),
|
||||
.ranges = tuner_ymec_tvf66t5_b_dff_pal_ranges,
|
||||
.count = ARRAY_SIZE(tuner_ymec_tvf66t5_b_dff_pal_ranges),
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -267,7 +267,7 @@ struct zoran_v4l_settings {
|
||||
};
|
||||
|
||||
/* whoops, this one is undeclared if !v4l2 */
|
||||
#ifndef HAVE_V4L2
|
||||
#ifndef CONFIG_VIDEO_V4L2
|
||||
struct v4l2_jpegcompression {
|
||||
int quality;
|
||||
int APPn;
|
||||
|
@ -86,7 +86,7 @@
|
||||
#include "zoran_device.h"
|
||||
#include "zoran_card.h"
|
||||
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
/* we declare some card type definitions here, they mean
|
||||
* the same as the v4l1 ZORAN_VID_TYPE above, except it's v4l2 */
|
||||
#define ZORAN_V4L2_VID_FLAGS ( \
|
||||
@ -103,7 +103,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
{
|
||||
.name = "15-bit RGB",
|
||||
.palette = VIDEO_PALETTE_RGB555,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.fourcc = V4L2_PIX_FMT_RGB555,
|
||||
#else
|
||||
@ -117,7 +117,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
}, {
|
||||
.name = "16-bit RGB",
|
||||
.palette = VIDEO_PALETTE_RGB565,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.fourcc = V4L2_PIX_FMT_RGB565,
|
||||
#else
|
||||
@ -131,7 +131,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
}, {
|
||||
.name = "24-bit RGB",
|
||||
.palette = VIDEO_PALETTE_RGB24,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.fourcc = V4L2_PIX_FMT_BGR24,
|
||||
#else
|
||||
@ -145,7 +145,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
}, {
|
||||
.name = "32-bit RGB",
|
||||
.palette = VIDEO_PALETTE_RGB32,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.fourcc = V4L2_PIX_FMT_BGR32,
|
||||
#else
|
||||
@ -159,7 +159,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
}, {
|
||||
.name = "4:2:2, packed, YUYV",
|
||||
.palette = VIDEO_PALETTE_YUV422,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
.fourcc = V4L2_PIX_FMT_YUYV,
|
||||
.colorspace = V4L2_COLORSPACE_SMPTE170M,
|
||||
#endif
|
||||
@ -169,7 +169,7 @@ const struct zoran_format zoran_formats[] = {
|
||||
}, {
|
||||
.name = "Hardware-encoded Motion-JPEG",
|
||||
.palette = -1,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
.fourcc = V4L2_PIX_FMT_MJPEG,
|
||||
.colorspace = V4L2_COLORSPACE_SMPTE170M,
|
||||
#endif
|
||||
@ -210,7 +210,7 @@ static int lock_norm = 0; /* 1=Don't change TV standard (norm) */
|
||||
module_param(lock_norm, int, 0);
|
||||
MODULE_PARM_DESC(lock_norm, "Users can't change norm");
|
||||
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
/* small helper function for calculating buffersizes for v4l2
|
||||
* we calculate the nearest higher power-of-two, which
|
||||
* will be the recommended buffersize */
|
||||
@ -1761,7 +1761,7 @@ setup_overlay (struct file *file,
|
||||
return wait_grab_pending(zr);
|
||||
}
|
||||
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
/* get the status of a buffer in the clients buffer queue */
|
||||
static int
|
||||
zoran_v4l2_buffer_status (struct file *file,
|
||||
@ -2676,7 +2676,7 @@ zoran_do_ioctl (struct inode *inode,
|
||||
}
|
||||
break;
|
||||
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
|
||||
/* The new video4linux2 capture interface - much nicer than video4linux1, since
|
||||
* it allows for integrating the JPEG capturing calls inside standard v4l2
|
||||
@ -4689,7 +4689,7 @@ static struct file_operations zoran_fops = {
|
||||
struct video_device zoran_template __devinitdata = {
|
||||
.name = ZORAN_NAME,
|
||||
.type = ZORAN_VID_TYPE,
|
||||
#ifdef HAVE_V4L2
|
||||
#ifdef CONFIG_VIDEO_V4L2
|
||||
.type2 = ZORAN_V4L2_VID_FLAGS,
|
||||
#endif
|
||||
.hardware = ZORAN_HARDWARE,
|
||||
|
@ -1579,7 +1579,7 @@ static int __init serial_console_setup(struct console *co, char *options)
|
||||
h8300_sci_enable(port, sci_enable);
|
||||
#endif
|
||||
#elif defined(CONFIG_SUPERH64)
|
||||
port->uartclk = current_cpu_info.module_clock * 16;
|
||||
port->uartclk = current_cpu_data.module_clock * 16;
|
||||
#else
|
||||
{
|
||||
struct clk *clk = clk_get("module_clk");
|
||||
@ -1720,7 +1720,7 @@ static int __init sci_init(void)
|
||||
#if defined(__H8300H__) || defined(__H8300S__)
|
||||
sciport->port.uartclk = CONFIG_CPU_CLOCK;
|
||||
#elif defined(CONFIG_SUPERH64)
|
||||
sciport->port.uartclk = current_cpu_info.module_clock * 16;
|
||||
sciport->port.uartclk = current_cpu_data.module_clock * 16;
|
||||
#else
|
||||
struct clk *clk = clk_get("module_clk");
|
||||
sciport->port.uartclk = clk_get_rate(clk) * 16;
|
||||
|
@ -810,12 +810,9 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
|
||||
if (yld == NULL)
|
||||
return err;
|
||||
|
||||
if (yld->urb_irq) {
|
||||
usb_kill_urb(yld->urb_irq);
|
||||
usb_free_urb(yld->urb_irq);
|
||||
}
|
||||
if (yld->urb_ctl)
|
||||
usb_free_urb(yld->urb_ctl);
|
||||
usb_kill_urb(yld->urb_irq); /* parameter validation in core/urb */
|
||||
usb_kill_urb(yld->urb_ctl); /* parameter validation in core/urb */
|
||||
|
||||
if (yld->idev) {
|
||||
if (err)
|
||||
input_free_device(yld->idev);
|
||||
@ -831,6 +828,9 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
|
||||
if (yld->irq_data)
|
||||
usb_buffer_free(yld->udev, USB_PKT_LEN,
|
||||
yld->irq_data, yld->irq_dma);
|
||||
|
||||
usb_free_urb(yld->urb_irq); /* parameter validation in core/urb */
|
||||
usb_free_urb(yld->urb_ctl); /* parameter validation in core/urb */
|
||||
kfree(yld);
|
||||
return err;
|
||||
}
|
||||
|
@ -464,8 +464,10 @@ static int serial_read_proc (char *page, char **start, off_t off, int count, int
|
||||
length += sprintf (page+length, " path:%s", tmp);
|
||||
|
||||
length += sprintf (page+length, "\n");
|
||||
if ((length + begin) > (off + count))
|
||||
if ((length + begin) > (off + count)) {
|
||||
usb_serial_put(serial);
|
||||
goto done;
|
||||
}
|
||||
if ((length + begin) < off) {
|
||||
begin += length;
|
||||
length = 0;
|
||||
|
@ -82,7 +82,6 @@ static int construct_dentry(struct qstr *qstring, struct file *file,
|
||||
if(*ptmp_inode == NULL)
|
||||
return rc;
|
||||
rc = 1;
|
||||
d_instantiate(tmp_dentry, *ptmp_inode);
|
||||
}
|
||||
} else {
|
||||
tmp_dentry = d_alloc(file->f_dentry, qstring);
|
||||
@ -99,9 +98,7 @@ static int construct_dentry(struct qstr *qstring, struct file *file,
|
||||
tmp_dentry->d_op = &cifs_dentry_ops;
|
||||
if(*ptmp_inode == NULL)
|
||||
return rc;
|
||||
rc = 1;
|
||||
d_instantiate(tmp_dentry, *ptmp_inode);
|
||||
d_rehash(tmp_dentry);
|
||||
rc = 2;
|
||||
}
|
||||
|
||||
tmp_dentry->d_time = jiffies;
|
||||
@ -870,6 +867,12 @@ static int cifs_filldir(char *pfindEntry, struct file *file,
|
||||
pfindEntry, &obj_type, rc);
|
||||
else
|
||||
fill_in_inode(tmp_inode, 1 /* NT */, pfindEntry, &obj_type, rc);
|
||||
|
||||
if(rc) /* new inode - needs to be tied to dentry */ {
|
||||
d_instantiate(tmp_dentry, tmp_inode);
|
||||
if(rc == 2)
|
||||
d_rehash(tmp_dentry);
|
||||
}
|
||||
|
||||
|
||||
rc = filldir(direntry,qstring.name,qstring.len,file->f_pos,
|
||||
|
@ -1390,11 +1390,19 @@ xfs_vm_direct_IO(
|
||||
|
||||
iocb->private = xfs_alloc_ioend(inode, IOMAP_UNWRITTEN);
|
||||
|
||||
ret = blockdev_direct_IO_own_locking(rw, iocb, inode,
|
||||
iomap.iomap_target->bt_bdev,
|
||||
iov, offset, nr_segs,
|
||||
xfs_get_blocks_direct,
|
||||
xfs_end_io_direct);
|
||||
if (rw == WRITE) {
|
||||
ret = blockdev_direct_IO_own_locking(rw, iocb, inode,
|
||||
iomap.iomap_target->bt_bdev,
|
||||
iov, offset, nr_segs,
|
||||
xfs_get_blocks_direct,
|
||||
xfs_end_io_direct);
|
||||
} else {
|
||||
ret = blockdev_direct_IO_no_locking(rw, iocb, inode,
|
||||
iomap.iomap_target->bt_bdev,
|
||||
iov, offset, nr_segs,
|
||||
xfs_get_blocks_direct,
|
||||
xfs_end_io_direct);
|
||||
}
|
||||
|
||||
if (unlikely(ret <= 0 && iocb->private))
|
||||
xfs_destroy_ioend(iocb->private);
|
||||
|
@ -264,7 +264,9 @@ xfs_read(
|
||||
dmflags, &locktype);
|
||||
if (ret) {
|
||||
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
||||
goto unlock_mutex;
|
||||
if (unlikely(ioflags & IO_ISDIRECT))
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@ -272,6 +274,9 @@ xfs_read(
|
||||
bhv_vop_flushinval_pages(vp, ctooff(offtoct(*offset)),
|
||||
-1, FI_REMAPF_LOCKED);
|
||||
|
||||
if (unlikely(ioflags & IO_ISDIRECT))
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
|
||||
xfs_rw_enter_trace(XFS_READ_ENTER, &ip->i_iocore,
|
||||
(void *)iovp, segs, *offset, ioflags);
|
||||
ret = __generic_file_aio_read(iocb, iovp, segs, offset);
|
||||
@ -281,10 +286,6 @@ xfs_read(
|
||||
XFS_STATS_ADD(xs_read_bytes, ret);
|
||||
|
||||
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
||||
|
||||
unlock_mutex:
|
||||
if (unlikely(ioflags & IO_ISDIRECT))
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -390,6 +391,8 @@ xfs_splice_write(
|
||||
xfs_inode_t *ip = XFS_BHVTOI(bdp);
|
||||
xfs_mount_t *mp = ip->i_mount;
|
||||
ssize_t ret;
|
||||
struct inode *inode = outfilp->f_mapping->host;
|
||||
xfs_fsize_t isize;
|
||||
|
||||
XFS_STATS_INC(xs_write_calls);
|
||||
if (XFS_FORCED_SHUTDOWN(ip->i_mount))
|
||||
@ -416,6 +419,20 @@ xfs_splice_write(
|
||||
if (ret > 0)
|
||||
XFS_STATS_ADD(xs_write_bytes, ret);
|
||||
|
||||
isize = i_size_read(inode);
|
||||
if (unlikely(ret < 0 && ret != -EFAULT && *ppos > isize))
|
||||
*ppos = isize;
|
||||
|
||||
if (*ppos > ip->i_d.di_size) {
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
if (*ppos > ip->i_d.di_size) {
|
||||
ip->i_d.di_size = *ppos;
|
||||
i_size_write(inode, *ppos);
|
||||
ip->i_update_core = 1;
|
||||
ip->i_update_size = 1;
|
||||
}
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
}
|
||||
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
|
||||
return ret;
|
||||
}
|
||||
|
@ -203,7 +203,7 @@ xfs_qm_statvfs(
|
||||
if (error || !vnode)
|
||||
return error;
|
||||
|
||||
mp = XFS_BHVTOM(bhv);
|
||||
mp = xfs_vfstom(bhvtovfs(bhv));
|
||||
ip = xfs_vtoi(vnode);
|
||||
|
||||
if (!(ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT))
|
||||
|
@ -43,6 +43,26 @@ typedef enum xfs_alloctype
|
||||
#define XFS_ALLOC_FLAG_TRYLOCK 0x00000001 /* use trylock for buffer locking */
|
||||
#define XFS_ALLOC_FLAG_FREEING 0x00000002 /* indicate caller is freeing extents*/
|
||||
|
||||
/*
|
||||
* In order to avoid ENOSPC-related deadlock caused by
|
||||
* out-of-order locking of AGF buffer (PV 947395), we place
|
||||
* constraints on the relationship among actual allocations for
|
||||
* data blocks, freelist blocks, and potential file data bmap
|
||||
* btree blocks. However, these restrictions may result in no
|
||||
* actual space allocated for a delayed extent, for example, a data
|
||||
* block in a certain AG is allocated but there is no additional
|
||||
* block for the additional bmap btree block due to a split of the
|
||||
* bmap btree of the file. The result of this may lead to an
|
||||
* infinite loop in xfssyncd when the file gets flushed to disk and
|
||||
* all delayed extents need to be actually allocated. To get around
|
||||
* this, we explicitly set aside a few blocks which will not be
|
||||
* reserved in delayed allocation. Considering the minimum number of
|
||||
* needed freelist blocks is 4 fsbs _per AG_, a potential split of file's bmap
|
||||
* btree requires 1 fsb, so we set the number of set-aside blocks
|
||||
* to 4 + 4*agcount.
|
||||
*/
|
||||
#define XFS_ALLOC_SET_ASIDE(mp) (4 + ((mp)->m_sb.sb_agcount * 4))
|
||||
|
||||
/*
|
||||
* Argument structure for xfs_alloc routines.
|
||||
* This is turned into a structure to avoid having 20 arguments passed
|
||||
|
@ -462,7 +462,7 @@ xfs_fs_counts(
|
||||
|
||||
xfs_icsb_sync_counters_lazy(mp);
|
||||
s = XFS_SB_LOCK(mp);
|
||||
cnt->freedata = mp->m_sb.sb_fdblocks;
|
||||
cnt->freedata = mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
|
||||
cnt->freertx = mp->m_sb.sb_frextents;
|
||||
cnt->freeino = mp->m_sb.sb_ifree;
|
||||
cnt->allocino = mp->m_sb.sb_icount;
|
||||
@ -519,15 +519,19 @@ xfs_reserve_blocks(
|
||||
}
|
||||
mp->m_resblks = request;
|
||||
} else {
|
||||
__int64_t free;
|
||||
|
||||
free = mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
|
||||
delta = request - mp->m_resblks;
|
||||
lcounter = mp->m_sb.sb_fdblocks - delta;
|
||||
lcounter = free - delta;
|
||||
if (lcounter < 0) {
|
||||
/* We can't satisfy the request, just get what we can */
|
||||
mp->m_resblks += mp->m_sb.sb_fdblocks;
|
||||
mp->m_resblks_avail += mp->m_sb.sb_fdblocks;
|
||||
mp->m_sb.sb_fdblocks = 0;
|
||||
mp->m_resblks += free;
|
||||
mp->m_resblks_avail += free;
|
||||
mp->m_sb.sb_fdblocks = XFS_ALLOC_SET_ASIDE(mp);
|
||||
} else {
|
||||
mp->m_sb.sb_fdblocks = lcounter;
|
||||
mp->m_sb.sb_fdblocks =
|
||||
lcounter + XFS_ALLOC_SET_ASIDE(mp);
|
||||
mp->m_resblks = request;
|
||||
mp->m_resblks_avail += delta;
|
||||
}
|
||||
|
@ -1243,24 +1243,6 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields)
|
||||
xfs_trans_log_buf(tp, bp, first, last);
|
||||
}
|
||||
|
||||
/*
|
||||
* In order to avoid ENOSPC-related deadlock caused by
|
||||
* out-of-order locking of AGF buffer (PV 947395), we place
|
||||
* constraints on the relationship among actual allocations for
|
||||
* data blocks, freelist blocks, and potential file data bmap
|
||||
* btree blocks. However, these restrictions may result in no
|
||||
* actual space allocated for a delayed extent, for example, a data
|
||||
* block in a certain AG is allocated but there is no additional
|
||||
* block for the additional bmap btree block due to a split of the
|
||||
* bmap btree of the file. The result of this may lead to an
|
||||
* infinite loop in xfssyncd when the file gets flushed to disk and
|
||||
* all delayed extents need to be actually allocated. To get around
|
||||
* this, we explicitly set aside a few blocks which will not be
|
||||
* reserved in delayed allocation. Considering the minimum number of
|
||||
* needed freelist blocks is 4 fsbs, a potential split of file's bmap
|
||||
* btree requires 1 fsb, so we set the number of set-aside blocks to 8.
|
||||
*/
|
||||
#define SET_ASIDE_BLOCKS 8
|
||||
|
||||
/*
|
||||
* xfs_mod_incore_sb_unlocked() is a utility routine common used to apply
|
||||
@ -1306,7 +1288,8 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field,
|
||||
return 0;
|
||||
case XFS_SBS_FDBLOCKS:
|
||||
|
||||
lcounter = (long long)mp->m_sb.sb_fdblocks - SET_ASIDE_BLOCKS;
|
||||
lcounter = (long long)
|
||||
mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
|
||||
res_used = (long long)(mp->m_resblks - mp->m_resblks_avail);
|
||||
|
||||
if (delta > 0) { /* Putting blocks back */
|
||||
@ -1340,7 +1323,7 @@ xfs_mod_incore_sb_unlocked(xfs_mount_t *mp, xfs_sb_field_t field,
|
||||
}
|
||||
}
|
||||
|
||||
mp->m_sb.sb_fdblocks = lcounter + SET_ASIDE_BLOCKS;
|
||||
mp->m_sb.sb_fdblocks = lcounter + XFS_ALLOC_SET_ASIDE(mp);
|
||||
return 0;
|
||||
case XFS_SBS_FREXTENTS:
|
||||
lcounter = (long long)mp->m_sb.sb_frextents;
|
||||
@ -2021,7 +2004,8 @@ xfs_icsb_sync_counters_lazy(
|
||||
* when we get near ENOSPC.
|
||||
*/
|
||||
#define XFS_ICSB_INO_CNTR_REENABLE 64
|
||||
#define XFS_ICSB_FDBLK_CNTR_REENABLE 512
|
||||
#define XFS_ICSB_FDBLK_CNTR_REENABLE(mp) \
|
||||
(512 + XFS_ALLOC_SET_ASIDE(mp))
|
||||
STATIC void
|
||||
xfs_icsb_balance_counter(
|
||||
xfs_mount_t *mp,
|
||||
@ -2055,7 +2039,7 @@ xfs_icsb_balance_counter(
|
||||
case XFS_SBS_FDBLOCKS:
|
||||
count = mp->m_sb.sb_fdblocks;
|
||||
resid = do_div(count, weight);
|
||||
if (count < XFS_ICSB_FDBLK_CNTR_REENABLE)
|
||||
if (count < XFS_ICSB_FDBLK_CNTR_REENABLE(mp))
|
||||
goto out;
|
||||
break;
|
||||
default:
|
||||
@ -2110,11 +2094,11 @@ again:
|
||||
case XFS_SBS_FDBLOCKS:
|
||||
BUG_ON((mp->m_resblks - mp->m_resblks_avail) != 0);
|
||||
|
||||
lcounter = icsbp->icsb_fdblocks;
|
||||
lcounter = icsbp->icsb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
|
||||
lcounter += delta;
|
||||
if (unlikely(lcounter < 0))
|
||||
goto slow_path;
|
||||
icsbp->icsb_fdblocks = lcounter;
|
||||
icsbp->icsb_fdblocks = lcounter + XFS_ALLOC_SET_ASIDE(mp);
|
||||
break;
|
||||
default:
|
||||
BUG();
|
||||
|
@ -811,7 +811,8 @@ xfs_statvfs(
|
||||
statp->f_bsize = sbp->sb_blocksize;
|
||||
lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0;
|
||||
statp->f_blocks = sbp->sb_dblocks - lsize;
|
||||
statp->f_bfree = statp->f_bavail = sbp->sb_fdblocks;
|
||||
statp->f_bfree = statp->f_bavail =
|
||||
sbp->sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
|
||||
fakeinos = statp->f_bfree << sbp->sb_inopblog;
|
||||
#if XFS_BIG_INUMS
|
||||
fakeinos += mp->m_inoadd;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#ifndef __ASM_SH64_BUG_H
|
||||
#define __ASM_SH64_BUG_H
|
||||
|
||||
|
||||
#ifdef CONFIG_BUG
|
||||
/*
|
||||
* Tell the user there is some problem, then force a segfault (in process
|
||||
* context) or a panic (interrupt context).
|
||||
@ -11,17 +11,9 @@
|
||||
*(volatile int *)0 = 0; \
|
||||
} while (0)
|
||||
|
||||
#define BUG_ON(condition) do { \
|
||||
if (unlikely((condition)!=0)) \
|
||||
BUG(); \
|
||||
} while(0)
|
||||
#define HAVE_ARCH_BUG
|
||||
#endif
|
||||
|
||||
#define WARN_ON(condition) do { \
|
||||
if (unlikely((condition)!=0)) { \
|
||||
printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
|
||||
dump_stack(); \
|
||||
} \
|
||||
} while (0)
|
||||
#include <asm-generic/bug.h>
|
||||
|
||||
#endif /* __ASM_SH64_BUG_H */
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
|
||||
static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
|
||||
{
|
||||
__asm__("byterev %0, %0\n\t"
|
||||
"shari %0, 32, %0"
|
||||
@ -23,7 +23,7 @@ static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
|
||||
return x;
|
||||
}
|
||||
|
||||
static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
|
||||
static inline __attribute_const__ __u16 ___arch__swab16(__u16 x)
|
||||
{
|
||||
__asm__("byterev %0, %0\n\t"
|
||||
"shari %0, 48, %0"
|
||||
|
@ -126,22 +126,30 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg,
|
||||
static inline void dma_sync_single_for_cpu(struct device *dev,
|
||||
dma_addr_t dma_handle, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
__attribute__ ((alias("dma_sync_single")));
|
||||
{
|
||||
dma_sync_single(dev, dma_handle, size, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_single_for_device(struct device *dev,
|
||||
dma_addr_t dma_handle, size_t size,
|
||||
enum dma_data_direction dir)
|
||||
__attribute__ ((alias("dma_sync_single")));
|
||||
{
|
||||
dma_sync_single(dev, dma_handle, size, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_sg_for_cpu(struct device *dev,
|
||||
struct scatterlist *sg, int nelems,
|
||||
enum dma_data_direction dir)
|
||||
__attribute__ ((alias("dma_sync_sg")));
|
||||
{
|
||||
dma_sync_sg(dev, sg, nelems, dir);
|
||||
}
|
||||
|
||||
static inline void dma_sync_sg_for_device(struct device *dev,
|
||||
struct scatterlist *sg, int nelems,
|
||||
enum dma_data_direction dir)
|
||||
__attribute__ ((alias("dma_sync_sg")));
|
||||
{
|
||||
dma_sync_sg(dev, sg, nelems, dir);
|
||||
}
|
||||
|
||||
static inline int dma_get_cache_alignment(void)
|
||||
{
|
||||
|
@ -123,6 +123,13 @@ void insw(unsigned long port, void *addr, unsigned long count);
|
||||
void outsl(unsigned long port, const void *addr, unsigned long count);
|
||||
void insl(unsigned long port, void *addr, unsigned long count);
|
||||
|
||||
#define __raw_readb readb
|
||||
#define __raw_readw readw
|
||||
#define __raw_readl readl
|
||||
#define __raw_writeb writeb
|
||||
#define __raw_writew writew
|
||||
#define __raw_writel writel
|
||||
|
||||
void memcpy_toio(void __iomem *to, const void *from, long count);
|
||||
void memcpy_fromio(void *to, void __iomem *from, long count);
|
||||
|
||||
|
@ -28,7 +28,7 @@ struct pt_regs {
|
||||
#ifdef __KERNEL__
|
||||
#define user_mode(regs) (((regs)->sr & 0x40000000)==0)
|
||||
#define instruction_pointer(regs) ((regs)->pc)
|
||||
#define profile_pc(regs) instruction_pointer(regs)
|
||||
#define profile_pc(regs) ((unsigned long)instruction_pointer(regs))
|
||||
extern void show_regs(struct pt_regs *);
|
||||
#endif
|
||||
|
||||
|
@ -64,7 +64,7 @@ extern void __xchg_called_with_bad_pointer(void);
|
||||
#define smp_read_barrier_depends() do { } while (0)
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
#define set_rmb(var, value) do { xchg(&var, value); } while (0)
|
||||
#define set_rmb(var, value) do { (void)xchg(&var, value); } while (0)
|
||||
#define set_mb(var, value) set_rmb(var, value)
|
||||
|
||||
/* Interrupt Control */
|
||||
|
@ -128,25 +128,20 @@ do { \
|
||||
|
||||
#define __get_user_nocheck(x,ptr,size) \
|
||||
({ \
|
||||
long __gu_addr = (long)(ptr); \
|
||||
long __gu_err; \
|
||||
__typeof(*(ptr)) __gu_val; \
|
||||
__asm__ ("":"=r" (__gu_val)); \
|
||||
__asm__ ("":"=r" (__gu_err)); \
|
||||
__get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \
|
||||
(x) = (__typeof__(*(ptr))) __gu_val; \
|
||||
long __gu_err, __gu_val; \
|
||||
__get_user_size((void *)&__gu_val, (long)(ptr), \
|
||||
(size), __gu_err); \
|
||||
(x) = (__typeof__(*(ptr)))__gu_val; \
|
||||
__gu_err; \
|
||||
})
|
||||
|
||||
#define __get_user_check(x,ptr,size) \
|
||||
({ \
|
||||
long __gu_addr = (long)(ptr); \
|
||||
long __gu_err = -EFAULT; \
|
||||
__typeof(*(ptr)) __gu_val; \
|
||||
__asm__ ("":"=r" (__gu_val)); \
|
||||
__asm__ ("":"=r" (__gu_err)); \
|
||||
long __gu_err = -EFAULT, __gu_val; \
|
||||
if (__access_ok(__gu_addr, (size))) \
|
||||
__get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \
|
||||
__get_user_size((void *)&__gu_val, __gu_addr, \
|
||||
(size), __gu_err); \
|
||||
(x) = (__typeof__(*(ptr))) __gu_val; \
|
||||
__gu_err; \
|
||||
})
|
||||
|
@ -14,8 +14,7 @@
|
||||
|
||||
#include <linux/videodev2.h>
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
#define HAVE_V4L1 1
|
||||
#if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
|
||||
|
||||
struct video_capability
|
||||
{
|
||||
|
@ -22,8 +22,6 @@
|
||||
#endif
|
||||
#include <linux/types.h>
|
||||
|
||||
#define HAVE_V4L2 1
|
||||
|
||||
/*
|
||||
* Common stuff for both V4L1 and V4L2
|
||||
* Moved from videodev.h
|
||||
|
@ -194,7 +194,7 @@ struct video_device
|
||||
|
||||
|
||||
int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i);
|
||||
#ifdef HAVE_V4L1
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
/* buffer type is struct vidio_mbuf * */
|
||||
int (*vidiocgmbuf) (struct file *file, void *fh, struct video_mbuf *p);
|
||||
#endif
|
||||
@ -335,7 +335,7 @@ extern int video_usercopy(struct inode *inode, struct file *file,
|
||||
unsigned int cmd, void *arg));
|
||||
|
||||
|
||||
#ifdef HAVE_V4L1
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
#include <linux/mm.h>
|
||||
|
||||
extern struct video_device* video_devdata(struct file*);
|
||||
@ -357,6 +357,8 @@ video_device_remove_file(struct video_device *vfd,
|
||||
class_device_remove_file(&vfd->class_dev, attr);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_VIDEO_V4L1_COMPAT */
|
||||
|
||||
#ifdef OBSOLETE_OWNER /* to be removed soon */
|
||||
/* helper functions to access driver private data. */
|
||||
static inline void *video_get_drvdata(struct video_device *dev)
|
||||
@ -372,6 +374,5 @@ static inline void video_set_drvdata(struct video_device *dev, void *data)
|
||||
|
||||
extern int video_exclusive_open(struct inode *inode, struct file *file);
|
||||
extern int video_exclusive_release(struct inode *inode, struct file *file);
|
||||
#endif /* HAVE_V4L1 */
|
||||
|
||||
#endif /* _V4L2_DEV_H */
|
||||
|
@ -38,6 +38,11 @@ config LIBCRC32C
|
||||
require M here. See Castagnoli93.
|
||||
Module will be libcrc32c.
|
||||
|
||||
config AUDIT_GENERIC
|
||||
bool
|
||||
depends on AUDIT && !AUDIT_ARCH
|
||||
default y
|
||||
|
||||
#
|
||||
# compression support is select'ed if needed
|
||||
#
|
||||
|
@ -49,6 +49,7 @@ obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o
|
||||
obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o
|
||||
obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
|
||||
obj-$(CONFIG_SMP) += percpu_counter.o
|
||||
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
|
||||
|
||||
obj-$(CONFIG_SWIOTLB) += swiotlb.o
|
||||
|
||||
|
@ -30,8 +30,10 @@ int audit_classify_syscall(int abi, unsigned syscall)
|
||||
return 2;
|
||||
case __NR_openat:
|
||||
return 3;
|
||||
#ifdef __NR_socketcall
|
||||
case __NR_socketcall:
|
||||
return 4;
|
||||
#endif
|
||||
case __NR_execve:
|
||||
return 5;
|
||||
default:
|
Loading…
Reference in New Issue
Block a user