Merge branch 'akpm' (patches from Andrew)

Merge third patch-bomb from Andrew Morton:
 "We're pretty much done over here - I'm still waiting for a nouveau
  merge so I can cleanly finish up Christoph's dma-mapping rework.

   - bunch of small misc stuff

   - fold abs64() into abs(), remove abs64()

   - new_valid_dev() cleanups

   - binfmt_elf_fdpic feature work"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (24 commits)
  fs/binfmt_elf_fdpic.c: provide NOMMU loader for regular ELF binaries
  fs/stat.c: remove unnecessary new_valid_dev() check
  fs/reiserfs/namei.c: remove unnecessary new_valid_dev() check
  fs/nilfs2/namei.c: remove unnecessary new_valid_dev() check
  fs/ncpfs/dir.c: remove unnecessary new_valid_dev() check
  fs/jfs: remove unnecessary new_valid_dev() checks
  fs/hpfs/namei.c: remove unnecessary new_valid_dev() check
  fs/f2fs/namei.c: remove unnecessary new_valid_dev() check
  fs/ext2/namei.c: remove unnecessary new_valid_dev() check
  fs/exofs/namei.c: remove unnecessary new_valid_dev() check
  fs/btrfs/inode.c: remove unnecessary new_valid_dev() check
  fs/9p: remove unnecessary new_valid_dev() checks
  include/linux/kdev_t.h: old/new_valid_dev() can return bool
  include/linux/kdev_t.h: remove unused huge_valid_dev()
  kmap_atomic_to_page() has no users, remove it
  drivers/scsi/cxgbi: fix build with EXTRA_CFLAGS
  dma: remove external references to dma_supported
  Documentation/sysctl/vm.txt: fix misleading code reference of overcommit_memory
  remove abs64()
  kernel.h: make abs() work with 64-bit types
  ...
This commit is contained in:
Linus Torvalds 2015-11-09 21:05:13 -08:00
commit bd4f203e43
61 changed files with 104 additions and 221 deletions

View File

@ -141,19 +141,6 @@ memory back to the pool before you destroy it.
Part Ic - DMA addressing limitations Part Ic - DMA addressing limitations
------------------------------------ ------------------------------------
int
dma_supported(struct device *dev, u64 mask)
Checks to see if the device can support DMA to the memory described by
mask.
Returns: 1 if it can and 0 if it can't.
Notes: This routine merely tests to see if the mask is possible. It
won't change the current mask settings. It is more intended as an
internal API for use by the platform than an external API for use by
driver writers.
int int
dma_set_mask_and_coherent(struct device *dev, u64 mask) dma_set_mask_and_coherent(struct device *dev, u64 mask)

View File

@ -639,7 +639,7 @@ and don't use much of it.
The default value is 0. The default value is 0.
See Documentation/vm/overcommit-accounting and See Documentation/vm/overcommit-accounting and
security/commoncap.c::cap_vm_enough_memory() for more information. mm/mmap.c::__vm_enough_memory() for more information.
============================================================== ==============================================================

View File

@ -68,7 +68,6 @@ extern void kunmap(struct page *page);
extern void *kmap_atomic(struct page *page); extern void *kmap_atomic(struct page *page);
extern void __kunmap_atomic(void *kvaddr); extern void __kunmap_atomic(void *kvaddr);
extern void *kmap_atomic_pfn(unsigned long pfn); extern void *kmap_atomic_pfn(unsigned long pfn);
extern struct page *kmap_atomic_to_page(const void *ptr);
#endif #endif
#endif #endif

View File

@ -147,13 +147,3 @@ void *kmap_atomic_pfn(unsigned long pfn)
return (void *)vaddr; return (void *)vaddr;
} }
struct page *kmap_atomic_to_page(const void *ptr)
{
unsigned long vaddr = (unsigned long)ptr;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
return pte_page(get_fixmap_pte(vaddr));
}

View File

@ -62,8 +62,6 @@ extern void kunmap_high(struct page *page);
extern void *kmap(struct page *page); extern void *kmap(struct page *page);
extern void kunmap(struct page *page); extern void kunmap(struct page *page);
extern struct page *kmap_atomic_to_page(void *ptr);
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
/* /*

View File

@ -32,11 +32,6 @@ void kunmap(struct page *page)
EXPORT_SYMBOL(kunmap); EXPORT_SYMBOL(kunmap);
struct page *kmap_atomic_to_page(void *ptr)
{
return virt_to_page(ptr);
}
void *kmap_atomic(struct page *page) void *kmap_atomic(struct page *page)
{ {
unsigned long paddr; unsigned long paddr;

View File

@ -56,7 +56,6 @@ extern void kunmap(struct page *page);
extern void *kmap_atomic(struct page *page); extern void *kmap_atomic(struct page *page);
extern void __kunmap_atomic(void *kvaddr); extern void __kunmap_atomic(void *kvaddr);
extern void *kmap_atomic_pfn(unsigned long pfn); extern void *kmap_atomic_pfn(unsigned long pfn);
extern struct page *kmap_atomic_to_page(void *ptr);
#endif #endif
#endif #endif

View File

@ -111,20 +111,6 @@ void *kmap_atomic_pfn(unsigned long pfn)
return (void *)vaddr; return (void *)vaddr;
} }
struct page *kmap_atomic_to_page(void *ptr)
{
unsigned long vaddr = (unsigned long)ptr;
int idx;
pte_t *pte;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
idx = virt_to_fix(vaddr);
pte = kmap_pte - (idx - FIX_KMAP_BEGIN);
return pte_page(*pte);
}
void __init kmap_init(void) void __init kmap_init(void)
{ {
unsigned long kmap_vstart; unsigned long kmap_vstart;

View File

@ -76,19 +76,6 @@ static inline void *kmap_atomic(struct page *page)
return kmap_atomic_prot(page, kmap_prot); return kmap_atomic_prot(page, kmap_prot);
} }
static inline struct page *kmap_atomic_to_page(void *ptr)
{
unsigned long idx, vaddr = (unsigned long) ptr;
pte_t *pte;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
idx = virt_to_fix(vaddr);
pte = kmap_pte - (idx - FIX_KMAP_BEGIN);
return pte_page(*pte);
}
#define flush_cache_kmaps() { flush_icache(); flush_dcache(); } #define flush_cache_kmaps() { flush_icache(); flush_dcache(); }
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */

