Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

793
557
422266


[부록 C] 리눅스 커널 프로젝트에 기여하기: 패치 전달 - mutt 프로그램으로 패치 전송 부록

이제 패치 파일을 mutt 프로그램으로 전송할 일만 남았습니다. 이를 위해 다음 포멧으로 명령어를 입력해봅시다.
mutt -H [패치 코드 이름]

먼저 다음 명령어를 입력해볼까요?
root@raspberrypi:/home/pi/kernel_src/linux-next# mutt -H 0001-mm-vmalloc.c-move-area-pages-after-if-statement.patch

mutt 프로그램이 실행되면서 다음 창이 출력 될 것입니다.
To:

‘To:’ 오른쪽에 다음 이메일을 수신자로 지정합니다.
akpm@linux-foundation.org,
urezki@gmail.com,
guro@fb.com,
rpenyaev@suse.de,
mhocko@suse.com,
rick.p.edgecombe@intel.com,
rppt@linux.ibm.com,
aryabinin@virtuozzo.com

아래는 메일 수신자를 기입한 후 화면입니다. 
To: akpm@linux-foundation.org, urezki@gmail.com, guro@fb.com, rpenyaev@suse.de, mhocko@suse.com, rick.p.edgecombe@intel.com, rppt@linux.ibm.com, aryabinin@virtuozzo.com

메일 수신자를 모두 입력한 다음 ‘엔터’를 입력합니다.
이어서 다음이 보일 것입니다. 패치 제목과 패치 내용을 볼 수 있습니다. 
Subject: [PATCH] mm/vmalloc.c: move 'area->pages' after if statement

  1 If !area->pages statement is true where memory allocation fails, area is
  2 freed.
  3
  4 In this case 'area->pages = pages' should not executed.  So move
  5 'area->pages = pages' after if statement.
  6
  7 Signed-off-by: Austin Kim <austindh.kim@gmail.com>
  8 ---
  9  mm/vmalloc.c | 6 ++++--
 10  1 file changed, 4 insertions(+), 2 deletions(-)
 11
 12 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
 13 index e66e7ff..0471c78 100644
 14 --- a/mm/vmalloc.c
 15 +++ b/mm/vmalloc.c
 16 @@ -2416,13 +2416,15 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
 17     } else {
 18         pages = kmalloc_node(array_size, nested_gfp, node);
 19     }
 20 -   area->pages = pages;
 21 -   if (!area->pages) {
 22 +
 23 +   if (!pages) {
 24         remove_vm_area(area->addr);
 25         kfree(area);
 26         return NULL;
 27     }
 28
 29 +   area->pages = pages;
 30 +
 31     for (i = 0; i < area->nr_pages; i++) {
 32         struct page *page;
 33
 34 --
 35 2.6.2
 36

 /tmp/mutt-ATEARND20B15-1035-97268-32752046138858321                                                                  1,1            All
:wq

패치 코드와 제목에 문제가 없으니 ‘wq’ 를 입력해 다음 화면으로 이동합니다.
y:Send  q:Abort  t:To  c:CC  s:Subj  a:Attach file  d:Descrip  ?:Help
    From: Austin Kim <austindh.kim@gmail.com>
      To: akpm@linux-foundation.org, urezki@gmail.com, guro@fb.com, rpenyaev@suse.de, mhocko@suse.com, rick.p.edgecombe@intel.com, rppt@linux.ibm.com, aryabinin@virtuozzo.com
      Cc:
     Bcc:
 Subject: [PATCH] mm/vmalloc.c: move 'area->pages' after if statement
Reply-To:
     Fcc:
     Mix: <no chain defined>
Security: None

위 화면에서 ‘C’를 입력하면 Cc 메일 주소 입력 창이 출력됩니다. 
‘Cc:’


‘Cc:’ 리스트에는 이전 소절에서 아래 명령어로 확인한 메일링 리스트 주소를 입력하면 됩니다.
'./scripts/get_maintainer.pl [패치파일 이름]'
linux-mm@kvack.org
linux-kernel@vger.kernel.org,


‘Cc:’ 오른쪽 부분에 메일링 리스트 주소와 필자의 이메일 주소를 기입합니다.
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, austindh.kim@gmail.com

‘Cc:’ 메일 주소 입력을 마무리한 후 ‘엔터’키를 입력합니다. 그러면 다음 화면이 보일 것입니다.
y:Send  q:Abort  t:To  c:CC  s:Subj  a:Attach file  d:Descrip  ?:Help
    From: Austin Kim <austindh.kim@gmail.com>
      To: akpm@linux-foundation.org, urezki@gmail.com, guro@fb.com, rpenyaev@suse.de, mhocko@suse.com, rick.p.edgecombe@intel.com, rppt@linux.ibm.com, aryabinin@virtuozzo.com
      Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, austindh.kim@gmail.com
     Bcc:
 Subject: [PATCH] mm/vmalloc.c: move 'area->pages' after if statement
Reply-To:
     Fcc:
     Mix: <no chain defined>
Security: None

메일 주소와 수신자를 다시 한 번 확인한 후 오탈자가 없으면 ‘y’를 입력해 패치 코드를 송신합니다.

"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)


[부록 A] GCC 지시어
   * inline    
   * noinline    
   * __noreturn   
   * unused   
[부록 B] 리눅스 커널 실력을 키우는 방법
[부록 C] 리눅스 커널 프로젝트에 기여하기  
C.1 리눅스 커널 오픈소스 프로젝트 소개 
   * 용어  
C.2 설정 방법 
C.3 패치 코드를 작성한 후 이메일로 보내기  
C.5 리눅스 커널 오픈소스 프로젝트로 얻는 지식 


# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2


 


핑백

덧글

댓글 입력 영역