mirror of
https://github.com/suyu-emu/horinux.git
synced 2026-09-21 14:15:21 -07:00
Merge branch 'akpm' (second patchbomb from Andrew Morton)
Merge more incoming from Andrew Morton:
"Two new syscalls:
memfd_create in "shm: add memfd_create() syscall"
kexec_file_load in "kexec: implementation of new syscall kexec_file_load"
And:
- Most (all?) of the rest of MM
- Lots of the usual misc bits
- fs/autofs4
- drivers/rtc
- fs/nilfs
- procfs
- fork.c, exec.c
- more in lib/
- rapidio
- Janitorial work in filesystems: fs/ufs, fs/reiserfs, fs/adfs,
fs/cramfs, fs/romfs, fs/qnx6.
- initrd/initramfs work
- "file sealing" and the memfd_create() syscall, in tmpfs
- add pci_zalloc_consistent, use it in lots of places
- MAINTAINERS maintenance
- kexec feature work"
* emailed patches from Andrew Morton <akpm@linux-foundation.org: (193 commits)
MAINTAINERS: update nomadik patterns
MAINTAINERS: update usb/gadget patterns
MAINTAINERS: update DMA BUFFER SHARING patterns
kexec: verify the signature of signed PE bzImage
kexec: support kexec/kdump on EFI systems
kexec: support for kexec on panic using new system call
kexec-bzImage64: support for loading bzImage using 64bit entry
kexec: load and relocate purgatory at kernel load time
purgatory: core purgatory functionality
purgatory/sha256: provide implementation of sha256 in purgaotory context
kexec: implementation of new syscall kexec_file_load
kexec: new syscall kexec_file_load() declaration
kexec: make kexec_segment user buffer pointer a union
resource: provide new functions to walk through resources
kexec: use common function for kimage_normal_alloc() and kimage_crash_alloc()
kexec: move segment verification code in a separate function
kexec: rename unusebale_pages to unusable_pages
kernel: build bin2c based on config option CONFIG_BUILD_BIN2C
bin2c: move bin2c in scripts/basic
shm: wait for pins to be released when sealing
...
This commit is contained in:
commit
8065be8d03
348 files changed
+10235
-3582
No files matched your search
@@ -1381,6 +1381,9 @@ S: 17 rue Danton
|
||||
S: F - 94270 Le Kremlin-Bicêtre
|
||||
S: France
|
||||
|
||||
N: Jack Hammer
|
||||
D: IBM ServeRAID RAID (ips) driver maintenance
|
||||
|
||||
N: Greg Hankins
|
||||
E: gregh@cc.gatech.edu
|
||||
D: fixed keyboard driver to separate LED and locking status
|
||||
@@ -1691,6 +1694,10 @@ S: Reading
|
||||
S: RG6 2NU
|
||||
S: United Kingdom
|
||||
|
||||
N: Dave Jeffery
|
||||
E: dhjeffery@gmail.com
|
||||
D: SCSI hacks and IBM ServeRAID RAID driver maintenance
|
||||
|
||||
N: Jakub Jelinek
|
||||
E: jakub@redhat.com
|
||||
W: http://sunsite.mff.cuni.cz/~jj
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
|
||||
What: /sys/fs/nilfs2/features/revision
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show current revision of NILFS file system driver.
|
||||
This value informs about file system revision that
|
||||
driver is ready to support.
|
||||
|
||||
What: /sys/fs/nilfs2/features/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/features group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/revision
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show NILFS file system revision on volume.
|
||||
This value informs about metadata structures'
|
||||
revision on mounted volume.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/blocksize
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show volume's block size in bytes.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/device_size
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show volume size in bytes.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/free_blocks
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show count of free blocks on volume.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/uuid
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show volume's UUID (Universally Unique Identifier).
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/volume_name
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show volume's label.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device> group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/superblock/sb_write_time
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show last write time of super block in human-readable
|
||||
format.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/superblock/sb_write_time_secs
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show last write time of super block in seconds.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/superblock/sb_write_count
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show current write count of super block.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/superblock/sb_update_frequency
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show/Set interval of periodical update of superblock
|
||||
(in seconds).
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/superblock/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device>/superblock
|
||||
group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_pseg_block
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show start block number of the latest segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_seg_sequence
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show sequence value of the latest segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_seg_checkpoint
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show checkpoint number of the latest segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/current_seg_sequence
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show segment sequence counter.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/current_last_full_seg
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show index number of the latest full segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/next_full_seg
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show index number of the full segment index
|
||||
to be used next.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/next_pseg_offset
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show offset of next partial segment in the current
|
||||
full segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/next_checkpoint
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show next checkpoint number.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_seg_write_time
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show write time of the last segment in
|
||||
human-readable format.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_seg_write_time_secs
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show write time of the last segment in seconds.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_nongc_write_time
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show write time of the last segment not for cleaner
|
||||
operation in human-readable format.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/last_nongc_write_time_secs
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show write time of the last segment not for cleaner
|
||||
operation in seconds.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/dirty_data_blocks_count
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of dirty data blocks.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segctor/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device>/segctor
|
||||
group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segments/segments_number
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of segments on a volume.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segments/blocks_per_segment
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of blocks in segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segments/clean_segments
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show count of clean segments.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segments/dirty_segments
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show count of dirty segments.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/segments/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device>/segments
|
||||
group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/checkpoints/checkpoints_number
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of checkpoints on volume.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/checkpoints/snapshots_number
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of snapshots on volume.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/checkpoints/last_seg_checkpoint
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show checkpoint number of the latest segment.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/checkpoints/next_checkpoint
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show next checkpoint number.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/checkpoints/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device>/checkpoints
|
||||
group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/mounted_snapshots/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe content of /sys/fs/nilfs2/<device>/mounted_snapshots
|
||||
group.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/mounted_snapshots/<id>/inodes_count
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of inodes for snapshot.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/mounted_snapshots/<id>/blocks_count
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Show number of blocks for snapshot.
|
||||
|
||||
What: /sys/fs/nilfs2/<device>/mounted_snapshots/<id>/README
|
||||
Date: April 2014
|
||||
Contact: "Vyacheslav Dubeyko" <slava@dubeyko.com>
|
||||
Description:
|
||||
Describe attributes of /sys/fs/nilfs2/<device>/mounted_snapshots/<id>
|
||||
group.
|
||||
@@ -24,64 +24,27 @@ Please note that implementation details can be changed.
|
||||
|
||||
a page/swp_entry may be charged (usage += PAGE_SIZE) at
|
||||
|
||||
mem_cgroup_charge_anon()
|
||||
Called at new page fault and Copy-On-Write.
|
||||
|
||||
mem_cgroup_try_charge_swapin()
|
||||
Called at do_swap_page() (page fault on swap entry) and swapoff.
|
||||
Followed by charge-commit-cancel protocol. (With swap accounting)
|
||||
At commit, a charge recorded in swap_cgroup is removed.
|
||||
|
||||
mem_cgroup_charge_file()
|
||||
Called at add_to_page_cache()
|
||||
|
||||
mem_cgroup_cache_charge_swapin()
|
||||
Called at shmem's swapin.
|
||||
|
||||
mem_cgroup_prepare_migration()
|
||||
Called before migration. "extra" charge is done and followed by
|
||||
charge-commit-cancel protocol.
|
||||
At commit, charge against oldpage or newpage will be committed.
|
||||
mem_cgroup_try_charge()
|
||||
|
||||
2. Uncharge
|
||||
a page/swp_entry may be uncharged (usage -= PAGE_SIZE) by
|
||||
|
||||
mem_cgroup_uncharge_page()
|
||||
Called when an anonymous page is fully unmapped. I.e., mapcount goes
|
||||
to 0. If the page is SwapCache, uncharge is delayed until
|
||||
mem_cgroup_uncharge_swapcache().
|
||||
|
||||
mem_cgroup_uncharge_cache_page()
|
||||
Called when a page-cache is deleted from radix-tree. If the page is
|
||||
SwapCache, uncharge is delayed until mem_cgroup_uncharge_swapcache().
|
||||
|
||||
mem_cgroup_uncharge_swapcache()
|
||||
Called when SwapCache is removed from radix-tree. The charge itself
|
||||
is moved to swap_cgroup. (If mem+swap controller is disabled, no
|
||||
charge to swap occurs.)
|
||||
mem_cgroup_uncharge()
|
||||
Called when a page's refcount goes down to 0.
|
||||
|
||||
mem_cgroup_uncharge_swap()
|
||||
Called when swp_entry's refcnt goes down to 0. A charge against swap
|
||||
disappears.
|
||||
|
||||
mem_cgroup_end_migration(old, new)
|
||||
At success of migration old is uncharged (if necessary), a charge
|
||||
to new page is committed. At failure, charge to old page is committed.
|
||||
|
||||
3. charge-commit-cancel
|
||||
In some case, we can't know this "charge" is valid or not at charging
|
||||
(because of races).
|
||||
To handle such case, there are charge-commit-cancel functions.
|
||||
mem_cgroup_try_charge_XXX
|
||||
mem_cgroup_commit_charge_XXX
|
||||
mem_cgroup_cancel_charge_XXX
|
||||
these are used in swap-in and migration.
|
||||
Memcg pages are charged in two steps:
|
||||
mem_cgroup_try_charge()
|
||||
mem_cgroup_commit_charge() or mem_cgroup_cancel_charge()
|
||||
|
||||
At try_charge(), there are no flags to say "this page is charged".
|
||||
at this point, usage += PAGE_SIZE.
|
||||
|
||||
At commit(), the function checks the page should be charged or not
|
||||
and set flags or avoid charging.(usage -= PAGE_SIZE)
|
||||
At commit(), the page is associated with the memcg.
|
||||
|
||||
At cancel(), simply usage -= PAGE_SIZE.
|
||||
|
||||
@@ -91,18 +54,6 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
|
||||
Anonymous page is newly allocated at
|
||||
- page fault into MAP_ANONYMOUS mapping.
|
||||
- Copy-On-Write.
|
||||
It is charged right after it's allocated before doing any page table
|
||||
related operations. Of course, it's uncharged when another page is used
|
||||
for the fault address.
|
||||
|
||||
At freeing anonymous page (by exit() or munmap()), zap_pte() is called
|
||||
and pages for ptes are freed one by one.(see mm/memory.c). Uncharges
|
||||
are done at page_remove_rmap() when page_mapcount() goes down to 0.
|
||||
|
||||
Another page freeing is by page-reclaim (vmscan.c) and anonymous
|
||||
pages are swapped out. In this case, the page is marked as
|
||||
PageSwapCache(). uncharge() routine doesn't uncharge the page marked
|
||||
as SwapCache(). It's delayed until __delete_from_swap_cache().
|
||||
|
||||
4.1 Swap-in.
|
||||
At swap-in, the page is taken from swap-cache. There are 2 cases.
|
||||
@@ -111,41 +62,6 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
|
||||
(b) If the SwapCache has been mapped by processes, it has been
|
||||
charged already.
|
||||
|
||||
This swap-in is one of the most complicated work. In do_swap_page(),
|
||||
following events occur when pte is unchanged.
|
||||
|
||||
(1) the page (SwapCache) is looked up.
|
||||
(2) lock_page()
|
||||
(3) try_charge_swapin()
|
||||
(4) reuse_swap_page() (may call delete_swap_cache())
|
||||
(5) commit_charge_swapin()
|
||||
(6) swap_free().
|
||||
|
||||
Considering following situation for example.
|
||||
|
||||
(A) The page has not been charged before (2) and reuse_swap_page()
|
||||
doesn't call delete_from_swap_cache().
|
||||
(B) The page has not been charged before (2) and reuse_swap_page()
|
||||
calls delete_from_swap_cache().
|
||||
(C) The page has been charged before (2) and reuse_swap_page() doesn't
|
||||
call delete_from_swap_cache().
|
||||
(D) The page has been charged before (2) and reuse_swap_page() calls
|
||||
delete_from_swap_cache().
|
||||
|
||||
memory.usage/memsw.usage changes to this page/swp_entry will be
|
||||
Case (A) (B) (C) (D)
|
||||
Event
|
||||
Before (2) 0/ 1 0/ 1 1/ 1 1/ 1
|
||||
===========================================
|
||||
(3) +1/+1 +1/+1 +1/+1 +1/+1
|
||||
(4) - 0/ 0 - -1/ 0
|
||||
(5) 0/-1 0/ 0 -1/-1 0/ 0
|
||||
(6) - 0/-1 - 0/-1
|
||||
===========================================
|
||||
Result 1/ 1 1/ 1 1/ 1 1/ 1
|
||||
|
||||
In any cases, charges to this page should be 1/ 1.
|
||||
|
||||
4.2 Swap-out.
|
||||
At swap-out, typical state transition is below.
|
||||
|
||||
@@ -158,28 +74,20 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
|
||||
swp_entry's refcnt -= 1.
|
||||
|
||||
|
||||
At (b), the page is marked as SwapCache and not uncharged.
|
||||
At (d), the page is removed from SwapCache and a charge in page_cgroup
|
||||
is moved to swap_cgroup.
|
||||
|
||||
Finally, at task exit,
|
||||
(e) zap_pte() is called and swp_entry's refcnt -=1 -> 0.
|
||||
Here, a charge in swap_cgroup disappears.
|
||||
|
||||
5. Page Cache
|
||||
Page Cache is charged at
|
||||
- add_to_page_cache_locked().
|
||||
|
||||
uncharged at
|
||||
- __remove_from_page_cache().
|
||||
|
||||
The logic is very clear. (About migration, see below)
|
||||
Note: __remove_from_page_cache() is called by remove_from_page_cache()
|
||||
and __remove_mapping().
|
||||
|
||||
6. Shmem(tmpfs) Page Cache
|
||||
Memcg's charge/uncharge have special handlers of shmem. The best way
|
||||
to understand shmem's page state transition is to read mm/shmem.c.
|
||||
The best way to understand shmem's page state transition is to read
|
||||
mm/shmem.c.
|
||||
But brief explanation of the behavior of memcg around shmem will be
|
||||
helpful to understand the logic.
|
||||
|
||||
@@ -192,56 +100,10 @@ Under below explanation, we assume CONFIG_MEM_RES_CTRL_SWAP=y.
|
||||
It's charged when...
|
||||
- A new page is added to shmem's radix-tree.
|
||||
- A swp page is read. (move a charge from swap_cgroup to page_cgroup)
|
||||
It's uncharged when
|
||||
- A page is removed from radix-tree and not SwapCache.
|
||||
- When SwapCache is removed, a charge is moved to swap_cgroup.
|
||||
- When swp_entry's refcnt goes down to 0, a charge in swap_cgroup
|
||||
disappears.
|
||||
|
||||
7. Page Migration
|
||||
One of the most complicated functions is page-migration-handler.
|
||||
Memcg has 2 routines. Assume that we are migrating a page's contents
|
||||
from OLDPAGE to NEWPAGE.
|
||||
|
||||
Usual migration logic is..
|
||||
(a) remove the page from LRU.
|
||||
(b) allocate NEWPAGE (migration target)
|
||||
(c) lock by lock_page().
|
||||
(d) unmap all mappings.
|
||||
(e-1) If necessary, replace entry in radix-tree.
|
||||
(e-2) move contents of a page.
|
||||
(f) map all mappings again.
|
||||
(g) pushback the page to LRU.
|
||||
(-) OLDPAGE will be freed.
|
||||
|
||||
Before (g), memcg should complete all necessary charge/uncharge to
|
||||
NEWPAGE/OLDPAGE.
|
||||
|
||||
The point is....
|
||||
- If OLDPAGE is anonymous, all charges will be dropped at (d) because
|
||||
try_to_unmap() drops all mapcount and the page will not be
|
||||
SwapCache.
|
||||
|
||||
- If OLDPAGE is SwapCache, charges will be kept at (g) because
|
||||
__delete_from_swap_cache() isn't called at (e-1)
|
||||
|
||||
- If OLDPAGE is page-cache, charges will be kept at (g) because
|
||||
remove_from_swap_cache() isn't called at (e-1)
|
||||
|
||||
memcg provides following hooks.
|
||||
|
||||
- mem_cgroup_prepare_migration(OLDPAGE)
|
||||
Called after (b) to account a charge (usage += PAGE_SIZE) against
|
||||
memcg which OLDPAGE belongs to.
|
||||
|
||||
- mem_cgroup_end_migration(OLDPAGE, NEWPAGE)
|
||||
Called after (f) before (g).
|
||||
If OLDPAGE is used, commit OLDPAGE again. If OLDPAGE is already
|
||||
charged, a charge by prepare_migration() is automatically canceled.
|
||||
If NEWPAGE is used, commit NEWPAGE and uncharge OLDPAGE.
|
||||
|
||||
But zap_pte() (by exit or munmap) can be called while migration,
|
||||
we have to check if OLDPAGE/NEWPAGE is a valid page after commit().
|
||||
mem_cgroup_migrate()
|
||||
|
||||
8. LRU
|
||||
Each memcg has its own private LRU. Now, its handling is under global
|
||||
|
||||
@@ -70,6 +70,7 @@ nuvoton,npct501 i2c trusted platform module (TPM)
|
||||
nxp,pca9556 Octal SMBus and I2C registered interface
|
||||
nxp,pca9557 8-bit I2C-bus and SMBus I/O port with reset
|
||||
nxp,pcf8563 Real-time clock/calendar
|
||||
nxp,pcf85063 Tiny Real-Time Clock
|
||||
ovti,ov5642 OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus
|
||||
pericom,pt7c4338 Real-time Clock Module
|
||||
plx,pex8648 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
|
||||
|
||||
@@ -268,6 +268,8 @@ characters, each representing a particular tainted value.
|
||||
14: 'E' if an unsigned module has been loaded in a kernel supporting
|
||||
module signature.
|
||||
|
||||
15: 'L' if a soft lockup has previously occurred on the system.
|
||||
|
||||
The primary reason for the 'Tainted: ' string is to tell kernel
|
||||
debuggers if this is a clean kernel or if anything unusual has
|
||||
occurred. Tainting is permanent: even if an offending module is
|
||||
|
||||
@@ -20,13 +20,26 @@ II. Known problems
|
||||
|
||||
None.
|
||||
|
||||
III. To do
|
||||
III. DMA Engine Support
|
||||
|
||||
Add DMA data transfers (non-messaging).
|
||||
Add inbound region (SRIO-to-PCIe) mapping.
|
||||
Tsi721 mport driver supports DMA data transfers between local system memory and
|
||||
remote RapidIO devices. This functionality is implemented according to SLAVE
|
||||
mode API defined by common Linux kernel DMA Engine framework.
|
||||
|
||||
Depending on system requirements RapidIO DMA operations can be included/excluded
|
||||
by setting CONFIG_RAPIDIO_DMA_ENGINE option. Tsi721 miniport driver uses seven
|
||||
out of eight available BDMA channels to support DMA data transfers.
|
||||
One BDMA channel is reserved for generation of maintenance read/write requests.
|
||||
|
||||
If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
|
||||
this driver will accept DMA-specific module parameter:
|
||||
"dma_desc_per_channel" - defines number of hardware buffer descriptors used by
|
||||
each BDMA channel of Tsi721 (by default - 128).
|
||||
|
||||
IV. Version History
|
||||
|
||||
1.1.0 - DMA operations re-worked to support data scatter/gather lists larger
|
||||
than hardware buffer descriptors ring.
|
||||
1.0.0 - Initial driver release.
|
||||
|
||||
V. License
|
||||
|
||||
@@ -826,6 +826,7 @@ can be ORed together:
|
||||
4096 - An out-of-tree module has been loaded.
|
||||
8192 - An unsigned module has been loaded in a kernel supporting module
|
||||
signature.
|
||||
16384 - A soft lockup has previously occurred on the system.
|
||||
|
||||
==============================================================
|
||||
|
||||
|
||||
+25
-48
@@ -597,7 +597,7 @@ AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
|
||||
M: Thomas Dahlmann <dahlmann.thomas@arcor.de>
|
||||
L: linux-geode@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
F: drivers/usb/gadget/amd5536udc.*
|
||||
F: drivers/usb/gadget/udc/amd5536udc.*
|
||||
|
||||
AMD GEODE PROCESSOR/CHIPSET SUPPORT
|
||||
P: Andres Salomon <dilinger@queued.net>
|
||||
@@ -621,7 +621,7 @@ AMD MICROCODE UPDATE SUPPORT
|
||||
M: Andreas Herrmann <herrmann.der.user@googlemail.com>
|
||||
L: amd64-microcode@amd64.org
|
||||
S: Maintained
|
||||
F: arch/x86/kernel/microcode_amd.c
|
||||
F: arch/x86/kernel/cpu/microcode/amd*
|
||||
|
||||
AMD XGBE DRIVER
|
||||
M: Tom Lendacky <thomas.lendacky@amd.com>
|
||||
@@ -911,7 +911,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
|
||||
S: Maintained
|
||||
F: arch/arm/mach-prima2/
|
||||
F: drivers/clk/clk-prima2.c
|
||||
F: drivers/clk/sirf/
|
||||
F: drivers/clocksource/timer-prima2.c
|
||||
F: drivers/clocksource/timer-marco.c
|
||||
N: [^a-z]sirf
|
||||
@@ -1164,6 +1164,7 @@ M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: arch/arm/mach-nomadik/
|
||||
F: drivers/pinctrl/nomadik/
|
||||
F: drivers/i2c/busses/i2c-nomadik.c
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
|
||||
|
||||
@@ -1185,8 +1186,7 @@ F: drivers/mmc/host/msm_sdcc.h
|
||||
F: drivers/tty/serial/msm_serial.h
|
||||
F: drivers/tty/serial/msm_serial.c
|
||||
F: drivers/*/pm8???-*
|
||||
F: drivers/mfd/ssbi/
|
||||
F: include/linux/mfd/pm8xxx/
|
||||
F: drivers/mfd/ssbi.c
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm.git
|
||||
S: Maintained
|
||||
|
||||
@@ -1443,7 +1443,8 @@ F: drivers/mfd/abx500*
|
||||
F: drivers/mfd/ab8500*
|
||||
F: drivers/mfd/dbx500*
|
||||
F: drivers/mfd/db8500*
|
||||
F: drivers/pinctrl/pinctrl-nomadik*
|
||||
F: drivers/pinctrl/nomadik/pinctrl-ab*
|
||||
F: drivers/pinctrl/nomadik/pinctrl-nomadik*
|
||||
F: drivers/rtc/rtc-ab8500.c
|
||||
F: drivers/rtc/rtc-pl031.c
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson.git
|
||||
@@ -1699,7 +1700,7 @@ ATMEL USBA UDC DRIVER
|
||||
M: Nicolas Ferre <nicolas.ferre@atmel.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
F: drivers/usb/gadget/atmel_usba_udc.*
|
||||
F: drivers/usb/gadget/udc/atmel_usba_udc.*
|
||||
|
||||
ATMEL WIRELESS DRIVER
|
||||
M: Simon Kelley <simon@thekelleys.org.uk>
|
||||
@@ -1991,7 +1992,7 @@ F: arch/arm/boot/dts/bcm113*
|
||||
F: arch/arm/boot/dts/bcm216*
|
||||
F: arch/arm/boot/dts/bcm281*
|
||||
F: arch/arm/configs/bcm_defconfig
|
||||
F: drivers/mmc/host/sdhci_bcm_kona.c
|
||||
F: drivers/mmc/host/sdhci-bcm-kona.c
|
||||
F: drivers/clocksource/bcm_kona_timer.c
|
||||
|
||||
BROADCOM BCM2835 ARM ARCHICTURE
|
||||
@@ -2341,12 +2342,6 @@ L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ethernet/cirrus/ep93xx_eth.c
|
||||
|
||||
CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER
|
||||
M: Lennert Buytenhek <kernel@wantstofly.org>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/host/ohci-ep93xx.c
|
||||
|
||||
CIRRUS LOGIC AUDIO CODEC DRIVERS
|
||||
M: Brian Austin <brian.austin@cirrus.com>
|
||||
M: Paul Handrigan <Paul.Handrigan@cirrus.com>
|
||||
@@ -2431,7 +2426,7 @@ W: http://linux-cifs.samba.org/
|
||||
Q: http://patchwork.ozlabs.org/project/linux-cifs-client/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
|
||||
S: Supported
|
||||
F: Documentation/filesystems/cifs.txt
|
||||
F: Documentation/filesystems/cifs/
|
||||
F: fs/cifs/
|
||||
|
||||
COMPACTPCI HOTPLUG CORE
|
||||
@@ -2966,7 +2961,9 @@ L: linux-media@vger.kernel.org
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
L: linaro-mm-sig@lists.linaro.org
|
||||
F: drivers/dma-buf/
|
||||
F: include/linux/dma-buf* include/linux/reservation.h include/linux/*fence.h
|
||||
F: include/linux/dma-buf*
|
||||
F: include/linux/reservation.h
|
||||
F: include/linux/*fence.h
|
||||
F: Documentation/dma-buf-sharing.txt
|
||||
T: git git://git.linaro.org/people/sumitsemwal/linux-dma-buf.git
|
||||
|
||||
@@ -3061,7 +3058,6 @@ L: dri-devel@lists.freedesktop.org
|
||||
T: git git://people.freedesktop.org/~agd5f/linux
|
||||
S: Supported
|
||||
F: drivers/gpu/drm/radeon/
|
||||
F: include/drm/radeon*
|
||||
F: include/uapi/drm/radeon*
|
||||
|
||||
DRM PANEL DRIVERS
|
||||
@@ -3255,26 +3251,12 @@ T: git git://linuxtv.org/anttip/media_tree.git
|
||||
S: Maintained
|
||||
F: drivers/media/tuners/e4000*
|
||||
|
||||
EATA-DMA SCSI DRIVER
|
||||
M: Michael Neuffer <mike@i-Connect.Net>
|
||||
L: linux-eata@i-connect.net
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/scsi/eata*
|
||||
|
||||
EATA ISA/EISA/PCI SCSI DRIVER
|
||||
M: Dario Ballabio <ballabio_dario@emc.com>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/scsi/eata.c
|
||||
|
||||
EATA-PIO SCSI DRIVER
|
||||
M: Michael Neuffer <mike@i-Connect.Net>
|
||||
L: linux-eata@i-connect.net
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/scsi/eata_pio.*
|
||||
|
||||
EC100 MEDIA DRIVER
|
||||
M: Antti Palosaari <crope@iki.fi>
|
||||
L: linux-media@vger.kernel.org
|
||||
@@ -3449,7 +3431,7 @@ M: Matt Fleming <matt.fleming@intel.com>
|
||||
L: linux-efi@vger.kernel.org
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git
|
||||
S: Maintained
|
||||
F: Documentation/x86/efi-stub.txt
|
||||
F: Documentation/efi-stub.txt
|
||||
F: arch/ia64/kernel/efi.c
|
||||
F: arch/x86/boot/compressed/eboot.[ch]
|
||||
F: arch/x86/include/asm/efi.h
|
||||
@@ -3836,7 +3818,7 @@ M: Li Yang <leoli@freescale.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
L: linuxppc-dev@lists.ozlabs.org
|
||||
S: Maintained
|
||||
F: drivers/usb/gadget/fsl*
|
||||
F: drivers/usb/gadget/udc/fsl*
|
||||
|
||||
FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
|
||||
M: Li Yang <leoli@freescale.com>
|
||||
@@ -4525,10 +4507,7 @@ S: Supported
|
||||
F: drivers/scsi/ibmvscsi/ibmvfc*
|
||||
|
||||
IBM ServeRAID RAID DRIVER
|
||||
P: Jack Hammer
|
||||
M: Dave Jeffery <ipslinux@adaptec.com>
|
||||
W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html
|
||||
S: Supported
|
||||
S: Orphan
|
||||
F: drivers/scsi/ips.*
|
||||
|
||||
ICH LPC AND GPIO DRIVER
|
||||
@@ -4725,8 +4704,8 @@ F: drivers/platform/x86/intel_menlow.c
|
||||
INTEL IA32 MICROCODE UPDATE SUPPORT
|
||||
M: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
|
||||
S: Maintained
|
||||
F: arch/x86/kernel/microcode_core.c
|
||||
F: arch/x86/kernel/microcode_intel.c
|
||||
F: arch/x86/kernel/cpu/microcode/core*
|
||||
F: arch/x86/kernel/cpu/microcode/intel*
|
||||
|
||||
INTEL I/OAT DMA DRIVER
|
||||
M: Dan Williams <dan.j.williams@intel.com>
|
||||
@@ -5185,7 +5164,6 @@ L: linux-nfs@vger.kernel.org
|
||||
W: http://nfs.sourceforge.net/
|
||||
S: Supported
|
||||
F: fs/nfsd/
|
||||
F: include/linux/nfsd/
|
||||
F: include/uapi/linux/nfsd/
|
||||
F: fs/lockd/
|
||||
F: fs/nfs_common/
|
||||
@@ -5906,7 +5884,6 @@ F: drivers/clocksource/metag_generic.c
|
||||
F: drivers/irqchip/irq-metag.c
|
||||
F: drivers/irqchip/irq-metag-ext.c
|
||||
F: drivers/tty/metag_da.c
|
||||
F: fs/imgdafs/
|
||||
|
||||
MICROBLAZE ARCHITECTURE
|
||||
M: Michal Simek <monstr@monstr.eu>
|
||||
@@ -6997,9 +6974,9 @@ M: Jamie Iles <jamie@jamieiles.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
T: git git://github.com/jamieiles/linux-2.6-ji.git
|
||||
S: Supported
|
||||
F: arch/arm/boot/dts/picoxcell*
|
||||
F: arch/arm/mach-picoxcell/
|
||||
F: drivers/*/picoxcell*
|
||||
F: drivers/*/*/picoxcell*
|
||||
F: drivers/crypto/picoxcell*
|
||||
|
||||
PIN CONTROL SUBSYSTEM
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
@@ -7224,7 +7201,7 @@ F: drivers/ptp/*
|
||||
F: include/linux/ptp_cl*
|
||||
|
||||
PTRACE SUPPORT
|
||||
M: Roland McGrath <roland@redhat.com>
|
||||
M: Roland McGrath <roland@hack.frob.com>
|
||||
M: Oleg Nesterov <oleg@redhat.com>
|
||||
S: Maintained
|
||||
F: include/asm-generic/syscall.h
|
||||
@@ -7274,7 +7251,7 @@ S: Maintained
|
||||
F: arch/arm/mach-pxa/
|
||||
F: drivers/pcmcia/pxa2xx*
|
||||
F: drivers/spi/spi-pxa2xx*
|
||||
F: drivers/usb/gadget/pxa2*
|
||||
F: drivers/usb/gadget/udc/pxa2*
|
||||
F: include/sound/pxa2xx-lib.h
|
||||
F: sound/arm/pxa*
|
||||
F: sound/soc/pxa/
|
||||
@@ -7283,7 +7260,7 @@ PXA3xx NAND FLASH DRIVER
|
||||
M: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
|
||||
L: linux-mtd@lists.infradead.org
|
||||
S: Maintained
|
||||
F: drivers/mtd/nand/pxa3xx-nand.c
|
||||
F: drivers/mtd/nand/pxa3xx_nand.c
|
||||
|
||||
MMP SUPPORT
|
||||
M: Eric Miao <eric.y.miao@gmail.com>
|
||||
@@ -9628,8 +9605,8 @@ USB WEBCAM GADGET
|
||||
M: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/gadget/*uvc*.c
|
||||
F: drivers/usb/gadget/webcam.c
|
||||
F: drivers/usb/gadget/function/*uvc*.c
|
||||
F: drivers/usb/gadget/legacy/webcam.c
|
||||
|
||||
USB WIRELESS RNDIS DRIVER (rndis_wlan)
|
||||
M: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||
|
||||
@@ -6,4 +6,5 @@ generic-y += exec.h
|
||||
generic-y += hash.h
|
||||
generic-y += mcs_spinlock.h
|
||||
generic-y += preempt.h
|
||||
generic-y += scatterlist.h
|
||||
generic-y += trace_clock.h
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _ALPHA_SCATTERLIST_H
|
||||
#define _ALPHA_SCATTERLIST_H
|
||||
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#endif /* !(_ALPHA_SCATTERLIST_H) */
|
||||
@@ -83,6 +83,7 @@ config ARM
|
||||
<http://www.arm.linux.org.uk/>.
|
||||
|
||||
config ARM_HAS_SG_CHAIN
|
||||
select ARCH_HAS_SG_CHAIN
|
||||
bool
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
@@ -1982,6 +1983,8 @@ config XIP_PHYS_ADDR
|
||||
config KEXEC
|
||||
bool "Kexec system call (EXPERIMENTAL)"
|
||||
depends on (!SMP || PM_SLEEP_SMP)
|
||||
select CRYPTO
|
||||
select CRYPTO_SHA256
|
||||
help
|
||||
kexec is a system call that implements the ability to shutdown your
|
||||
current kernel, and to start another kernel. It is like a reboot
|
||||
|
||||
@@ -22,6 +22,7 @@ generic-y += poll.h
|
||||
generic-y += preempt.h
|
||||
generic-y += resource.h
|
||||
generic-y += rwsem.h
|
||||
generic-y += scatterlist.h
|
||||
generic-y += sections.h
|
||||
generic-y += segment.h
|
||||
generic-y += sembuf.h
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
#ifndef _ASMARM_SCATTERLIST_H
|
||||
#define _ASMARM_SCATTERLIST_H
|
||||
|
||||
#ifdef CONFIG_ARM_HAS_SG_CHAIN
|
||||
#define ARCH_HAS_SG_CHAIN
|
||||
#endif
|
||||
|
||||
#include <asm/memory.h>
|
||||
#include <asm/types.h>
|
||||
#include <asm-generic/scatterlist.h>
|
||||
|
||||
#endif /* _ASMARM_SCATTERLIST_H */
|
||||
@@ -336,7 +336,7 @@ static int __init early_touchbook_revision(char *p)
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
return strict_strtoul(p, 10, &touchbook_revision);
|
||||
return kstrtoul(p, 10, &touchbook_revision);
|
||||
}
|
||||
early_param("tbr", early_touchbook_revision);
|
||||
|
||||
|
||||
@@ -681,29 +681,19 @@ static ssize_t omap_mux_dbg_signal_write(struct file *file,
|
||||
const char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
char buf[OMAP_MUX_MAX_ARG_CHAR];
|
||||
struct seq_file *seqf;
|
||||
struct omap_mux *m;
|
||||
unsigned long val;
|
||||
int buf_size, ret;
|
||||
u16 val;
|
||||
int ret;
|
||||
struct omap_mux_partition *partition;
|
||||
|
||||
if (count > OMAP_MUX_MAX_ARG_CHAR)
|
||||
return -EINVAL;
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
buf_size = min(count, sizeof(buf) - 1);
|
||||
|
||||
if (copy_from_user(buf, user_buf, buf_size))
|
||||
return -EFAULT;
|
||||
|
||||
ret = strict_strtoul(buf, 0x10, &val);
|
||||
ret = kstrtou16_from_user(user_buf, count, 0x10, &val);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (val > 0xffff)
|
||||
return -EINVAL;
|
||||
|
||||
seqf = file->private_data;
|
||||
m = seqf->private;
|
||||
|
||||
@@ -711,7 +701,7 @@ static ssize_t omap_mux_dbg_signal_write(struct file *file,
|
||||
if (!partition)
|
||||
return -ENODEV;
|
||||
|
||||
omap_mux_write(partition, (u16)val, m->reg_offset);
|
||||
omap_mux_write(partition, val, m->reg_offset);
|
||||
*ppos += count;
|
||||
|
||||
return count;
|
||||
@@ -917,14 +907,14 @@ static void __init omap_mux_set_cmdline_signals(void)
|
||||
|
||||
while ((token = strsep(&next_opt, ",")) != NULL) {
|
||||
char *keyval, *name;
|
||||
unsigned long val;
|
||||
u16 val;
|
||||
|
||||
keyval = token;
|
||||
name = strsep(&keyval, "=");
|
||||
if (name) {
|
||||
int res;
|
||||
|
||||
res = strict_strtoul(keyval, 0x10, &val);
|
||||
res = kstrtou16(keyval, 0x10, &val);
|
||||
if (res < 0)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ int __init parse_balloon3_features(char *arg)
|
||||
if (!arg)
|
||||
return 0;
|
||||
|
||||
return strict_strtoul(arg, 0, &balloon3_features_present);
|
||||
return kstrtoul(arg, 0, &balloon3_features_present);
|
||||
}
|
||||
early_param("balloon3_features", parse_balloon3_features);
|
||||
|
||||
|
||||
@@ -769,7 +769,7 @@ static unsigned long viper_tpm;
|
||||
|
||||
static int __init viper_tpm_setup(char *str)
|
||||
{
|
||||
return strict_strtoul(str, 10, &viper_tpm) >= 0;
|
||||
return kstrtoul(str, 10, &viper_tpm) >= 0;
|
||||
}
|
||||
|
||||
__setup("tpm=", viper_tpm_setup);
|
||||
|
||||
@@ -242,7 +242,7 @@ static int __init jive_mtdset(char *options)
|
||||
if (options == NULL || options[0] == '\0')
|
||||
return 0;
|
||||
|
||||
if (strict_strtoul(options, 10, &set)) {
|
||||
if (kstrtoul(options, 10, &set)) {
|
||||
printk(KERN_ERR "failed to parse mtdset=%s\n", options);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -178,7 +178,8 @@ static int __init nuc900_set_cpufreq(char *str)
|
||||
if (!*str)
|
||||
return 0;
|
||||
|
||||
strict_strtoul(str, 0, &cpufreq);
|
||||
if (kstrtoul(str, 0, &cpufreq))
|
||||
return 0;
|
||||
|
||||
nuc900_clock_source(NULL, "ext");
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
config ARM64
|
||||
def_bool y
|
||||
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
||||
select ARCH_HAS_SG_CHAIN
|
||||
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||||
select ARCH_USE_CMPXCHG_LOCKREF
|
||||
select ARCH_SUPPORTS_ATOMIC_RMW
|
||||
|
||||
Loaded 20 of 348 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user