View File

@ -49,7 +49,6 @@ extern void kunmap(struct page *page);
extern void *kmap_atomic(struct page *page); extern void *kmap_atomic(struct page *page);
extern void __kunmap_atomic(void *kvaddr); extern void __kunmap_atomic(void *kvaddr);
extern void *kmap_atomic_pfn(unsigned long pfn); extern void *kmap_atomic_pfn(unsigned long pfn);
extern struct page *kmap_atomic_to_page(void *ptr);
#define flush_cache_kmaps() flush_cache_all() #define flush_cache_kmaps() flush_cache_all()

View File

@ -379,16 +379,17 @@
#define __NR_execveat (__NR_Linux + 356) #define __NR_execveat (__NR_Linux + 356)
#define __NR_userfaultfd (__NR_Linux + 357) #define __NR_userfaultfd (__NR_Linux + 357)
#define __NR_membarrier (__NR_Linux + 358) #define __NR_membarrier (__NR_Linux + 358)
#define __NR_mlock2 (__NR_Linux + 359)
/* /*
* Offset of the last Linux o32 flavoured syscall * Offset of the last Linux o32 flavoured syscall
*/ */
#define __NR_Linux_syscalls 358 #define __NR_Linux_syscalls 359
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#define __NR_O32_Linux 4000 #define __NR_O32_Linux 4000
#define __NR_O32_Linux_syscalls 358 #define __NR_O32_Linux_syscalls 359
#if _MIPS_SIM == _MIPS_SIM_ABI64 #if _MIPS_SIM == _MIPS_SIM_ABI64
@ -715,16 +716,17 @@
#define __NR_execveat (__NR_Linux + 316) #define __NR_execveat (__NR_Linux + 316)
#define __NR_userfaultfd (__NR_Linux + 317) #define __NR_userfaultfd (__NR_Linux + 317)
#define __NR_membarrier (__NR_Linux + 318) #define __NR_membarrier (__NR_Linux + 318)
#define __NR_mlock2 (__NR_Linux + 319)
/* /*
* Offset of the last Linux 64-bit flavoured syscall * Offset of the last Linux 64-bit flavoured syscall
*/ */
#define __NR_Linux_syscalls 318 #define __NR_Linux_syscalls 319
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
#define __NR_64_Linux 5000 #define __NR_64_Linux 5000
#define __NR_64_Linux_syscalls 318 #define __NR_64_Linux_syscalls 319
#if _MIPS_SIM == _MIPS_SIM_NABI32 #if _MIPS_SIM == _MIPS_SIM_NABI32
@ -1055,15 +1057,16 @@
#define __NR_execveat (__NR_Linux + 320) #define __NR_execveat (__NR_Linux + 320)
#define __NR_userfaultfd (__NR_Linux + 321) #define __NR_userfaultfd (__NR_Linux + 321)
#define __NR_membarrier (__NR_Linux + 322) #define __NR_membarrier (__NR_Linux + 322)
#define __NR_mlock2 (__NR_Linux + 323)
/* /*
* Offset of the last N32 flavoured syscall * Offset of the last N32 flavoured syscall
*/ */
#define __NR_Linux_syscalls 322 #define __NR_Linux_syscalls 323
#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
#define __NR_N32_Linux 6000 #define __NR_N32_Linux 6000
#define __NR_N32_Linux_syscalls 322 #define __NR_N32_Linux_syscalls 323
#endif /* _UAPI_ASM_UNISTD_H */ #endif /* _UAPI_ASM_UNISTD_H */

View File

@ -594,3 +594,4 @@ EXPORT(sys_call_table)
PTR sys_execveat PTR sys_execveat
PTR sys_userfaultfd PTR sys_userfaultfd
PTR sys_membarrier PTR sys_membarrier
PTR sys_mlock2

View File

@ -432,4 +432,5 @@ EXPORT(sys_call_table)
PTR sys_execveat PTR sys_execveat
PTR sys_userfaultfd PTR sys_userfaultfd
PTR sys_membarrier PTR sys_membarrier
PTR sys_mlock2
.size sys_call_table,.-sys_call_table .size sys_call_table,.-sys_call_table

View File

@ -422,4 +422,5 @@ EXPORT(sysn32_call_table)
PTR compat_sys_execveat /* 6320 */ PTR compat_sys_execveat /* 6320 */
PTR sys_userfaultfd PTR sys_userfaultfd
PTR sys_membarrier PTR sys_membarrier
PTR sys_mlock2
.size sysn32_call_table,.-sysn32_call_table .size sysn32_call_table,.-sysn32_call_table

View File

@ -577,4 +577,5 @@ EXPORT(sys32_call_table)
PTR compat_sys_execveat PTR compat_sys_execveat
PTR sys_userfaultfd PTR sys_userfaultfd
PTR sys_membarrier PTR sys_membarrier
PTR sys_mlock2
.size sys32_call_table,.-sys32_call_table .size sys32_call_table,.-sys32_call_table

View File

@ -118,19 +118,6 @@ void *kmap_atomic_pfn(unsigned long pfn)
return (void*) vaddr; return (void*) vaddr;
} }
struct page *kmap_atomic_to_page(void *ptr)
{
unsigned long idx, vaddr = (unsigned long)ptr;
pte_t *pte;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
idx = virt_to_fix(vaddr);
pte = kmap_pte - (idx - FIX_KMAP_BEGIN);
return pte_page(*pte);
}
void __init kmap_init(void) void __init kmap_init(void)
{ {
unsigned long kmap_vstart; unsigned long kmap_vstart;

View File

@ -156,7 +156,6 @@ static inline void __kunmap_atomic(void *addr)
#define kmap_atomic_prot(page, prot) kmap_atomic(page) #define kmap_atomic_prot(page, prot) kmap_atomic(page)
#define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn)) #define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn))
#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
#endif /* _PARISC_CACHEFLUSH_H */ #endif /* _PARISC_CACHEFLUSH_H */

View File

@ -84,19 +84,6 @@ static inline void *kmap_atomic(struct page *page)
return kmap_atomic_prot(page, kmap_prot); return kmap_atomic_prot(page, kmap_prot);
} }
static inline struct page *kmap_atomic_to_page(void *ptr)
{
unsigned long idx, vaddr = (unsigned long) ptr;
pte_t *pte;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
idx = virt_to_fix(vaddr);
pte = kmap_pte - (idx - FIX_KMAP_BEGIN);
return pte_page(*pte);
}
#define flush_cache_kmaps() flush_cache_all() #define flush_cache_kmaps() flush_cache_all()

View File

@ -416,8 +416,9 @@
#define __NR_memfd_create 348 #define __NR_memfd_create 348
#define __NR_bpf 349 #define __NR_bpf 349
#define __NR_execveat 350 #define __NR_execveat 350
#define __NR_membarrier 351
#define NR_syscalls 351 #define NR_syscalls 352
/* Bitmask values returned from kern_features system call. */ /* Bitmask values returned from kern_features system call. */
#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001

View File

@ -87,4 +87,4 @@ sys_call_table:
/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
/*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf /*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
/*350*/ .long sys_execveat /*350*/ .long sys_execveat, sys_membarrier

View File

@ -88,7 +88,7 @@ sys_call_table32:
.word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
.word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
/*350*/ .word sys32_execveat /*350*/ .word sys32_execveat, sys_membarrier
#endif /* CONFIG_COMPAT */ #endif /* CONFIG_COMPAT */
@ -168,4 +168,4 @@ sys_call_table:
.word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
.word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf .word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
/*350*/ .word sys64_execveat /*350*/ .word sys64_execveat, sys_membarrier

View File

@ -63,7 +63,6 @@ void *kmap_atomic(struct page *page);
void __kunmap_atomic(void *kvaddr); void __kunmap_atomic(void *kvaddr);
void *kmap_atomic_pfn(unsigned long pfn); void *kmap_atomic_pfn(unsigned long pfn);
void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot); void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
struct page *kmap_atomic_to_page(void *ptr);
void *kmap_atomic_prot(struct page *page, pgprot_t prot); void *kmap_atomic_prot(struct page *page, pgprot_t prot);
void kmap_atomic_fix_kpte(struct page *page, int finished); void kmap_atomic_fix_kpte(struct page *page, int finished);

View File

@ -275,15 +275,3 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
{ {
return kmap_atomic_prot(pfn_to_page(pfn), prot); return kmap_atomic_prot(pfn_to_page(pfn), prot);
} }
struct page *kmap_atomic_to_page(void *ptr)
{
pte_t *pte;
unsigned long vaddr = (unsigned long)ptr;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
pte = kmap_get_pte(vaddr);
return pte_page(*pte);
}

View File

@ -68,7 +68,6 @@ void *kmap_atomic(struct page *page);
void __kunmap_atomic(void *kvaddr); void __kunmap_atomic(void *kvaddr);
void *kmap_atomic_pfn(unsigned long pfn); void *kmap_atomic_pfn(unsigned long pfn);
void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot); void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
struct page *kmap_atomic_to_page(void *ptr);
#define flush_cache_kmaps() do { } while (0) #define flush_cache_kmaps() do { } while (0)

View File

@ -104,20 +104,6 @@ void __kunmap_atomic(void *kvaddr)
} }
EXPORT_SYMBOL(__kunmap_atomic); EXPORT_SYMBOL(__kunmap_atomic);
struct page *kmap_atomic_to_page(void *ptr)
{
unsigned long idx, vaddr = (unsigned long)ptr;
pte_t *pte;
if (vaddr < FIXADDR_START)
return virt_to_page(ptr);
idx = virt_to_fix(vaddr);
pte = kmap_pte - (idx - FIX_KMAP_BEGIN);
return pte_page(*pte);
}
EXPORT_SYMBOL(kmap_atomic_to_page);
void __init set_highmem_pages_init(void) void __init set_highmem_pages_init(void)
{ {
struct zone *zone; struct zone *zone;

View File

@ -261,7 +261,7 @@ static void vblank_disable_and_save(struct drm_device *dev, unsigned int pipe)
* available. In that case we can't account for this and just * available. In that case we can't account for this and just
* hope for the best. * hope for the best.
*/ */
if (vblrc && (abs64(diff_ns) > 1000000)) if (vblrc && (abs(diff_ns) > 1000000))
store_vblank(dev, pipe, 1, &tvblank); store_vblank(dev, pipe, 1, &tvblank);
spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags); spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
@ -1772,7 +1772,7 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)
* e.g., due to spurious vblank interrupts. We need to * e.g., due to spurious vblank interrupts. We need to
* ignore those for accounting. * ignore those for accounting.
*/ */
if (abs64(diff_ns) > DRM_REDUNDANT_VBLIRQ_THRESH_NS) if (abs(diff_ns) > DRM_REDUNDANT_VBLIRQ_THRESH_NS)
store_vblank(dev, pipe, 1, &tvblank); store_vblank(dev, pipe, 1, &tvblank);
else else
DRM_DEBUG("crtc %u: Redundant vblirq ignored. diff_ns = %d\n", DRM_DEBUG("crtc %u: Redundant vblirq ignored. diff_ns = %d\n",

View File

@ -555,11 +555,11 @@ static int tegra_sor_compute_params(struct tegra_sor *sor,
error = div_s64(active_sym - approx, tu_size); error = div_s64(active_sym - approx, tu_size);
error *= params->num_clocks; error *= params->num_clocks;
if (error <= 0 && abs64(error) < params->error) { if (error <= 0 && abs(error) < params->error) {
params->active_count = div_u64(active_count, f); params->active_count = div_u64(active_count, f);
params->active_polarity = active_polarity; params->active_polarity = active_polarity;
params->active_frac = active_frac; params->active_frac = active_frac;
params->error = abs64(error); params->error = abs(error);
params->tu_size = tu_size; params->tu_size = tu_size;
if (error == 0) if (error == 0)

View File

@ -150,7 +150,7 @@ static void walkera0701_irq_handler(void *handler_data)
if (w->counter == 24) { /* full frame */ if (w->counter == 24) { /* full frame */
walkera0701_parse_frame(w); walkera0701_parse_frame(w);
w->counter = NO_SYNC; w->counter = NO_SYNC;
if (abs64(pulse_time - SYNC_PULSE) < RESERVE) /* new frame sync */ if (abs(pulse_time - SYNC_PULSE) < RESERVE) /* new frame sync */
w->counter = 0; w->counter = 0;
} else { } else {
if ((pulse_time > (ANALOG_MIN_PULSE - RESERVE) if ((pulse_time > (ANALOG_MIN_PULSE - RESERVE)
@ -161,7 +161,7 @@ static void walkera0701_irq_handler(void *handler_data)
} else } else
w->counter = NO_SYNC; w->counter = NO_SYNC;
} }
} else if (abs64(pulse_time - SYNC_PULSE - BIN0_PULSE) < } else if (abs(pulse_time - SYNC_PULSE - BIN0_PULSE) <
RESERVE + BIN1_PULSE - BIN0_PULSE) /* frame sync .. */ RESERVE + BIN1_PULSE - BIN0_PULSE) /* frame sync .. */
w->counter = 0; w->counter = 0;

View File

@ -1133,7 +1133,7 @@ static int __ov965x_set_frame_interval(struct ov965x *ov965x,
if (mbus_fmt->width != iv->size.width || if (mbus_fmt->width != iv->size.width ||
mbus_fmt->height != iv->size.height) mbus_fmt->height != iv->size.height)
continue; continue;
err = abs64((u64)(iv->interval.numerator * 10000) / err = abs((u64)(iv->interval.numerator * 10000) /
iv->interval.denominator - req_int); iv->interval.denominator - req_int);
if (err < min_err) { if (err < min_err) {
fiv = iv; fiv = iv;

View File

@ -787,7 +787,7 @@ static void mac80211_hwsim_set_tsf(struct ieee80211_hw *hw,
struct mac80211_hwsim_data *data = hw->priv; struct mac80211_hwsim_data *data = hw->priv;
u64 now = mac80211_hwsim_get_tsf(hw, vif); u64 now = mac80211_hwsim_get_tsf(hw, vif);
u32 bcn_int = data->beacon_int; u32 bcn_int = data->beacon_int;
u64 delta = abs64(tsf - now); u64 delta = abs(tsf - now);
/* adjust after beaconing with new timestamp at old TBTT */ /* adjust after beaconing with new timestamp at old TBTT */
if (tsf > now) { if (tsf > now) {

View File

@ -1,3 +1,3 @@
EXTRA_CFLAGS += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb3 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb3
obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o

View File

@ -1,3 +1,3 @@
EXTRA_CFLAGS += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb4 ccflags-y += -I$(srctree)/drivers/net/ethernet/chelsio/cxgb4
obj-$(CONFIG_SCSI_CXGB4_ISCSI) += cxgb4i.o obj-$(CONFIG_SCSI_CXGB4_ISCSI) += cxgb4i.o

View File

@ -228,7 +228,7 @@ static u32 pid_controller(struct thermal_zone_device *tz,
if (err < int_to_frac(tz->tzp->integral_cutoff)) { if (err < int_to_frac(tz->tzp->integral_cutoff)) {
s64 i_next = i + mul_frac(tz->tzp->k_i, err); s64 i_next = i + mul_frac(tz->tzp->k_i, err);
if (abs64(i_next) < max_power_frac) { if (abs(i_next) < max_power_frac) {
i = i_next; i = i_next;
params->err_integral += err; params->err_integral += err;
} }

View File

@ -589,7 +589,7 @@ static int ehci_run (struct usb_hcd *hcd)
* streaming mappings for I/O buffers, like pci_map_single(), * streaming mappings for I/O buffers, like pci_map_single(),
* can return segments above 4GB, if the device allows. * can return segments above 4GB, if the device allows.
* *
* NOTE: the dma mask is visible through dma_supported(), so * NOTE: the dma mask is visible through dev->dma_mask, so
* drivers can pass this info along ... like NETIF_F_HIGHDMA, * drivers can pass this info along ... like NETIF_F_HIGHDMA,
* Scsi_Host.highmem_io, and so forth. It's readonly to all * Scsi_Host.highmem_io, and so forth. It's readonly to all
* host side drivers though. * host side drivers though.

View File

@ -5063,7 +5063,7 @@ static int fotg210_run(struct usb_hcd *hcd)
* streaming mappings for I/O buffers, like pci_map_single(), * streaming mappings for I/O buffers, like pci_map_single(),
* can return segments above 4GB, if the device allows. * can return segments above 4GB, if the device allows.
* *
* NOTE: the dma mask is visible through dma_supported(), so * NOTE: the dma mask is visible through dev->dma_mask, so
* drivers can pass this info along ... like NETIF_F_HIGHDMA, * drivers can pass this info along ... like NETIF_F_HIGHDMA,
* Scsi_Host.highmem_io, and so forth. It's readonly to all * Scsi_Host.highmem_io, and so forth. It's readonly to all
* host side drivers though. * host side drivers though.

View File

@ -2721,7 +2721,7 @@ static int oxu_run(struct usb_hcd *hcd)
* streaming mappings for I/O buffers, like pci_map_single(), * streaming mappings for I/O buffers, like pci_map_single(),
* can return segments above 4GB, if the device allows. * can return segments above 4GB, if the device allows.
* *
* NOTE: the dma mask is visible through dma_supported(), so * NOTE: the dma mask is visible through dev->dma_mask, so
* drivers can pass this info along ... like NETIF_F_HIGHDMA, * drivers can pass this info along ... like NETIF_F_HIGHDMA,
* Scsi_Host.highmem_io, and so forth. It's readonly to all * Scsi_Host.highmem_io, and so forth. It's readonly to all
* host side drivers though. * host side drivers though.

View File

@ -1368,9 +1368,6 @@ v9fs_vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rde
dir->i_ino, dentry, mode, dir->i_ino, dentry, mode,
MAJOR(rdev), MINOR(rdev)); MAJOR(rdev), MINOR(rdev));
if (!new_valid_dev(rdev))
return -EINVAL;
/* build extension */ /* build extension */
if (S_ISBLK(mode)) if (S_ISBLK(mode))
sprintf(name, "b %u %u", MAJOR(rdev), MINOR(rdev)); sprintf(name, "b %u %u", MAJOR(rdev), MINOR(rdev));

View File

@ -829,9 +829,6 @@ v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode,
dir->i_ino, dentry, omode, dir->i_ino, dentry, omode,
MAJOR(rdev), MINOR(rdev)); MAJOR(rdev), MINOR(rdev));
if (!new_valid_dev(rdev))
return -EINVAL;
v9ses = v9fs_inode2v9ses(dir); v9ses = v9fs_inode2v9ses(dir);
dir_dentry = dentry->d_parent; dir_dentry = dentry->d_parent;
dfid = v9fs_fid_lookup(dir_dentry); dfid = v9fs_fid_lookup(dir_dentry);

View File

@ -103,19 +103,36 @@ static void __exit exit_elf_fdpic_binfmt(void)
core_initcall(init_elf_fdpic_binfmt); core_initcall(init_elf_fdpic_binfmt);
module_exit(exit_elf_fdpic_binfmt); module_exit(exit_elf_fdpic_binfmt);
static int is_elf_fdpic(struct elfhdr *hdr, struct file *file) static int is_elf(struct elfhdr *hdr, struct file *file)
{ {
if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) != 0) if (memcmp(hdr->e_ident, ELFMAG, SELFMAG) != 0)
return 0; return 0;
if (hdr->e_type != ET_EXEC && hdr->e_type != ET_DYN) if (hdr->e_type != ET_EXEC && hdr->e_type != ET_DYN)
return 0; return 0;
if (!elf_check_arch(hdr) || !elf_check_fdpic(hdr)) if (!elf_check_arch(hdr))
return 0; return 0;
if (!file->f_op->mmap) if (!file->f_op->mmap)
return 0; return 0;
return 1; return 1;
} }
#ifndef elf_check_fdpic
#define elf_check_fdpic(x) 0
#endif
#ifndef elf_check_const_displacement
#define elf_check_const_displacement(x) 0
#endif
static int is_constdisp(struct elfhdr *hdr)
{
if (!elf_check_fdpic(hdr))
return 1;
if (elf_check_const_displacement(hdr))
return 1;
return 0;
}
/*****************************************************************************/ /*****************************************************************************/
/* /*
* read the program headers table into memory * read the program headers table into memory
@ -191,8 +208,18 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
/* check that this is a binary we know how to deal with */ /* check that this is a binary we know how to deal with */
retval = -ENOEXEC; retval = -ENOEXEC;
if (!is_elf_fdpic(&exec_params.hdr, bprm->file)) if (!is_elf(&exec_params.hdr, bprm->file))
goto error; goto error;
if (!elf_check_fdpic(&exec_params.hdr)) {
#ifdef CONFIG_MMU
/* binfmt_elf handles non-fdpic elf except on nommu */
goto error;
#else
/* nommu can only load ET_DYN (PIE) ELF */
if (exec_params.hdr.e_type != ET_DYN)
goto error;
#endif
}
/* read the program header table */ /* read the program header table */
retval = elf_fdpic_fetch_phdrs(&exec_params, bprm->file); retval = elf_fdpic_fetch_phdrs(&exec_params, bprm->file);
@ -269,13 +296,13 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
} }
if (elf_check_const_displacement(&exec_params.hdr)) if (is_constdisp(&exec_params.hdr))
exec_params.flags |= ELF_FDPIC_FLAG_CONSTDISP; exec_params.flags |= ELF_FDPIC_FLAG_CONSTDISP;
/* perform insanity checks on the interpreter */ /* perform insanity checks on the interpreter */
if (interpreter_name) { if (interpreter_name) {
retval = -ELIBBAD; retval = -ELIBBAD;
if (!is_elf_fdpic(&interp_params.hdr, interpreter)) if (!is_elf(&interp_params.hdr, interpreter))
goto error; goto error;
interp_params.flags = ELF_FDPIC_FLAG_PRESENT; interp_params.flags = ELF_FDPIC_FLAG_PRESENT;
@ -306,9 +333,9 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
retval = -ENOEXEC; retval = -ENOEXEC;
if (stack_size == 0) if (stack_size == 0)
goto error; stack_size = 131072UL; /* same as exec.c's default commit */
if (elf_check_const_displacement(&interp_params.hdr)) if (is_constdisp(&interp_params.hdr))
interp_params.flags |= ELF_FDPIC_FLAG_CONSTDISP; interp_params.flags |= ELF_FDPIC_FLAG_CONSTDISP;
/* flush all traces of the currently running executable */ /* flush all traces of the currently running executable */
@ -319,7 +346,10 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
/* there's now no turning back... the old userspace image is dead, /* there's now no turning back... the old userspace image is dead,
* defunct, deceased, etc. * defunct, deceased, etc.
*/ */
set_personality(PER_LINUX_FDPIC); if (elf_check_fdpic(&exec_params.hdr))
set_personality(PER_LINUX_FDPIC);
else
set_personality(PER_LINUX);
if (elf_read_implies_exec(&exec_params.hdr, executable_stack)) if (elf_read_implies_exec(&exec_params.hdr, executable_stack))
current->personality |= READ_IMPLIES_EXEC; current->personality |= READ_IMPLIES_EXEC;

View File

@ -6360,9 +6360,6 @@ static int btrfs_mknod(struct inode *dir, struct dentry *dentry,
u64 objectid; u64 objectid;
u64 index = 0; u64 index = 0;
if (!new_valid_dev(rdev))
return -EINVAL;
/* /*
* 2 for inode item and ref * 2 for inode item and ref
* 2 for dir items * 2 for dir items

View File

@ -80,9 +80,6 @@ static int exofs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
struct inode *inode; struct inode *inode;
int err; int err;
if (!new_valid_dev(rdev))
return -EINVAL;
inode = exofs_new_inode(dir, mode); inode = exofs_new_inode(dir, mode);
err = PTR_ERR(inode); err = PTR_ERR(inode);
if (!IS_ERR(inode)) { if (!IS_ERR(inode)) {

View File

@ -143,9 +143,6 @@ static int ext2_mknod (struct inode * dir, struct dentry *dentry, umode_t mode,
struct inode * inode; struct inode * inode;
int err; int err;
if (!new_valid_dev(rdev))
return -EINVAL;
err = dquot_initialize(dir); err = dquot_initialize(dir);
if (err) if (err)
return err; return err;

View File

@ -3333,8 +3333,8 @@ ext4_mb_check_group_pa(ext4_fsblk_t goal_block,
atomic_inc(&pa->pa_count); atomic_inc(&pa->pa_count);
return pa; return pa;
} }
cur_distance = abs64(goal_block - cpa->pa_pstart); cur_distance = abs(goal_block - cpa->pa_pstart);
new_distance = abs64(goal_block - pa->pa_pstart); new_distance = abs(goal_block - pa->pa_pstart);
if (cur_distance <= new_distance) if (cur_distance <= new_distance)
return cpa; return cpa;

View File

@ -481,9 +481,6 @@ static int f2fs_mknod(struct inode *dir, struct dentry *dentry,
struct inode *inode; struct inode *inode;
int err = 0; int err = 0;
if (!new_valid_dev(rdev))
return -EINVAL;
f2fs_balance_fs(sbi); f2fs_balance_fs(sbi);
inode = f2fs_new_inode(dir, mode); inode = f2fs_new_inode(dir, mode);

View File

@ -1981,9 +1981,9 @@ static noinline void block_dump___mark_inode_dirty(struct inode *inode)
* page->mapping->host, so the page-dirtying time is recorded in the internal * page->mapping->host, so the page-dirtying time is recorded in the internal
* blockdev inode. * blockdev inode.
*/ */
#define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)
void __mark_inode_dirty(struct inode *inode, int flags) void __mark_inode_dirty(struct inode *inode, int flags)
{ {
#define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)
struct super_block *sb = inode->i_sb; struct super_block *sb = inode->i_sb;
int dirtytime; int dirtytime;
@ -2093,6 +2093,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
out_unlock_inode: out_unlock_inode:
spin_unlock(&inode->i_lock); spin_unlock(&inode->i_lock);
#undef I_DIRTY_INODE
} }
EXPORT_SYMBOL(__mark_inode_dirty); EXPORT_SYMBOL(__mark_inode_dirty);

View File

@ -50,7 +50,7 @@ static inline void gfs2_update_stats(struct gfs2_lkstats *s, unsigned index,
s64 delta = sample - s->stats[index]; s64 delta = sample - s->stats[index];
s->stats[index] += (delta >> 3); s->stats[index] += (delta >> 3);
index++; index++;
s->stats[index] += ((abs64(delta) - s->stats[index]) >> 2); s->stats[index] += ((abs(delta) - s->stats[index]) >> 2);
} }
/** /**

View File

@ -227,8 +227,6 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, de
int err; int err;
if ((err = hpfs_chk_name(name, &len))) return err==-ENOENT ? -EINVAL : err; if ((err = hpfs_chk_name(name, &len))) return err==-ENOENT ? -EINVAL : err;
if (hpfs_sb(dir->i_sb)->sb_eas < 2) return -EPERM; if (hpfs_sb(dir->i_sb)->sb_eas < 2) return -EPERM;
if (!new_valid_dev(rdev))
return -EINVAL;
hpfs_lock(dir->i_sb); hpfs_lock(dir->i_sb);
err = -ENOSPC; err = -ENOSPC;
fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh); fnode = hpfs_alloc_fnode(dir->i_sb, hpfs_i(dir)->i_dno, &fno, &bh);

View File

@ -1597,6 +1597,7 @@ static int update_time(struct inode *inode, struct timespec *time, int flags)
/** /**
* touch_atime - update the access time * touch_atime - update the access time
* @path: the &struct path to update * @path: the &struct path to update
* @inode: inode to update
* *
* Update the accessed time on an inode and mark it for writeback. * Update the accessed time on an inode and mark it for writeback.
* This function automatically handles read only file systems and media, * This function automatically handles read only file systems and media,

View File

@ -1372,9 +1372,6 @@ static int jfs_mknod(struct inode *dir, struct dentry *dentry,
tid_t tid; tid_t tid;
struct tblock *tblk; struct tblock *tblk;
if (!new_valid_dev(rdev))
return -EINVAL;
jfs_info("jfs_mknod: %pd", dentry); jfs_info("jfs_mknod: %pd", dentry);
rc = dquot_initialize(dir); rc = dquot_initialize(dir);

View File

@ -496,9 +496,6 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
jfs_info("In jfs_read_super: s_flags=0x%lx", sb->s_flags); jfs_info("In jfs_read_super: s_flags=0x%lx", sb->s_flags);
if (!new_valid_dev(sb->s_bdev->bd_dev))
return -EOVERFLOW;
sbi = kzalloc(sizeof(struct jfs_sb_info), GFP_KERNEL); sbi = kzalloc(sizeof(struct jfs_sb_info), GFP_KERNEL);
if (!sbi) if (!sbi)
return -ENOMEM; return -ENOMEM;

View File

@ -1165,8 +1165,6 @@ out:
static int ncp_mknod(struct inode * dir, struct dentry *dentry, static int ncp_mknod(struct inode * dir, struct dentry *dentry,
umode_t mode, dev_t rdev) umode_t mode, dev_t rdev)
{ {
if (!new_valid_dev(rdev))
return -EINVAL;
if (ncp_is_nfs_extras(NCP_SERVER(dir), NCP_FINFO(dir)->volNumber)) { if (ncp_is_nfs_extras(NCP_SERVER(dir), NCP_FINFO(dir)->volNumber)) {
ncp_dbg(1, "mode = 0%ho\n", mode); ncp_dbg(1, "mode = 0%ho\n", mode);
return ncp_create_new(dir, dentry, mode, rdev, 0); return ncp_create_new(dir, dentry, mode, rdev, 0);

View File

@ -120,9 +120,6 @@ nilfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev)
struct nilfs_transaction_info ti; struct nilfs_transaction_info ti;
int err; int err;
if (!new_valid_dev(rdev))
return -EINVAL;
err = nilfs_transaction_begin(dir->i_sb, &ti, 1); err = nilfs_transaction_begin(dir->i_sb, &ti, 1);
if (err) if (err)
return err; return err;

View File

@ -712,9 +712,6 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode
2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) + 2 * (REISERFS_QUOTA_INIT_BLOCKS(dir->i_sb) +
REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb)); REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb));
if (!new_valid_dev(rdev))
return -EINVAL;
retval = dquot_initialize(dir); retval = dquot_initialize(dir);
if (retval) if (retval)
return retval; return retval;

View File

@ -367,8 +367,6 @@ static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf)
INIT_STRUCT_STAT64_PADDING(tmp); INIT_STRUCT_STAT64_PADDING(tmp);
#ifdef CONFIG_MIPS #ifdef CONFIG_MIPS
/* mips has weird padding, so we don't get 64 bits there */ /* mips has weird padding, so we don't get 64 bits there */
if (!new_valid_dev(stat->dev) || !new_valid_dev(stat->rdev))
return -EOVERFLOW;
tmp.st_dev = new_encode_dev(stat->dev); tmp.st_dev = new_encode_dev(stat->dev);
tmp.st_rdev = new_encode_dev(stat->rdev); tmp.st_rdev = new_encode_dev(stat->rdev);
#else #else

View File

@ -78,7 +78,6 @@ static inline void __kunmap_atomic(void *addr)
} }
#define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn)) #define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn))
#define kmap_atomic_to_page(ptr) virt_to_page(ptr)
#define kmap_flush_unused() do {} while(0) #define kmap_flush_unused() do {} while(0)
#endif #endif

View File

@ -20,7 +20,7 @@
}) })
/* acceptable for old filesystems */ /* acceptable for old filesystems */
static inline int old_valid_dev(dev_t dev) static inline bool old_valid_dev(dev_t dev)
{ {
return MAJOR(dev) < 256 && MINOR(dev) < 256; return MAJOR(dev) < 256 && MINOR(dev) < 256;
} }
@ -35,7 +35,7 @@ static inline dev_t old_decode_dev(u16 val)
return MKDEV((val >> 8) & 255, val & 255); return MKDEV((val >> 8) & 255, val & 255);
} }
static inline int new_valid_dev(dev_t dev) static inline bool new_valid_dev(dev_t dev)
{ {
return 1; return 1;
} }
@ -54,11 +54,6 @@ static inline dev_t new_decode_dev(u32 dev)
return MKDEV(major, minor); return MKDEV(major, minor);
} }
static inline int huge_valid_dev(dev_t dev)
{
return 1;
}
static inline u64 huge_encode_dev(dev_t dev) static inline u64 huge_encode_dev(dev_t dev)
{ {
return new_encode_dev(dev); return new_encode_dev(dev);

View File

@ -200,28 +200,28 @@ extern int _cond_resched(void);
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0) #define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
/* /**
* abs() handles unsigned and signed longs, ints, shorts and chars. For all * abs - return absolute value of an argument
* input types abs() returns a signed long. * @x: the value. If it is unsigned type, it is converted to signed type first
* abs() should not be used for 64-bit types (s64, u64, long long) - use abs64() * (s64, long or int depending on its size).
* for those. *
* Return: an absolute value of x. If x is 64-bit, macro's return type is s64,
* otherwise it is signed long.
*/ */
#define abs(x) ({ \ #define abs(x) __builtin_choose_expr(sizeof(x) == sizeof(s64), ({ \
long ret; \ s64 __x = (x); \
if (sizeof(x) == sizeof(long)) { \ (__x < 0) ? -__x : __x; \
long __x = (x); \ }), ({ \
ret = (__x < 0) ? -__x : __x; \ long ret; \
} else { \ if (sizeof(x) == sizeof(long)) { \
int __x = (x); \ long __x = (x); \
ret = (__x < 0) ? -__x : __x; \ ret = (__x < 0) ? -__x : __x; \
} \ } else { \
ret; \ int __x = (x); \
}) ret = (__x < 0) ? -__x : __x; \
} \
#define abs64(x) ({ \ ret; \
s64 __x = (x); \ }))
(__x < 0) ? -__x : __x; \
})
/** /**
* reciprocal_scale - "scale" a value into range [0, ep_ro) * reciprocal_scale - "scale" a value into range [0, ep_ro)

View File

@ -217,7 +217,7 @@ static void clocksource_watchdog(unsigned long data)
continue; continue;
/* Check the deviation from the watchdog clocksource. */ /* Check the deviation from the watchdog clocksource. */
if (abs64(cs_nsec - wd_nsec) > WATCHDOG_THRESHOLD) { if (abs(cs_nsec - wd_nsec) > WATCHDOG_THRESHOLD) {
pr_warn("timekeeping watchdog: Marking clocksource '%s' as unstable because the skew is too large:\n", pr_warn("timekeeping watchdog: Marking clocksource '%s' as unstable because the skew is too large:\n",
cs->name); cs->name);
pr_warn(" '%s' wd_now: %llx wd_last: %llx mask: %llx\n", pr_warn(" '%s' wd_now: %llx wd_last: %llx mask: %llx\n",

View File

@ -1614,7 +1614,7 @@ static __always_inline void timekeeping_freqadjust(struct timekeeper *tk,
negative = (tick_error < 0); negative = (tick_error < 0);
/* Sort out the magnitude of the correction */ /* Sort out the magnitude of the correction */
tick_error = abs64(tick_error); tick_error = abs(tick_error);
for (adj = 0; tick_error > interval; adj++) for (adj = 0; tick_error > interval; adj++)
tick_error >>= 1; tick_error >>= 1;

View File

@ -162,7 +162,7 @@ s64 div64_s64(s64 dividend, s64 divisor)
{ {
s64 quot, t; s64 quot, t;
quot = div64_u64(abs64(dividend), abs64(divisor)); quot = div64_u64(abs(dividend), abs(divisor));
t = (dividend ^ divisor) >> 63; t = (dividend ^ divisor) >> 63;
return (quot ^ t) - t; return (quot ^ t) - t;

View File

@ -331,7 +331,7 @@ void sctp_transport_update_rto(struct sctp_transport *tp, __u32 rtt)
* 1/8, rto_alpha would be expressed as 3. * 1/8, rto_alpha would be expressed as 3.
*/ */
tp->rttvar = tp->rttvar - (tp->rttvar >> net->sctp.rto_beta) tp->rttvar = tp->rttvar - (tp->rttvar >> net->sctp.rto_beta)
+ (((__u32)abs64((__s64)tp->srtt - (__s64)rtt)) >> net->sctp.rto_beta); + (((__u32)abs((__s64)tp->srtt - (__s64)rtt)) >> net->sctp.rto_beta);
tp->srtt = tp->srtt - (tp->srtt >> net->sctp.rto_alpha) tp->srtt = tp->srtt - (tp->srtt >> net->sctp.rto_alpha)
+ (rtt >> net->sctp.rto_alpha); + (rtt >> net->sctp.rto_alpha);
} else { } else {