Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <link rel="dns-prefetch" href="https://assets-cdn.github.com">
- <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
- <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
- <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
- <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
- <link crossorigin="anonymous" media="all" integrity="sha512-eYhUAIv4O/68uoHkCtYXVTxc5Q92+NKMtOryYR5Svt7vDp34XkrggN5j4lrKyiB0B2HUyrAYvAb3tlhmFGhivg==" rel="stylesheet" href="https://assets-cdn.github.com/assets/frameworks-592c4aa40e940d1b0607a3cf272916ff.css" />
- <link crossorigin="anonymous" media="all" integrity="sha512-tAb2Jg5owcau6P+YFTlebsFvybAeFaii7FoIIuYEtgu+esY8+SX6Xhyw3fXb+f9QB6wwivUzgoXXwO8ZteApKA==" rel="stylesheet" href="https://assets-cdn.github.com/assets/github-fdbbae74da4136fd4258a92eb943be60.css" />
- <link crossorigin="anonymous" media="all" integrity="sha512-d/Z8qkPIypOBvoV6s1ReDDzT0gEGP9MX7VaLPp0MbdP6ev5P0JREdfzCsgvkd70vyrJZW9L5rO+xU/3qDHjD7A==" rel="stylesheet" href="https://assets-cdn.github.com/assets/site-348211d27070b0d7bb5d31b1ac3d265b.css" />
- <meta name="viewport" content="width=device-width">
- <title>GitHub - torvalds/linux: Linux kernel source tree</title>
- <meta name="description" content="GitHub is where people build software. More than 27 million people use GitHub to discover, fork, and contribute to over 80 million projects.">
- <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
- <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
- <meta property="fb:app_id" content="1401488693436528">
- <meta property="og:image" content="https://avatars1.githubusercontent.com/u/1024025?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="torvalds/linux" /><meta property="og:url" content="https://github.com/torvalds/linux" /><meta property="og:description" content="linux - Linux kernel source tree" />
- <link rel="assets" href="https://assets-cdn.github.com/">
- <meta name="pjax-timeout" content="1000">
- <meta name="request-id" content="AF1C:79D6:1815C1A:3161C04:5AD7B777" data-pjax-transient>
- <meta name="selected-link" value="repo_source" data-pjax-transient>
- <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
- <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
- <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
- <meta name="google-analytics" content="UA-3769691-2">
- <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="AF1C:79D6:1815C1A:3161C04:5AD7B777" /><meta name="octolytics-dimension-region_edge" content="iad" /><meta name="octolytics-dimension-region_render" content="iad" />
- <meta name="analytics-location" content="/<user-name>/<repo-name>" data-pjax-transient="true" />
- <meta class="js-ga-set" name="dimension1" content="Logged Out">
- <meta name="hostname" content="github.com">
- <meta name="user-login" content="">
- <meta name="expected-hostname" content="github.com">
- <meta name="js-proxy-site-detection-payload" content="NzI5NjVjYTRjM2YyZTFlY2QyMTFhNGEyZTBiNWNiZTNkOWUxNWNjNDUxNGZlOTg4ODJkYWY1NWU2ZmM2OWUxY3x7InJlbW90ZV9hZGRyZXNzIjoiNDYuMjIzLjEyOS4xMiIsInJlcXVlc3RfaWQiOiJBRjFDOjc5RDY6MTgxNUMxQTozMTYxQzA0OjVBRDdCNzc3IiwidGltZXN0YW1wIjoxNTI0MDg2NjQ3LCJob3N0IjoiZ2l0aHViLmNvbSJ9">
- <meta name="enabled-features" content="UNIVERSE_BANNER,FREE_TRIALS,MARKETPLACE_INSIGHTS,MARKETPLACE_SELF_SERVE,MARKETPLACE_INSIGHTS_CONVERSION_PERCENTAGES">
- <meta name="html-safe-nonce" content="beedf3117b6d7b70059eb8e24e7eb05f955bfa04">
- <meta http-equiv="x-pjax-version" content="64f03629d5075031842780cedb552ba9">
- <link href="https://github.com/torvalds/linux/commits/master.atom" rel="alternate" title="Recent Commits to linux:master" type="application/atom+xml">
- <meta name="description" content="linux - Linux kernel source tree">
- <meta name="go-import" content="github.com/torvalds/linux git https://github.com/torvalds/linux.git">
- <meta name="octolytics-dimension-user_id" content="1024025" /><meta name="octolytics-dimension-user_login" content="torvalds" /><meta name="octolytics-dimension-repository_id" content="2325298" /><meta name="octolytics-dimension-repository_nwo" content="torvalds/linux" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="2325298" /><meta name="octolytics-dimension-repository_network_root_nwo" content="torvalds/linux" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
- <link rel="canonical" href="https://github.com/torvalds/linux" data-pjax-transient>
- <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
- <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#000000">
- <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://assets-cdn.github.com/favicon.ico">
- <meta name="theme-color" content="#1e2327">
- <meta name="u2f-support" content="true">
- <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
- </head>
- <body class="logged-out env-production">
- <div class="position-relative js-header-wrapper ">
- <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
- <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>
- <header class="Header header-logged-out position-relative f4 py-3" role="banner">
- <div class="container-lg d-flex px-3">
- <div class="d-flex flex-justify-between flex-items-center">
- <a class="header-logo-invertocat my-0" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
- <svg height="32" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
- </a>
- </div>
- <div class="HeaderMenu HeaderMenu--bright d-flex flex-justify-between flex-auto">
- <nav class="mt-0">
- <ul class="d-flex list-style-none">
- <li class="ml-2">
- <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:features" data-selected-links="/features /features/project-management /features/code-review /features/project-management /features/integrations /features" href="/features">
- Features
- </a> </li>
- <li class="ml-4">
- <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:business" data-selected-links="/business /business/security /business/customers /business" href="/business">
- Business
- </a> </li>
- <li class="ml-4">
- <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">
- Explore
- </a> </li>
- <li class="ml-4">
- <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:marketplace" data-selected-links=" /marketplace" href="/marketplace">
- Marketplace
- </a> </li>
- <li class="ml-4">
- <a class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:pricing" data-selected-links="/pricing /pricing/developer /pricing/team /pricing/business-hosted /pricing/business-enterprise /pricing" href="/pricing">
- Pricing
- </a> </li>
- </ul>
- </nav>
- <div class="d-flex">
- <div class="d-lg-flex flex-items-center mr-3">
- <div class="header-search scoped-search site-scoped-search js-site-search" role="search">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" data-scoped-search-url="/torvalds/linux/search" data-unscoped-search-url="/search" action="/torvalds/linux/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
- <label class="form-control header-search-wrapper js-chromeless-input-container">
- <a class="header-search-scope no-underline" href="/torvalds/linux">This repository</a>
- <input type="text"
- class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
- data-hotkey="s,/"
- name="q"
- value=""
- placeholder="Search"
- aria-label="Search this repository"
- data-unscoped-placeholder="Search GitHub"
- data-scoped-placeholder="Search"
- autocapitalize="off"
- >
- <input type="hidden" class="js-site-search-type-field" name="type" >
- </label>
- </form></div>
- </div>
- <span class="d-inline-block">
- <div class="HeaderNavlink px-0 py-2 m-0">
- <a class="text-bold text-white no-underline" href="/login?return_to=%2Ftorvalds%2Flinux" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
- <span class="text-gray">or</span>
- <a class="text-bold text-white no-underline" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
- </div>
- </span>
- </div>
- </div>
- </div>
- </header>
- </div>
- <div id="start-of-content" class="show-on-focus"></div>
- <div id="js-flash-container">
- </div>
- <div role="main" class="application-main ">
- <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
- <div id="js-repo-pjax-container" data-pjax-container >
- <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav ">
- <div class="repohead-details-container clearfix container">
- <ul class="pagehead-actions">
- <li>
- <a href="/login?return_to=%2Ftorvalds%2Flinux"
- class="btn btn-sm btn-with-count tooltipped tooltipped-n"
- aria-label="You must be signed in to watch a repository" rel="nofollow">
- <svg class="octicon octicon-eye" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
- Watch
- </a>
- <a class="social-count" href="/torvalds/linux/watchers"
- aria-label="6233 users are watching this repository">
- 6,233
- </a>
- </li>
- <li>
- <a href="/login?return_to=%2Ftorvalds%2Flinux"
- class="btn btn-sm btn-with-count tooltipped tooltipped-n"
- aria-label="You must be signed in to star a repository" rel="nofollow">
- <svg class="octicon octicon-star" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"/></svg>
- Star
- </a>
- <a class="social-count js-social-count" href="/torvalds/linux/stargazers"
- aria-label="57746 users starred this repository">
- 57,746
- </a>
- </li>
- <li>
- <a href="/login?return_to=%2Ftorvalds%2Flinux"
- class="btn btn-sm btn-with-count tooltipped tooltipped-n"
- aria-label="You must be signed in to fork a repository" rel="nofollow">
- <svg class="octicon octicon-repo-forked" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- Fork
- </a>
- <a href="/torvalds/linux/network" class="social-count"
- aria-label="21266 users forked this repository">
- 21,266
- </a>
- </li>
- </ul>
- <h1 class="public ">
- <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
- <span class="author" itemprop="author"><a class="url fn" rel="author" href="/torvalds">torvalds</a></span><!--
- --><span class="path-divider">/</span><!--
- --><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/torvalds/linux">linux</a></strong>
- </h1>
- </div>
- <nav class="reponav js-repo-nav js-sidenav-container-pjax container"
- itemscope
- itemtype="http://schema.org/BreadcrumbList"
- role="navigation"
- data-pjax="#js-repo-pjax-container">
- <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
- <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /torvalds/linux" href="/torvalds/linux">
- <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
- <span itemprop="name">Code</span>
- <meta itemprop="position" content="1">
- </a> </span>
- <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
- <a data-hotkey="g p" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /torvalds/linux/pulls" href="/torvalds/linux/pulls">
- <svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- <span itemprop="name">Pull requests</span>
- <span class="Counter">202</span>
- <meta itemprop="position" content="3">
- </a> </span>
- <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /torvalds/linux/projects" href="/torvalds/linux/projects">
- <svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
- Projects
- <span class="Counter" >0</span>
- </a>
- <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse /torvalds/linux/pulse" href="/torvalds/linux/pulse">
- <svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
- Insights
- </a>
- </nav>
- </div>
- <div class="container new-discussion-timeline experiment-repo-nav ">
- <div class="repository-content ">
- <div class="signup-prompt-bg rounded-1">
- <div class="signup-prompt p-4 text-center mb-4 rounded-1">
- <div class="position-relative">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/site/dismiss_signup_prompt" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="rNvK6wcakFUowkdOynQBKghV2jafbzZ2iM8/aM20JJLvME+ixZ7c1ZKP6Dr/Co906NbmmIJmyGeBEjvqc7UMPA==" />
- <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
- Dismiss
- </button>
- </form>
- <h3 class="pt-2">Join GitHub today</h3>
- <p class="col-6 mx-auto">GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.</p>
- <p class="pb-2">
- <a class="btn btn-blue" href="/join?source=prompt-code" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up">Sign up</a>
- </p>
- </div>
- </div>
- </div>
- <div class="js-repo-meta-container">
- <div class="repository-meta mb-0 mb-3 js-repo-meta-edit js-details-container ">
- <div class="repository-meta-content col-11 mb-1">
- <span class="col-11 text-gray-dark mr-2" itemprop="about">
- Linux kernel source tree
- </span>
- </div>
- </div>
- </div>
- <div class="overall-summary overall-summary-bottomless">
- <div class="stats-switcher-viewport js-stats-switcher-viewport">
- <div class="stats-switcher-wrapper">
- <ul class="numbers-summary">
- <li class="commits">
- <a data-pjax href="/torvalds/linux/commits/master">
- <svg class="octicon octicon-history" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z"/></svg>
- <span class="num text-emphasized">
- 752,001
- </span>
- commits
- </a>
- </li>
- <li>
- <a data-pjax href="/torvalds/linux/branches">
- <svg class="octicon octicon-git-branch" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 0 0-1-3.72C.88 1 0 1.89 0 3a2 2 0 0 0 1 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
- <span class="num text-emphasized">
- 1
- </span>
- branch
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/releases">
- <svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 0 0 0-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
- <span class="num text-emphasized">
- 553
- </span>
- releases
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/graphs/contributors">
- <svg class="octicon octicon-organization" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4"/></svg>
- <span class="num text-emphasized">∞</span> contributors
- </a>
- </li>
- </ul>
- <div class="repository-lang-stats">
- <ol class="repository-lang-stats-numbers">
- <li>
- <a href="/torvalds/linux/search?l=c" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#555555;"></span>
- <span class="lang">C</span>
- <span class="percent">96.5%</span>
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/search?l=assembly" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#6E4C13;"></span>
- <span class="lang">Assembly</span>
- <span class="percent">1.3%</span>
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/search?l=c%2B%2B" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#f34b7d;"></span>
- <span class="lang">C++</span>
- <span class="percent">1.3%</span>
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/search?l=objective-c" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#438eff;"></span>
- <span class="lang">Objective-C</span>
- <span class="percent">0.3%</span>
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/search?l=makefile" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#427819;"></span>
- <span class="lang">Makefile</span>
- <span class="percent">0.3%</span>
- </a>
- </li>
- <li>
- <a href="/torvalds/linux/search?l=perl" data-ga-click="Repository, language stats search click, location:repo overview">
- <span class="color-block language-color" style="background-color:#0298c3;"></span>
- <span class="lang">Perl</span>
- <span class="percent">0.1%</span>
- </a>
- </li>
- <li>
- <span>
- <span class="color-block language-color" style="background-color:#ededed;"></span>
- <span class="lang">Other</span>
- <span class="percent">0.2%</span>
- </span>
- </li>
- </ol>
- </div>
- </div>
- </div>
- </div>
- <div class="repository-lang-stats-graph js-toggle-lang-stats" title="Click for language details" data-ga-click="Repository, language bar stats toggle, location:repo overview">
- <span class="language-color" aria-label="C 96.5%" style="width:96.5%; background-color:#555555;" itemprop="keywords">C</span>
- <span class="language-color" aria-label="Assembly 1.3%" style="width:1.3%; background-color:#6E4C13;" itemprop="keywords">Assembly</span>
- <span class="language-color" aria-label="C++ 1.3%" style="width:1.3%; background-color:#f34b7d;" itemprop="keywords">C++</span>
- <span class="language-color" aria-label="Objective-C 0.3%" style="width:0.3%; background-color:#438eff;" itemprop="keywords">Objective-C</span>
- <span class="language-color" aria-label="Makefile 0.3%" style="width:0.3%; background-color:#427819;" itemprop="keywords">Makefile</span>
- <span class="language-color" aria-label="Perl 0.1%" style="width:0.1%; background-color:#0298c3;" itemprop="keywords">Perl</span>
- <span class="language-color" aria-label="Other 0.2%" style="width:0.2%; background-color:#ededed;" itemprop="keywords">Other</span>
- </div>
- <div class="file-navigation in-mid-page">
- <details class="get-repo-select-menu js-get-repo-select-menu float-right position-relative dropdown-details details-reset">
- <summary class="btn btn-sm btn-primary">
- Clone or download
- <span class="dropdown-caret"></span>
- </summary>
- <div class="position-relative">
- <div class="get-repo-modal dropdown-menu dropdown-menu-sw pb-0 js-toggler-container js-get-repo-modal">
- <div class="get-repo-modal-options">
- <div class="clone-options https-clone-options">
- <h4 class="mb-1">
- Clone with HTTPS
- <a class="muted-link" href="https://help.github.com/articles/which-remote-url-should-i-use" target="_blank" title="Which remote URL should I use?">
- <svg class="octicon octicon-question" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"/></svg>
- </a>
- </h4>
- <p class="mb-2 get-repo-decription-text">
- Use Git or checkout with SVN using the web URL.
- </p>
- <div class="input-group">
- <input type="text" class="form-control input-monospace input-sm js-url-field" value="https://github.com/torvalds/linux.git" aria-label="Clone this repository at https://github.com/torvalds/linux.git" readonly>
- <div class="input-group-button">
- <clipboard-copy
- value="https://github.com/torvalds/linux.git"
- aria-label="Copy to clipboard"
- class="btn btn-sm tooltipped tooltipped-s"
- copied-label="Copied!">
- <svg class="octicon octicon-clippy" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg>
- </clipboard-copy>
- </div>
- </div>
- </div>
- <div class="mt-2">
- <a href="https://desktop.github.com" class="btn btn-outline get-repo-btn tooltipped tooltipped-s tooltipped-multiline js-get-repo" data-open-app="windows" aria-label="Clone torvalds/linux to your computer and use it in GitHub Desktop.">
- Open in Desktop
- </a>
- <a href="/torvalds/linux/archive/master.zip"
- class="btn btn-outline get-repo-btn
- "
- rel="nofollow"
- data-ga-click="Repository, download zip, location:repo overview">
- Download ZIP
- </a>
- </div>
- </div>
- <div class="js-modal-download-mac py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-windows py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-xcode py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching Xcode<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://developer.apple.com/xcode/">download Xcode</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- <div class="js-modal-download-visual-studio py-2 px-3 d-none">
- <h4 class="lh-condensed mb-3">Launching Visual Studio<span class="animated-ellipsis-container"><span class="animated-ellipsis">...</span></span></h4>
- <p class="text-gray">If nothing happens, <a href="https://visualstudio.github.com/">download the GitHub extension for Visual Studio</a> and try again.</p>
- <p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
- </div>
- </div>
- </div>
- </details>
- <div class="BtnGroup float-right">
- <a href="/torvalds/linux/find/master"
- class="btn btn-sm empty-icon float-right BtnGroup-item"
- data-pjax
- data-hotkey="t"
- data-ga-click="Repository, find file, location:repo overview">
- Find file
- </a>
- </div>
- <div class="select-menu branch-select-menu js-menu-container js-select-menu float-left">
- <button class=" btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"
- type="button" aria-label="Switch branches or tags" aria-expanded="false" aria-haspopup="true">
- <i>Branch:</i>
- <span class="js-select-button css-truncate-target">master</span>
- </button>
- <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>
- <div class="select-menu-modal">
- <div class="select-menu-header">
- <svg class="octicon octicon-x js-menu-close" role="img" aria-label="Close" viewBox="0 0 12 16" version="1.1" width="12" height="16"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
- <span class="select-menu-title">Switch branches/tags</span>
- </div>
- <div class="select-menu-filters">
- <div class="select-menu-text-filter">
- <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
- </div>
- <div class="select-menu-tabs">
- <ul>
- <li class="select-menu-tab">
- <a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
- </li>
- <li class="select-menu-tab">
- <a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
- </li>
- </ul>
- </div>
- </div>
- <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
- <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
- <a class="select-menu-item js-navigation-item js-navigation-open selected"
- href="/torvalds/linux/tree/master"
- data-name="master"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target js-select-menu-filter-text">
- master
- </span>
- </a>
- </div>
- <div class="select-menu-no-results">Nothing to show</div>
- </div>
- <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
- <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.17-rc1"
- data-name="v4.17-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.17-rc1">
- v4.17-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16"
- data-name="v4.16"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16">
- v4.16
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc7"
- data-name="v4.16-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc7">
- v4.16-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc6"
- data-name="v4.16-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc6">
- v4.16-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc5"
- data-name="v4.16-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc5">
- v4.16-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc4"
- data-name="v4.16-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc4">
- v4.16-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc3"
- data-name="v4.16-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc3">
- v4.16-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc2"
- data-name="v4.16-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc2">
- v4.16-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.16-rc1"
- data-name="v4.16-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.16-rc1">
- v4.16-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15"
- data-name="v4.15"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15">
- v4.15
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc9"
- data-name="v4.15-rc9"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc9">
- v4.15-rc9
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc8"
- data-name="v4.15-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc8">
- v4.15-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc7"
- data-name="v4.15-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc7">
- v4.15-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc6"
- data-name="v4.15-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc6">
- v4.15-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc5"
- data-name="v4.15-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc5">
- v4.15-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc4"
- data-name="v4.15-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc4">
- v4.15-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc3"
- data-name="v4.15-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc3">
- v4.15-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc2"
- data-name="v4.15-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc2">
- v4.15-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.15-rc1"
- data-name="v4.15-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.15-rc1">
- v4.15-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14"
- data-name="v4.14"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14">
- v4.14
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc8"
- data-name="v4.14-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc8">
- v4.14-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc7"
- data-name="v4.14-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc7">
- v4.14-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc6"
- data-name="v4.14-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc6">
- v4.14-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc5"
- data-name="v4.14-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc5">
- v4.14-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc4"
- data-name="v4.14-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc4">
- v4.14-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc3"
- data-name="v4.14-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc3">
- v4.14-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc2"
- data-name="v4.14-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc2">
- v4.14-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.14-rc1"
- data-name="v4.14-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.14-rc1">
- v4.14-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13"
- data-name="v4.13"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13">
- v4.13
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc7"
- data-name="v4.13-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc7">
- v4.13-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc6"
- data-name="v4.13-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc6">
- v4.13-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc5"
- data-name="v4.13-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc5">
- v4.13-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc4"
- data-name="v4.13-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc4">
- v4.13-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc3"
- data-name="v4.13-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc3">
- v4.13-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc2"
- data-name="v4.13-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc2">
- v4.13-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.13-rc1"
- data-name="v4.13-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.13-rc1">
- v4.13-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12"
- data-name="v4.12"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12">
- v4.12
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc7"
- data-name="v4.12-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc7">
- v4.12-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc6"
- data-name="v4.12-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc6">
- v4.12-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc5"
- data-name="v4.12-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc5">
- v4.12-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc4"
- data-name="v4.12-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc4">
- v4.12-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc3"
- data-name="v4.12-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc3">
- v4.12-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc2"
- data-name="v4.12-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc2">
- v4.12-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.12-rc1"
- data-name="v4.12-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.12-rc1">
- v4.12-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11"
- data-name="v4.11"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11">
- v4.11
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc8"
- data-name="v4.11-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc8">
- v4.11-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc7"
- data-name="v4.11-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc7">
- v4.11-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc6"
- data-name="v4.11-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc6">
- v4.11-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc5"
- data-name="v4.11-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc5">
- v4.11-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc4"
- data-name="v4.11-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc4">
- v4.11-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc3"
- data-name="v4.11-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc3">
- v4.11-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc2"
- data-name="v4.11-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc2">
- v4.11-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.11-rc1"
- data-name="v4.11-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.11-rc1">
- v4.11-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10"
- data-name="v4.10"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10">
- v4.10
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc8"
- data-name="v4.10-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc8">
- v4.10-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc7"
- data-name="v4.10-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc7">
- v4.10-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc6"
- data-name="v4.10-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc6">
- v4.10-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc5"
- data-name="v4.10-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc5">
- v4.10-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc4"
- data-name="v4.10-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc4">
- v4.10-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc3"
- data-name="v4.10-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc3">
- v4.10-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc2"
- data-name="v4.10-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc2">
- v4.10-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.10-rc1"
- data-name="v4.10-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.10-rc1">
- v4.10-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9"
- data-name="v4.9"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9">
- v4.9
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc8"
- data-name="v4.9-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc8">
- v4.9-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc7"
- data-name="v4.9-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc7">
- v4.9-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc6"
- data-name="v4.9-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc6">
- v4.9-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc5"
- data-name="v4.9-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc5">
- v4.9-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc4"
- data-name="v4.9-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc4">
- v4.9-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc3"
- data-name="v4.9-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc3">
- v4.9-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc2"
- data-name="v4.9-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc2">
- v4.9-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.9-rc1"
- data-name="v4.9-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.9-rc1">
- v4.9-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8"
- data-name="v4.8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8">
- v4.8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc8"
- data-name="v4.8-rc8"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc8">
- v4.8-rc8
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc7"
- data-name="v4.8-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc7">
- v4.8-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc6"
- data-name="v4.8-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc6">
- v4.8-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc5"
- data-name="v4.8-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc5">
- v4.8-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc4"
- data-name="v4.8-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc4">
- v4.8-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc3"
- data-name="v4.8-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc3">
- v4.8-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc2"
- data-name="v4.8-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc2">
- v4.8-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.8-rc1"
- data-name="v4.8-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.8-rc1">
- v4.8-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7"
- data-name="v4.7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7">
- v4.7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc7"
- data-name="v4.7-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc7">
- v4.7-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc6"
- data-name="v4.7-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc6">
- v4.7-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc5"
- data-name="v4.7-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc5">
- v4.7-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc4"
- data-name="v4.7-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc4">
- v4.7-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc3"
- data-name="v4.7-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc3">
- v4.7-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc2"
- data-name="v4.7-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc2">
- v4.7-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.7-rc1"
- data-name="v4.7-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.7-rc1">
- v4.7-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6"
- data-name="v4.6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6">
- v4.6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc7"
- data-name="v4.6-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc7">
- v4.6-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc6"
- data-name="v4.6-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc6">
- v4.6-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc5"
- data-name="v4.6-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc5">
- v4.6-rc5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc4"
- data-name="v4.6-rc4"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc4">
- v4.6-rc4
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc3"
- data-name="v4.6-rc3"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc3">
- v4.6-rc3
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc2"
- data-name="v4.6-rc2"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc2">
- v4.6-rc2
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.6-rc1"
- data-name="v4.6-rc1"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.6-rc1">
- v4.6-rc1
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.5"
- data-name="v4.5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.5">
- v4.5
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.5-rc7"
- data-name="v4.5-rc7"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.5-rc7">
- v4.5-rc7
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.5-rc6"
- data-name="v4.5-rc6"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.5-rc6">
- v4.5-rc6
- </span>
- </a>
- <a class="select-menu-item js-navigation-item js-navigation-open "
- href="/torvalds/linux/tree/v4.5-rc5"
- data-name="v4.5-rc5"
- data-skip-pjax="true"
- rel="nofollow">
- <svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"/></svg>
- <span class="select-menu-item-text css-truncate-target" title="v4.5-rc5">
- v4.5-rc5
- </span>
- </a>
- </div>
- <div class="select-menu-no-results">Nothing to show</div>
- </div>
- </div>
- </div>
- </div>
- <button type="button" class="btn btn-sm disabled tooltipped tooltipped-n new-pull-request-btn" aria-label="You must be signed in to create a pull request">
- New pull request
- </button>
- <div class="breadcrumb">
- </div>
- </div>
- <include-fragment src="/torvalds/linux/tree-commit/a27fc14219f2e3c4a46ba9177b04d9b52c875532" class="commit-tease commit-loader">
- <div class="blank">
- <img alt="" class="loader" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" height="16" />
- Fetching latest commit…
- </div>
- <div class="loader-error">
- Cannot retrieve the latest commit at this time.
- </div>
- </include-fragment>
- <div class="file-wrap">
- <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/torvalds/linux/tree/a27fc14219f2e3c4a46ba9177b04d9b52c875532">Permalink</a>
- <table class="files js-navigation-container js-active-navigation-container" data-pjax>
- <tbody>
- <tr class="warning include-fragment-error">
- <td class="icon"><svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg></td>
- <td class="content" colspan="3">Failed to load latest commit information.</td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="Documentation" id="5b6cf869265c13af8566f192b4ab3d2a-618516ad26ed2e3f98e081de67e944910caea6be" href="/torvalds/linux/tree/master/Documentation">Documentation</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull missed timer updates from Thomas Gleixner:
- "This is a branch which got forgotten during the merge window, but it
- contains only fixes and hardware enablement. No fundamental changes.
- - Various fixes for the imx-tpm clocksource driver
- - A new timer driver for the NCPM7xx SoC family"
- * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- clocksource/drivers/imx-tpm: Add different counter width support
- clocksource/drivers/imx-tpm: Correct some registers operation flow
- clocksource/drivers/imx-tpm: Fix typo of clock name
- dt-bindings: timer: tpm: fix typo of clock name
- clocksource/drivers/npcm: Add NPCM7xx timer driver
- dt-binding: timer: document NPCM7xx timer DT bindings" class="message" href="/torvalds/linux/commit/d95c8844399885cd511c6f6395621cc1a9fe2e68">Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T19:44:03Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="LICENSES" id="7cdfd31383b30b3a880b4a6b5e8d28fa-ebd4032d57c18fee961bad770a6319718eb3b1c3" href="/torvalds/linux/tree/master/LICENSES">LICENSES</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="LICENSES: Add MPL-1.1 license
- Add the full text of the Mozilla Public License 1.1 to the kernel tree. It was
- copied directly from:
- https://spdx.org/licenses/MPL-1.1.html#licenseText
- Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
- Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
- Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
- Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- Signed-off-by: Jonathan Corbet <corbet@lwn.net>" class="message" href="/torvalds/linux/commit/536ec30477fe66d0564aff8f3595c8ce603f1411">LICENSES: Add MPL-1.1 license</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-01-06T17:59:44Z">Jan 6, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="arch" id="d6194c68fcc7e79bb57401be603cb1cc-f01e7a8112f14ad7f2b653bfee904fc4721eef21" href="/torvalds/linux/tree/master/arch">arch</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'parisc-4.17-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
- Pull parisc build fix from Helge Deller:
- "Fix build error because of missing binfmt_elf32.o file which is still
- mentioned in the Makefile"
- * 'parisc-4.17-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
- parisc: Fix missing binfmt_elf32.o build error" class="message" href="/torvalds/linux/commit/a27fc14219f2e3c4a46ba9177b04d9b52c875532">Merge branch 'parisc-4.17-3' of git://git.kernel.org/pub/scm/linux/ke…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T21:07:39Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="block" id="14511f2f5564650d129ca7cabc333278-0dc5c54f11aa4ccf61156c950e764e77019debf0" href="/torvalds/linux/tree/master/block">block</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="blk-mq: Revert "blk-mq: reimplement blk_mq_hw_queue_mapped"
- This reverts commit 127276c6ce5a30fcc806b7fe53015f4f89b62956.
- When all CPUs of one hw queue become offline, there still may have IOs
- not completed from this hctx. But blk_mq_hw_queue_mapped() is called in
- blk_mq_queue_tag_busy_iter(), which is used for iterating request in timeout
- handler, timeout event will be missed on the inactive hctx, then request may
- never be completed.
- Also the replementation of blk_mq_hw_queue_mapped() doesn't match the helper's
- name any more, and it should have been named as blk_mq_hw_queue_active().
- Even other callers need further verification about this reimplemenation.
- So revert this patch now, and we can improve hw queue activate/inactivate event
- after adequent researching and test.
- Cc: Stefan Haberland <sth@linux.vnet.ibm.com>
- Cc: Christian Borntraeger <borntraeger@de.ibm.com>
- Cc: Christoph Hellwig <hch@lst.de>
- Reported-by: Jens Axboe <axboe@kernel.dk>
- Fixes: 127276c6ce5a30fcc ("blk-mq: reimplement blk_mq_hw_queue_mapped")
- Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
- Signed-off-by: Ming Lei <ming.lei@redhat.com>
- Signed-off-by: Jens Axboe <axboe@kernel.dk>" class="message" href="/torvalds/linux/commit/2434af79c85d45d41d0c286fedf6e0556888a54c">blk-mq: Revert "blk-mq: reimplement blk_mq_hw_queue_mapped"</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-11T13:59:15Z">Apr 11, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="certs" id="5c99e9c56c11bc780a27097694149cba-a844094338d322c5c8d1d94461037c60d39a4fc4" href="/torvalds/linux/tree/master/certs">certs</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="certs/blacklist_nohashes.c: fix const confusion in certs blacklist
- const must be marked __initconst, not __initdata.
- Link: http://lkml.kernel.org/r/20171222001335.1987-1-andi@firstfloor.org
- Signed-off-by: Andi Kleen <ak@linux.intel.com>
- Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/2be04df5668d81f9a98e57b81bc53f72bd5f4f92">certs/blacklist_nohashes.c: fix const confusion in certs blacklist</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-21T23:35:43Z">Feb 21, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="crypto" id="5ae9b7f211e23aac3df5f2b8f3b8eada-aa1bf656a9afdfe168fe4ae21df448adfa4e553d" href="/torvalds/linux/tree/master/crypto">crypto</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
- Pull more Kbuild updates from Masahiro Yamada:
- - pass HOSTLDFLAGS when compiling single .c host programs
- - build genksyms lexer and parser files instead of using shipped
- versions
- - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency
- - let the top .gitignore globally ignore artifacts generated by flex,
- bison, and asn1_compiler
- - let the top Makefile globally clean artifacts generated by flex,
- bison, and asn1_compiler
- - use safer .SECONDARY marker instead of .PRECIOUS to prevent
- intermediate files from being removed
- - support -fmacro-prefix-map option to make __FILE__ a relative path
- - fix # escaping to prepare for the future GNU Make release
- - clean up deb-pkg by using debian tools instead of handrolled
- source/changes generation
- - improve rpm-pkg portability by supporting kernel-install as a
- fallback of new-kernel-pkg
- - extend Kconfig listnewconfig target to provide more information
- * tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
- kconfig: extend output of 'listnewconfig'
- kbuild: rpm-pkg: use kernel-install as a fallback for new-kernel-pkg
- Kbuild: fix # escaping in .cmd files for future Make
- kbuild: deb-pkg: split generating packaging and build
- kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
- kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers
- kbuild: rename *-asn1.[ch] to *.asn1.[ch]
- kbuild: clean up *-asn1.[ch] patterns from top-level Makefile
- .gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
- kbuild: add %.dtb.S and %.dtb to 'targets' automatically
- kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically
- genksyms: generate lexer and parser during build instead of shipping
- kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile
- .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore
- kbuild: use HOSTLDFLAGS for single .c executables" class="message" href="/torvalds/linux/commit/ca71b3ba4c78c2c05b44be9b257a4127223f0b0c">Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kern…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T00:21:30Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="drivers" id="fe69fd0a878b10d190c924b2398bad9c-b4b44899933ab9f8c4fdefe24f2829632788cf60" href="/torvalds/linux/tree/master/drivers">drivers</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull missed timer updates from Thomas Gleixner:
- "This is a branch which got forgotten during the merge window, but it
- contains only fixes and hardware enablement. No fundamental changes.
- - Various fixes for the imx-tpm clocksource driver
- - A new timer driver for the NCPM7xx SoC family"
- * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- clocksource/drivers/imx-tpm: Add different counter width support
- clocksource/drivers/imx-tpm: Correct some registers operation flow
- clocksource/drivers/imx-tpm: Fix typo of clock name
- dt-bindings: timer: tpm: fix typo of clock name
- clocksource/drivers/npcm: Add NPCM7xx timer driver
- dt-binding: timer: document NPCM7xx timer DT bindings" class="message" href="/torvalds/linux/commit/d95c8844399885cd511c6f6395621cc1a9fe2e68">Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T19:44:03Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="firmware" id="74b5b5e9570efc5c0553bb327cd41940-0e0560d2cbbfaf890620b824586b17a82ca076fb" href="/torvalds/linux/tree/master/firmware">firmware</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="kbuild: remove all dummy assignments to obj-
- Now kbuild core scripts create empty built-in.o where necessary.
- Remove "obj- := dummy.o" tricks.
- Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>" class="message" href="/torvalds/linux/commit/bf070bb0e6c62ba3075db0a666763ba52c677102">kbuild: remove all dummy assignments to obj-</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-11-18T02:46:06Z">Nov 18, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="fs" id="bc7b36fe4d2924e49800d9b3dc4a325c-497d7db03507ad4b7708dbf4fdb784fcdbb7808e" href="/torvalds/linux/tree/master/fs">fs</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'for-4.17-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
- Pull more btrfs updates from David Sterba:
- "We have queued a few more fixes (error handling, log replay,
- softlockup) and the rest is SPDX updates that touche almost all files
- so the diffstat is long"
- * tag 'for-4.17-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
- btrfs: Only check first key for committed tree blocks
- btrfs: add SPDX header to Kconfig
- btrfs: replace GPL boilerplate by SPDX -- sources
- btrfs: replace GPL boilerplate by SPDX -- headers
- Btrfs: fix loss of prealloc extents past i_size after fsync log replay
- Btrfs: clean up resources during umount after trans is aborted
- btrfs: Fix possible softlock on single core machines
- Btrfs: bail out on error during replay_dir_deletes
- Btrfs: fix NULL pointer dereference in log_dir_items" class="message" href="/torvalds/linux/commit/e37563bb6c59a6948aa09beb77ba263600d19792">Merge tag 'for-4.17-part2-tag' of git://git.kernel.org/pub/scm/linux/…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T01:08:35Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="include" id="d436eb0fd9de10b54a828ce6435f7e81-fc91121038d565c5a733e145aa8613c4f3cb2319" href="/torvalds/linux/tree/master/include">include</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull x86 fixes from Thomas Gleixner:
- "A set of fixes and updates for x86:
- - Address a swiotlb regression which was caused by the recent DMA
- rework and made driver fail because dma_direct_supported() returned
- false
- - Fix a signedness bug in the APIC ID validation which caused invalid
- APIC IDs to be detected as valid thereby bloating the CPU possible
- space.
- - Fix inconsisten config dependcy/select magic for the MFD_CS5535
- driver.
- - Fix a corruption of the physical address space bits when encryption
- has reduced the address space and late cpuinfo updates overwrite
- the reduced bit information with the original value.
- - Dominiks syscall rework which consolidates the architecture
- specific syscall functions so all syscalls can be wrapped with the
- same macros. This allows to switch x86/64 to struct pt_regs based
- syscalls. Extend the clearing of user space controlled registers in
- the entry patch to the lower registers"
- * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- x86/apic: Fix signedness bug in APIC ID validity checks
- x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
- x86/olpc: Fix inconsistent MFD_CS5535 configuration
- swiotlb: Use dma_direct_supported() for swiotlb_ops
- syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention
- syscalls/core, syscalls/x86: Rename struct pt_regs-based sys_*() to __x64_sys_*()
- syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
- syscalls/core, syscalls/x86: Clean up syscall stub naming convention
- syscalls/x86: Extend register clearing on syscall entry to lower registers
- syscalls/x86: Unconditionally enable 'struct pt_regs' based syscalls on x86_64
- syscalls/x86: Use 'struct pt_regs' based syscall calling for IA32_EMULATION and x32
- syscalls/core: Prepare CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y for compat syscalls
- syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
- syscalls/core: Introduce CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
- x86/syscalls: Don't pointlessly reload the system call number
- x86/mm: Fix documentation of module mapping range with 4-level paging
- x86/cpuid: Switch to 'static const' specifier" class="message" href="/torvalds/linux/commit/9fb71c2f230df44bdd237e9a4457849a3909017d">Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-15T23:12:35Z">Apr 15, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="init" id="e37f0136aa3ffaf149b351f6a4c948e9-c59677122774f4f1c767f4db3600848c4f64fe80" href="/torvalds/linux/tree/master/init">init</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull x86 fixes from Thomas Gleixner:
- "A set of fixes and updates for x86:
- - Address a swiotlb regression which was caused by the recent DMA
- rework and made driver fail because dma_direct_supported() returned
- false
- - Fix a signedness bug in the APIC ID validation which caused invalid
- APIC IDs to be detected as valid thereby bloating the CPU possible
- space.
- - Fix inconsisten config dependcy/select magic for the MFD_CS5535
- driver.
- - Fix a corruption of the physical address space bits when encryption
- has reduced the address space and late cpuinfo updates overwrite
- the reduced bit information with the original value.
- - Dominiks syscall rework which consolidates the architecture
- specific syscall functions so all syscalls can be wrapped with the
- same macros. This allows to switch x86/64 to struct pt_regs based
- syscalls. Extend the clearing of user space controlled registers in
- the entry patch to the lower registers"
- * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- x86/apic: Fix signedness bug in APIC ID validity checks
- x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
- x86/olpc: Fix inconsistent MFD_CS5535 configuration
- swiotlb: Use dma_direct_supported() for swiotlb_ops
- syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention
- syscalls/core, syscalls/x86: Rename struct pt_regs-based sys_*() to __x64_sys_*()
- syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
- syscalls/core, syscalls/x86: Clean up syscall stub naming convention
- syscalls/x86: Extend register clearing on syscall entry to lower registers
- syscalls/x86: Unconditionally enable 'struct pt_regs' based syscalls on x86_64
- syscalls/x86: Use 'struct pt_regs' based syscall calling for IA32_EMULATION and x32
- syscalls/core: Prepare CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y for compat syscalls
- syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
- syscalls/core: Introduce CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
- x86/syscalls: Don't pointlessly reload the system call number
- x86/mm: Fix documentation of module mapping range with 4-level paging
- x86/cpuid: Switch to 'static const' specifier" class="message" href="/torvalds/linux/commit/9fb71c2f230df44bdd237e9a4457849a3909017d">Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-15T23:12:35Z">Apr 15, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="ipc" id="5ac8bf6fc7652745573f0ef24a8ab513-aee4693fda2435739275693e339df712537a4a69" href="/torvalds/linux/tree/master/ipc">ipc</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="ipc/shm: fix use-after-free of shm file via remap_file_pages()
- syzbot reported a use-after-free of shm_file_data(file)->file->f_op in
- shm_get_unmapped_area(), called via sys_remap_file_pages().
- Unfortunately it couldn't generate a reproducer, but I found a bug which
- I think caused it. When remap_file_pages() is passed a full System V
- shared memory segment, the memory is first unmapped, then a new map is
- created using the ->vm_file. Between these steps, the shm ID can be
- removed and reused for a new shm segment. But, shm_mmap() only checks
- whether the ID is currently valid before calling the underlying file's
- ->mmap(); it doesn't check whether it was reused. Thus it can use the
- wrong underlying file, one that was already freed.
- Fix this by making the "outer" shm file (the one that gets put in
- ->vm_file) hold a reference to the real shm file, and by making
- __shm_open() require that the file associated with the shm ID matches
- the one associated with the "outer" file.
- Taking the reference to the real shm file is needed to fully solve the
- problem, since otherwise sfd->file could point to a freed file, which
- then could be reallocated for the reused shm ID, causing the wrong shm
- segment to be mapped (and without the required permission checks).
- Commit 1ac0b6dec656 ("ipc/shm: handle removed segments gracefully in
- shm_mmap()") almost fixed this bug, but it didn't go far enough because
- it didn't consider the case where the shm ID is reused.
- The following program usually reproduces this bug:
- #include <stdlib.h>
- #include <sys/shm.h>
- #include <sys/syscall.h>
- #include <unistd.h>
- int main()
- {
- int is_parent = (fork() != 0);
- srand(getpid());
- for (;;) {
- int id = shmget(0xF00F, 4096, IPC_CREAT|0700);
- if (is_parent) {
- void *addr = shmat(id, NULL, 0);
- usleep(rand() % 50);
- while (!syscall(__NR_remap_file_pages, addr, 4096, 0, 0, 0));
- } else {
- usleep(rand() % 50);
- shmctl(id, IPC_RMID, NULL);
- }
- }
- }
- It causes the following NULL pointer dereference due to a 'struct file'
- being used while it's being freed. (I couldn't actually get a KASAN
- use-after-free splat like in the syzbot report. But I think it's
- possible with this bug; it would just take a more extraordinary race...)
- BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
- PGD 0 P4D 0
- Oops: 0000 [#1] SMP NOPTI
- CPU: 9 PID: 258 Comm: syz_ipc Not tainted 4.16.0-05140-gf8cf2f16a7c95 #189
- Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-20171110_100015-anatol 04/01/2014
- RIP: 0010:d_inode include/linux/dcache.h:519 [inline]
- RIP: 0010:touch_atime+0x25/0xd0 fs/inode.c:1724
- [...]
- Call Trace:
- file_accessed include/linux/fs.h:2063 [inline]
- shmem_mmap+0x25/0x40 mm/shmem.c:2149
- call_mmap include/linux/fs.h:1789 [inline]
- shm_mmap+0x34/0x80 ipc/shm.c:465
- call_mmap include/linux/fs.h:1789 [inline]
- mmap_region+0x309/0x5b0 mm/mmap.c:1712
- do_mmap+0x294/0x4a0 mm/mmap.c:1483
- do_mmap_pgoff include/linux/mm.h:2235 [inline]
- SYSC_remap_file_pages mm/mmap.c:2853 [inline]
- SyS_remap_file_pages+0x232/0x310 mm/mmap.c:2769
- do_syscall_64+0x64/0x1a0 arch/x86/entry/common.c:287
- entry_SYSCALL_64_after_hwframe+0x42/0xb7
- [ebiggers@google.com: add comment]
- Link: http://lkml.kernel.org/r/20180410192850.235835-1-ebiggers3@gmail.com
- Link: http://lkml.kernel.org/r/20180409043039.28915-1-ebiggers3@gmail.com
- Reported-by: syzbot+d11f321e7f1923157eac80aa990b446596f46439@syzkaller.appspotmail.com
- Fixes: c8d78c1823f4 ("mm: replace remap_file_pages() syscall with emulation")
- Signed-off-by: Eric Biggers <ebiggers@google.com>
- Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
- Acked-by: Davidlohr Bueso <dbueso@suse.de>
- Cc: Manfred Spraul <manfred@colorfullife.com>
- Cc: "Eric W . Biederman" <ebiederm@xmission.com>
- Cc: <stable@vger.kernel.org>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/3f05317d9889ab75c7190dcd39491d2a97921984">ipc/shm: fix use-after-free of shm file via remap_file_pages()</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-14T00:10:27Z">Apr 14, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="kernel" id="50484c19f1afdaf3841a0d821ed393d2-805b9e51205998667bfb8b0e1e9ab758d877e4b0" href="/torvalds/linux/tree/master/kernel">kernel</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull x86 fixes from Thomas Gleixner:
- "A set of fixes and updates for x86:
- - Address a swiotlb regression which was caused by the recent DMA
- rework and made driver fail because dma_direct_supported() returned
- false
- - Fix a signedness bug in the APIC ID validation which caused invalid
- APIC IDs to be detected as valid thereby bloating the CPU possible
- space.
- - Fix inconsisten config dependcy/select magic for the MFD_CS5535
- driver.
- - Fix a corruption of the physical address space bits when encryption
- has reduced the address space and late cpuinfo updates overwrite
- the reduced bit information with the original value.
- - Dominiks syscall rework which consolidates the architecture
- specific syscall functions so all syscalls can be wrapped with the
- same macros. This allows to switch x86/64 to struct pt_regs based
- syscalls. Extend the clearing of user space controlled registers in
- the entry patch to the lower registers"
- * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- x86/apic: Fix signedness bug in APIC ID validity checks
- x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
- x86/olpc: Fix inconsistent MFD_CS5535 configuration
- swiotlb: Use dma_direct_supported() for swiotlb_ops
- syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention
- syscalls/core, syscalls/x86: Rename struct pt_regs-based sys_*() to __x64_sys_*()
- syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
- syscalls/core, syscalls/x86: Clean up syscall stub naming convention
- syscalls/x86: Extend register clearing on syscall entry to lower registers
- syscalls/x86: Unconditionally enable 'struct pt_regs' based syscalls on x86_64
- syscalls/x86: Use 'struct pt_regs' based syscall calling for IA32_EMULATION and x32
- syscalls/core: Prepare CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y for compat syscalls
- syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
- syscalls/core: Introduce CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
- x86/syscalls: Don't pointlessly reload the system call number
- x86/mm: Fix documentation of module mapping range with 4-level paging
- x86/cpuid: Switch to 'static const' specifier" class="message" href="/torvalds/linux/commit/9fb71c2f230df44bdd237e9a4457849a3909017d">Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-15T23:12:35Z">Apr 15, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="lib" id="e8acc63b1e238f3255c900eed37254b8-be675121332b79f726f6771ca97c21e495282cb2" href="/torvalds/linux/tree/master/lib">lib</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
- Pull x86 fixes from Thomas Gleixner:
- "A set of fixes and updates for x86:
- - Address a swiotlb regression which was caused by the recent DMA
- rework and made driver fail because dma_direct_supported() returned
- false
- - Fix a signedness bug in the APIC ID validation which caused invalid
- APIC IDs to be detected as valid thereby bloating the CPU possible
- space.
- - Fix inconsisten config dependcy/select magic for the MFD_CS5535
- driver.
- - Fix a corruption of the physical address space bits when encryption
- has reduced the address space and late cpuinfo updates overwrite
- the reduced bit information with the original value.
- - Dominiks syscall rework which consolidates the architecture
- specific syscall functions so all syscalls can be wrapped with the
- same macros. This allows to switch x86/64 to struct pt_regs based
- syscalls. Extend the clearing of user space controlled registers in
- the entry patch to the lower registers"
- * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
- x86/apic: Fix signedness bug in APIC ID validity checks
- x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption
- x86/olpc: Fix inconsistent MFD_CS5535 configuration
- swiotlb: Use dma_direct_supported() for swiotlb_ops
- syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention
- syscalls/core, syscalls/x86: Rename struct pt_regs-based sys_*() to __x64_sys_*()
- syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
- syscalls/core, syscalls/x86: Clean up syscall stub naming convention
- syscalls/x86: Extend register clearing on syscall entry to lower registers
- syscalls/x86: Unconditionally enable 'struct pt_regs' based syscalls on x86_64
- syscalls/x86: Use 'struct pt_regs' based syscall calling for IA32_EMULATION and x32
- syscalls/core: Prepare CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y for compat syscalls
- syscalls/x86: Use 'struct pt_regs' based syscall calling convention for 64-bit syscalls
- syscalls/core: Introduce CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
- x86/syscalls: Don't pointlessly reload the system call number
- x86/mm: Fix documentation of module mapping range with 4-level paging
- x86/cpuid: Switch to 'static const' specifier" class="message" href="/torvalds/linux/commit/9fb71c2f230df44bdd237e9a4457849a3909017d">Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-15T23:12:35Z">Apr 15, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="mm" id="b3cd915d758008bd19d0f2428fbb354a-55740eed6bc8df36db776621c1011c9a8c9024ec" href="/torvalds/linux/tree/master/mm">mm</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="mm, slab: reschedule cache_reap() on the same CPU
- cache_reap() is initially scheduled in start_cpu_timer() via
- schedule_delayed_work_on(). But then the next iterations are scheduled
- via schedule_delayed_work(), i.e. using WORK_CPU_UNBOUND.
- Thus since commit ef557180447f ("workqueue: schedule WORK_CPU_UNBOUND
- work on wq_unbound_cpumask CPUs") there is no guarantee the future
- iterations will run on the originally intended cpu, although it's still
- preferred. I was able to demonstrate this with
- /sys/module/workqueue/parameters/debug_force_rr_cpu. IIUC, it may also
- happen due to migrating timers in nohz context. As a result, some cpu's
- would be calling cache_reap() more frequently and others never.
- This patch uses schedule_delayed_work_on() with the current cpu when
- scheduling the next iteration.
- Link: http://lkml.kernel.org/r/20180411070007.32225-1-vbabka@suse.cz
- Fixes: ef557180447f ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs")
- Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
- Acked-by: Pekka Enberg <penberg@kernel.org>
- Acked-by: Christoph Lameter <cl@linux.com>
- Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
- Cc: David Rientjes <rientjes@google.com>
- Cc: Tejun Heo <tj@kernel.org>
- Cc: Lai Jiangshan <jiangshanlai@gmail.com>
- Cc: John Stultz <john.stultz@linaro.org>
- Cc: Thomas Gleixner <tglx@linutronix.de>
- Cc: Stephen Boyd <sboyd@kernel.org>
- Cc: <stable@vger.kernel.org>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/a9f2a846f0503e7d729f552e3ccfe2279010fe94">mm, slab: reschedule cache_reap() on the same CPU</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-14T00:10:27Z">Apr 14, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="net" id="40fa73c9d0083043c6576dd2b40511e4-34c638cf0cafb978f9a37f3f21afb510bc31422e" href="/torvalds/linux/tree/master/net">net</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
- Pull more Kbuild updates from Masahiro Yamada:
- - pass HOSTLDFLAGS when compiling single .c host programs
- - build genksyms lexer and parser files instead of using shipped
- versions
- - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency
- - let the top .gitignore globally ignore artifacts generated by flex,
- bison, and asn1_compiler
- - let the top Makefile globally clean artifacts generated by flex,
- bison, and asn1_compiler
- - use safer .SECONDARY marker instead of .PRECIOUS to prevent
- intermediate files from being removed
- - support -fmacro-prefix-map option to make __FILE__ a relative path
- - fix # escaping to prepare for the future GNU Make release
- - clean up deb-pkg by using debian tools instead of handrolled
- source/changes generation
- - improve rpm-pkg portability by supporting kernel-install as a
- fallback of new-kernel-pkg
- - extend Kconfig listnewconfig target to provide more information
- * tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
- kconfig: extend output of 'listnewconfig'
- kbuild: rpm-pkg: use kernel-install as a fallback for new-kernel-pkg
- Kbuild: fix # escaping in .cmd files for future Make
- kbuild: deb-pkg: split generating packaging and build
- kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
- kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers
- kbuild: rename *-asn1.[ch] to *.asn1.[ch]
- kbuild: clean up *-asn1.[ch] patterns from top-level Makefile
- .gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
- kbuild: add %.dtb.S and %.dtb to 'targets' automatically
- kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically
- genksyms: generate lexer and parser during build instead of shipping
- kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile
- .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore
- kbuild: use HOSTLDFLAGS for single .c executables" class="message" href="/torvalds/linux/commit/ca71b3ba4c78c2c05b44be9b257a4127223f0b0c">Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kern…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T00:21:30Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="samples" id="6ef9161b900632671022358216c7dfe7-c628b6a4dc08f30945ebe19fef6c02f478914dde" href="/torvalds/linux/tree/master/samples">samples</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'rproc-v4.17' of git://github.com/andersson/remoteproc
- Pull remoteproc updates from Bjorn Andersson:
- - add support for generating coredumps for remoteprocs using
- devcoredump
- - add the Qualcomm sysmon driver for intra-remoteproc crash handling
- - a number of fixes in Qualcomm and IMX drivers
- * tag 'rproc-v4.17' of git://github.com/andersson/remoteproc:
- remoteproc: fix null pointer dereference on glink only platforms
- soc: qcom: qmi: add CONFIG_NET dependency
- remoteproc: imx_rproc: Slightly simplify code in 'imx_rproc_probe()'
- remoteproc: imx_rproc: Re-use existing error handling path in 'imx_rproc_probe()'
- remoteproc: imx_rproc: Fix an error handling path in 'imx_rproc_probe()'
- samples: Introduce Qualcomm QMI sample client
- remoteproc: qcom: Introduce sysmon
- remoteproc: Pass type of shutdown to subdev remove
- remoteproc: qcom: Register segments for core dump
- soc: qcom: mdt-loader: Return relocation base
- remoteproc: Rename "load_rsc_table" to "parse_fw"
- remoteproc: Add remote processor coredump support
- remoteproc: Remove null character write of shared mem" class="message" href="/torvalds/linux/commit/92589cbdda677a84ca5e485e1083c7d3bdcfc7b9">Merge tag 'rproc-v4.17' of git://github.com/andersson/remoteproc</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-10T19:09:27Z">Apr 10, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="scripts" id="d6c5855a62cf32a4dadbc2831f0f295f-466f364a8bdfbd10bf404726dff5cdeece367056" href="/torvalds/linux/tree/master/scripts">scripts</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
- Pull more Kbuild updates from Masahiro Yamada:
- - pass HOSTLDFLAGS when compiling single .c host programs
- - build genksyms lexer and parser files instead of using shipped
- versions
- - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency
- - let the top .gitignore globally ignore artifacts generated by flex,
- bison, and asn1_compiler
- - let the top Makefile globally clean artifacts generated by flex,
- bison, and asn1_compiler
- - use safer .SECONDARY marker instead of .PRECIOUS to prevent
- intermediate files from being removed
- - support -fmacro-prefix-map option to make __FILE__ a relative path
- - fix # escaping to prepare for the future GNU Make release
- - clean up deb-pkg by using debian tools instead of handrolled
- source/changes generation
- - improve rpm-pkg portability by supporting kernel-install as a
- fallback of new-kernel-pkg
- - extend Kconfig listnewconfig target to provide more information
- * tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
- kconfig: extend output of 'listnewconfig'
- kbuild: rpm-pkg: use kernel-install as a fallback for new-kernel-pkg
- Kbuild: fix # escaping in .cmd files for future Make
- kbuild: deb-pkg: split generating packaging and build
- kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
- kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers
- kbuild: rename *-asn1.[ch] to *.asn1.[ch]
- kbuild: clean up *-asn1.[ch] patterns from top-level Makefile
- .gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
- kbuild: add %.dtb.S and %.dtb to 'targets' automatically
- kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically
- genksyms: generate lexer and parser during build instead of shipping
- kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile
- .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore
- kbuild: use HOSTLDFLAGS for single .c executables" class="message" href="/torvalds/linux/commit/ca71b3ba4c78c2c05b44be9b257a4127223f0b0c">Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kern…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T00:21:30Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="security" id="e91e6348157868de9dd8b25c81aebfb9-587452e1f5abced028a5079ed4314d384e82c98c" href="/torvalds/linux/tree/master/security">security</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'apparmor-pr-2018-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
- Pull apparmor updates from John Johansen:
- "Features:
- - add base infrastructure for socket mediation. ABI bump and
- additional checks to ensure only v8 compliant policy uses socket af
- mediation.
- - improve and cleanup dfa verification
- - improve profile attachment logic
- - improve overlapping expression handling
- - add the xattr matching to the attachment logic
- - improve signal mediation handling with stacked labels
- - improve handling of no_new_privs in a label stack
- Cleanups and changes:
- - use dfa to parse string split
- - bounded version of label_parse
- - proper line wrap nulldfa.in
- - split context out into task and cred naming to better match usage
- - simplify code in aafs
- Bug fixes:
- - fix display of .ns_name for containers
- - fix resource audit messages when auditing peer
- - fix logging of the existence test for signals
- - fix resource audit messages when auditing peer
- - fix display of .ns_name for containers
- - fix an error code in verify_table_headers()
- - fix memory leak on buffer on error exit path
- - fix error returns checks by making size a ssize_t"
- * tag 'apparmor-pr-2018-04-10' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: (36 commits)
- apparmor: fix memory leak on buffer on error exit path
- apparmor: fix dangling symlinks to policy rawdata after replacement
- apparmor: Fix an error code in verify_table_headers()
- apparmor: fix error returns checks by making size a ssize_t
- apparmor: update MAINTAINERS file git and wiki locations
- apparmor: remove POLICY_MEDIATES_SAFE
- apparmor: add base infastructure for socket mediation
- apparmor: improve overlapping domain attachment resolution
- apparmor: convert attaching profiles via xattrs to use dfa matching
- apparmor: Add support for attaching profiles via xattr, presence and value
- apparmor: cleanup: simplify code to get ns symlink name
- apparmor: cleanup create_aafs() error path
- apparmor: dfa split verification of table headers
- apparmor: dfa add support for state differential encoding
- apparmor: dfa move character match into a macro
- apparmor: update domain transitions that are subsets of confinement at nnp
- apparmor: move context.h to cred.h
- apparmor: move task related defines and fns to task.X files
- apparmor: cleanup, drop unused fn __aa_task_is_confined()
- apparmor: cleanup fixup description of aa_replace_profiles
- ..." class="message" href="/torvalds/linux/commit/80a17a5f501ea048d86f81d629c94062b76610d4">Merge tag 'apparmor-pr-2018-04-10' of git://git.kernel.org/pub/scm/li…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-13T22:38:53Z">Apr 13, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="sound" id="0b8263d341de01f741e4deadfb18f9eb-9f2023c06968335c3b47959d377653c0853ac5a1" href="/torvalds/linux/tree/master/sound">sound</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'drm-fixes-for-v4.17-rc1' of git://people.freedesktop.org/~airlied/linux
- Pull drm fixes from Dave Airlie:
- "One omap, and one alsa pm fix (we merged the breaking patch via drm
- tree).
- Otherwise it's two bunches of amdgpu fixes, removing an unneeded file,
- some DC fixes, HDMI audio regression fix, and some vega12 fixes"
- * tag 'drm-fixes-for-v4.17-rc1' of git://people.freedesktop.org/~airlied/linux: (27 commits)
- Revert "drm/amd/display: disable CRTCs with NULL FB on their primary plane (V2)"
- Revert "drm/amd/display: fix dereferencing possible ERR_PTR()"
- drm/amd/display: Fix regamma not affecting full-intensity color values
- drm/amd/display: Fix FBC text console corruption
- drm/amd/display: Only register backlight device if embedded panel connected
- drm/amd/display: fix brightness level after resume from suspend
- drm/amd/display: HDMI has no sound after Panel power off/on
- drm/amdgpu: add MP1 and THM hw ip base reg offset
- drm/amdgpu: fix null pointer panic with direct fw loading on gpu reset
- drm/radeon: add PX quirk for Asus K73TK
- drm/omap: fix crash if there's no video PLL
- drm/amdgpu: Fix memory leaks at amdgpu_init() error path
- drm/amdgpu: Fix PCIe lane width calculation
- drm/radeon: Fix PCIe lane width calculation
- drm/amdgpu/si: implement get/set pcie_lanes asic callback
- drm/amdgpu: Add support for SRBM selection v3
- Revert "drm/amdgpu: Don't change preferred domian when fallback GTT v5"
- drm/amd/powerply: fix power reading on Fiji
- drm/amd/powerplay: Enable ACG SS feature
- drm/amdgpu/sdma: fix mask in emit_pipeline_sync
- ..." class="message" href="/torvalds/linux/commit/16e205cf42da1f497b10a4a24f563e6c0d574eec">Merge tag 'drm-fixes-for-v4.17-rc1' of git://people.freedesktop.org/~…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-13T03:56:10Z">Apr 13, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="tools" id="4a931512ce65bdc9ca6808adf92d8783-a99d1db9698e2b20ab1dc31e242f01b9606cc6a2" href="/torvalds/linux/tree/master/tools">tools</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
- Pull kvm fixes from Paolo Bonzini:
- "Bug fixes, plus a new test case and the associated infrastructure for
- writing nested virtualization tests"
- * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
- kvm: selftests: add vmx_tsc_adjust_test
- kvm: x86: move MSR_IA32_TSC handling to x86.c
- X86/KVM: Properly update 'tsc_offset' to represent the running guest
- kvm: selftests: add -std=gnu99 cflags
- x86: Add check for APIC access address for vmentry of L2 guests
- KVM: X86: fix incorrect reference of trace_kvm_pi_irte_update
- X86/KVM: Do not allow DISABLE_EXITS_MWAIT when LAPIC ARAT is not available
- kvm: selftests: fix spelling mistake: "divisable" and "divisible"
- X86/VMX: Disable VMX preemption timer if MWAIT is not intercepted" class="message" href="/torvalds/linux/commit/e6d9bfdeb4395fa5397996b2c3111b5909f41a1b">Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T18:24:28Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="usr" id="0a744893951e0d1706ff74a7afccf561-6e6ac7892e865aa6050e6d0d2497da89f98a4c03" href="/torvalds/linux/tree/master/usr">usr</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="kbuild: rename built-in.o to built-in.a
- Incremental linking is gone, so rename built-in.o to built-in.a, which
- is the usual extension for archive files.
- This patch does two things, first is a simple search/replace:
- git grep -l 'built-in\.o' | xargs sed -i 's/built-in\.o/built-in\.a/g'
- The second is to invert nesting of nested text manipulations to avoid
- filtering built-in.a out from libs-y2:
- -libs-y2 := $(filter-out %.a, $(patsubst %/, %/built-in.a, $(libs-y)))
- +libs-y2 := $(patsubst %/, %/built-in.a, $(filter-out %.a, $(libs-y)))
- Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
- Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>" class="message" href="/torvalds/linux/commit/f49821ee32b76b1a356fab17316eb62430182ecf">kbuild: rename built-in.o to built-in.a</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-25T17:01:19Z">Mar 25, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="virt" id="a385e96c9dcb7d1865a718934a8798fc-072a69f127b229a91b45755253bcbc3aca67a5c0" href="/torvalds/linux/tree/master/virt">virt</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kvm-arm-for-v4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm
- KVM/ARM updates for v4.17
- - VHE optimizations
- - EL2 address space randomization
- - Variant 3a mitigation for Cortex-A57 and A72
- - The usual vgic fixes
- - Various minor tidying-up" class="message" href="/torvalds/linux/commit/abe7a4586f0cf0ef35ed5f713ccfd4eb0770a5ac">Merge tag 'kvm-arm-for-v4.17' of git://git.kernel.org/pub/scm/linux/k…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-28T14:09:09Z">Mar 28, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".clang-format" id="69a68f7ce1ea3687a38d8e4705e6fa48-faffc0d5af4eeb24ab55c5091fc965897eabbb7a" href="/torvalds/linux/blob/master/.clang-format">.clang-format</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="clang-format: add configuration file
- clang-format is a tool to format C/C++/... code according to a set of
- rules and heuristics. Like most tools, it is not perfect nor covers
- every single case, but it is good enough to be helpful.
- In particular, it is useful for quickly re-formatting blocks of code
- automatically, for reviewing full files in order to spot coding style
- mistakes, typos and possible improvements. It is also handy for sorting
- ``#includes``, for aligning variables and macros, for reflowing text and
- other similar tasks. It also serves as a teaching tool/guide for
- newcomers.
- The tool itself has been already included in the repositories of popular
- Linux distributions for a long time. The rules in this file are
- intended for clang-format >= 4, which is easily available in most
- distributions.
- This commit adds the configuration file that contains the rules that the
- tool uses to know how to format the code according to the kernel coding
- style. This gives us several advantages:
- * clang-format works out of the box with reasonable defaults;
- avoiding that everyone has to re-do the configuration.
- * Everyone agrees (eventually) on what is the most useful default
- configuration for most of the kernel.
- * If it becomes commonplace among kernel developers, clang-format
- may feel compelled to support us better. They already recognize
- the Linux kernel and its style in their documentation and in one
- of the style sub-options.
- Some of clang-format's features relevant for the kernel are:
- * Uses clang's tooling support behind the scenes to parse and rewrite
- the code. It is not based on ad-hoc regexps.
- * Supports reasonably well the Linux kernel coding style.
- * Fast enough to be used at the press of a key.
- * There are already integrations (either built-in or third-party)
- for many common editors used by kernel developers (e.g. vim,
- emacs, Sublime, Atom...) that allow you to format an entire file
- or, more usefully, just your selection.
- * Able to parse unified diffs -- you can, for instance, reformat
- only the lines changed by a git commit.
- * Able to reflow text comments as well.
- * Widely supported and used by hundreds of developers in highly
- complex projects and organizations (e.g. the LLVM project itself,
- Chromium, WebKit, Google, Mozilla...). Therefore, it will be
- supported for a long time.
- See more information about the tool at:
- https://clang.llvm.org/docs/ClangFormat.html
- https://clang.llvm.org/docs/ClangFormatStyleOptions.html
- Link: http://lkml.kernel.org/r/20180318171632.qfkemw3mwbcukth6@gmail.com
- Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
- Cc: Randy Dunlap <rdunlap@infradead.org>
- Cc: Andy Whitcroft <apw@canonical.com>
- Cc: Joe Perches <joe@perches.com>
- Cc: Jonathan Corbet <corbet@lwn.net>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/d4ef8d3ff005c70f6c9e2ffea14cc65fc8fe328d">clang-format: add configuration file</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-11T17:28:35Z">Apr 11, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".cocciconfig" id="c609419528fc3de9e04320067ec6086b-43967c6b20151ee126db08e24758e3c789bcb844" href="/torvalds/linux/blob/master/.cocciconfig">.cocciconfig</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="scripts: add Linux .cocciconfig for coccinelle
- Coccinelle supports reading .cocciconfig, the order of precedence for
- variables for .cocciconfig is as follows:
- o Your current user's home directory is processed first
- o Your directory from which spatch is called is processed next
- o The directory provided with the --dir option is processed last, if used
- Since coccicheck runs through make, it naturally runs from the kernel
- proper dir, as such the second rule above would be implied for picking up a
- .cocciconfig when using 'make coccicheck'.
- 'make coccicheck' also supports using M= targets.If you do not supply
- any M= target, it is assumed you want to target the entire kernel.
- The kernel coccicheck script has:
- if [ "$KBUILD_EXTMOD" = "" ] ; then
- OPTIONS="--dir $srctree $COCCIINCLUDE"
- else
- OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE"
- fi
- KBUILD_EXTMOD is set when an explicit target with M= is used. For both cases
- the spatch --dir argument is used, as such third rule applies when
- whether M= is used or not, and when M= is used the target directory can
- have its own .cocciconfig file. When M= is not passed as an argument to
- coccicheck the target directory is the same as the directory from where
- spatch was called.
- If not using the kernel's coccicheck target, keep the above precedence order
- logic of .cocciconfig reading. If using the kernel's coccicheck target,
- override any of the kernel's .coccicheck's settings using SPFLAGS.
- We help Coccinelle when used against Linux with a set of sensible defaults
- options for Linux with our own Linux .cocciconfig. This hints to coccinelle
- git can be used for 'git grep' queries over coccigrep. A timeout of 200
- seconds should suffice for now.
- The options picked up by coccinelle when reading a .cocciconfig do not appear
- as arguments to spatch processes running on your system, to confirm what
- options will be used by Coccinelle run:
- spatch --print-options-only
- You can override with your own preferred index option by using SPFLAGS.
- Coccinelle supports both glimpse and idutils. Glimpse had historically
- provided the best performance, however recent benchmarks reveal idutils
- is performing just as well. Due to some recent fixes however you however
- will need at least coccinelle >= 1.0.6 if using idutils.
- Coccinelle carries a script scripts/idutils_index.sh which creates the
- idutils database with as follows:
- mkid -i C --output .id-utils.index
- If using just "--use-idutils" coccinelle expects your idutils database to be
- on the top level of the kernel as a file named ".id-utils.index". If you do
- not use this you can symlink your database file to it, or you can specify the
- database file following the "--use-idutils" argument. Examples:
- make SPFLAGS=--use-idutils coccicheck
- This assumes you have $srctree/.id-utils.index, where $srctree is
- the top level of the kernel.
- make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck
- Here you specify the full path of the idutils ID database. Using
- .cocciconfig is possible, however given the order of precedence followed
- by Coccinelle, and since the kernel now carries its own .cocciconfig,
- you will need to use SPFLAGS to use idutils if desired.
- v4:
- o Recommend upgrade for using idutils with coccinelle due to some
- recent fixes.
- o Refer to using --print-options-only for testing what options are
- picked up by .cocciconfig reading.
- o Expand commit log considerably explaining *why* .cocconfig from
- two precedence rules are used when using coccicheck, and how to
- properly override these if needed.
- o Expand Documentation/coccinelle.txt
- v3: Expand commit log a bit more
- Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
- Acked-by: Julia Lawall <julia.lawall@lip6.fr>
- Signed-off-by: Michal Marek <mmarek@suse.com>" class="message" href="/torvalds/linux/commit/dd951fc1b67b6511d6c8f0449f3d451df374ebce">scripts: add Linux .cocciconfig for coccinelle</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2016-07-22T10:13:39Z">Jul 22, 2016</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".get_maintainer.ignore" id="2c1c6da1e102259cafa8aa6971a6f10a-cca6d870f7a57499ffd8be4b3abacaf9fccde9c1" href="/torvalds/linux/blob/master/.get_maintainer.ignore">.get_maintainer.ignore</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Add hch to .get_maintainer.ignore
- While the idea behind get_maintainer seems highly useful it's
- unfortunately way to trigger happy to grab people that once had a few
- commits to files. For someone like me who does a lot of tree-wide API
- work that leads to an incredible amount of Cc spam.
- Signed-off-by: Christoph Hellwig <hch@lst.de>
- Cc: Joe Perches <joe@perches.com>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/e525293d97b93a04038e7dc15cee3e9075c32dbd">Add hch to .get_maintainer.ignore</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2015-08-21T21:30:10Z">Aug 21, 2015</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitattributes" id="fc723d30b02a4cca7a534518111c1a66-89c411b5ce6bb081976d7efb48c2158bb4b2bb86" href="/torvalds/linux/blob/master/.gitattributes">.gitattributes</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title=".gitattributes: set git diff driver for C source code files
- Git can be told to apply language-specific rules when generating diffs.
- Enable this for C source code files (*.c and *.h) so that function names
- are printed right. Specifically, doing so prevents "git diff" from
- mistakenly considering unindented goto labels as function names.
- Link: http://lkml.kernel.org/r/20160907143403.1449324f@endymion
- Signed-off-by: Jean Delvare <jdelvare@suse.de>
- Cc: Peter Zijlstra <peterz@infradead.org>
- Cc: Joe Perches <joe@perches.com>
- Cc: Jonathan Corbet <corbet@lwn.net>
- Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>" class="message" href="/torvalds/linux/commit/218dd85887da3d7d08119de18e9d325fcf30d7a4">.gitattributes: set git diff driver for C source code files</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2016-10-08T01:46:30Z">Oct 8, 2016</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitignore" id="a084b794bc0759e7a6b77810e01874f2-97ba6b79834c6d20d9612e6b383fc5c69d196e48" href="/torvalds/linux/blob/master/.gitignore">.gitignore</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
- Pull more Kbuild updates from Masahiro Yamada:
- - pass HOSTLDFLAGS when compiling single .c host programs
- - build genksyms lexer and parser files instead of using shipped
- versions
- - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency
- - let the top .gitignore globally ignore artifacts generated by flex,
- bison, and asn1_compiler
- - let the top Makefile globally clean artifacts generated by flex,
- bison, and asn1_compiler
- - use safer .SECONDARY marker instead of .PRECIOUS to prevent
- intermediate files from being removed
- - support -fmacro-prefix-map option to make __FILE__ a relative path
- - fix # escaping to prepare for the future GNU Make release
- - clean up deb-pkg by using debian tools instead of handrolled
- source/changes generation
- - improve rpm-pkg portability by supporting kernel-install as a
- fallback of new-kernel-pkg
- - extend Kconfig listnewconfig target to provide more information
- * tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
- kconfig: extend output of 'listnewconfig'
- kbuild: rpm-pkg: use kernel-install as a fallback for new-kernel-pkg
- Kbuild: fix # escaping in .cmd files for future Make
- kbuild: deb-pkg: split generating packaging and build
- kbuild: use -fmacro-prefix-map to make __FILE__ a relative path
- kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers
- kbuild: rename *-asn1.[ch] to *.asn1.[ch]
- kbuild: clean up *-asn1.[ch] patterns from top-level Makefile
- .gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
- kbuild: add %.dtb.S and %.dtb to 'targets' automatically
- kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically
- genksyms: generate lexer and parser during build instead of shipping
- kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile
- .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore
- kbuild: use HOSTLDFLAGS for single .c executables" class="message" href="/torvalds/linux/commit/ca71b3ba4c78c2c05b44be9b257a4127223f0b0c">Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kern…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T00:21:30Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".mailmap" id="c9d540715cff3469b65ddd01f614848b-7fa9d41fbdaf945c807700300c1b3eb4289eb218" href="/torvalds/linux/blob/master/.mailmap">.mailmap</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
- Pull rdma updates from Jason Gunthorpe:
- "Doug and I are at a conference next week so if another PR is sent I
- expect it to only be bug fixes. Parav noted yesterday that there are
- some fringe case behavior changes in his work that he would like to
- fix, and I see that Intel has a number of rc looking patches for HFI1
- they posted yesterday.
- Parav is again the biggest contributor by patch count with his ongoing
- work to enable container support in the RDMA stack, followed by Leon
- doing syzkaller inspired cleanups, though most of the actual fixing
- went to RC.
- There is one uncomfortable series here fixing the user ABI to actually
- work as intended in 32 bit mode. There are lots of notes in the commit
- messages, but the basic summary is we don't think there is an actual
- 32 bit kernel user of drivers/infiniband for several good reasons.
- However we are seeing people want to use a 32 bit user space with 64
- bit kernel, which didn't completely work today. So in fixing it we
- required a 32 bit rxe user to upgrade their userspace. rxe users are
- still already quite rare and we think a 32 bit one is non-existing.
- - Fix RDMA uapi headers to actually compile in userspace and be more
- complete
- - Three shared with netdev pull requests from Mellanox:
- * 7 patches, mostly to net with 1 IB related one at the back).
- This series addresses an IRQ performance issue (patch 1),
- cleanups related to the fix for the IRQ performance problem
- (patches 2-6), and then extends the fragmented completion queue
- support that already exists in the net side of the driver to the
- ib side of the driver (patch 7).
- * Mostly IB, with 5 patches to net that are needed to support the
- remaining 10 patches to the IB subsystem. This series extends
- the current 'representor' framework when the mlx5 driver is in
- switchdev mode from being a netdev only construct to being a
- netdev/IB dev construct. The IB dev is limited to raw Eth queue
- pairs only, but by having an IB dev of this type attached to the
- representor for a switchdev port, it enables DPDK to work on the
- switchdev device.
- * All net related, but needed as infrastructure for the rdma
- driver
- - Updates for the hns, i40iw, bnxt_re, cxgb3, cxgb4, hns drivers
- - SRP performance updates
- - IB uverbs write path cleanup patch series from Leon
- - Add RDMA_CM support to ib_srpt. This is disabled by default. Users
- need to set the port for ib_srpt to listen on in configfs in order
- for it to be enabled
- (/sys/kernel/config/target/srpt/discovery_auth/rdma_cm_port)
- - TSO and Scatter FCS support in mlx4
- - Refactor of modify_qp routine to resolve problems seen while
- working on new code that is forthcoming
- - More refactoring and updates of RDMA CM for containers support from
- Parav
- - mlx5 'fine grained packet pacing', 'ipsec offload' and 'device
- memory' user API features
- - Infrastructure updates for the new IOCTL interface, based on
- increased usage
- - ABI compatibility bug fixes to fully support 32 bit userspace on 64
- bit kernel as was originally intended. See the commit messages for
- extensive details
- - Syzkaller bugs and code cleanups motivated by them"
- * tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (199 commits)
- IB/rxe: Fix for oops in rxe_register_device on ppc64le arch
- IB/mlx5: Device memory mr registration support
- net/mlx5: Mkey creation command adjustments
- IB/mlx5: Device memory support in mlx5_ib
- net/mlx5: Query device memory capabilities
- IB/uverbs: Add device memory registration ioctl support
- IB/uverbs: Add alloc/free dm uverbs ioctl support
- IB/uverbs: Add device memory capabilities reporting
- IB/uverbs: Expose device memory capabilities to user
- RDMA/qedr: Fix wmb usage in qedr
- IB/rxe: Removed GID add/del dummy routines
- RDMA/qedr: Zero stack memory before copying to user space
- IB/mlx5: Add ability to hash by IPSEC_SPI when creating a TIR
- IB/mlx5: Add information for querying IPsec capabilities
- IB/mlx5: Add IPsec support for egress and ingress
- {net,IB}/mlx5: Add ipsec helper
- IB/mlx5: Add modify_flow_action_esp verb
- IB/mlx5: Add implementation for create and destroy action_xfrm
- IB/uverbs: Introduce ESP steering match filter
- IB/uverbs: Add modify ESP flow_action
- ..." class="message" href="/torvalds/linux/commit/19fd08b85bc7e0502b55cd726f466df82ee7e777">Merge tag 'for-linus-unmerged' of git://git.kernel.org/pub/scm/linux/…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-07T00:35:43Z">Apr 7, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="COPYING" id="7116ef0705885343c9e1b2171a06be0e-da4cb28febe66172a9fdf1a235525ae6c00cde1d" itemprop="license" href="/torvalds/linux/blob/master/COPYING">COPYING</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="COPYING: use the new text with points to the license files
- Now that we have a new COPYING file with points to the
- Linux license files, replace it with the old content.
- This patch does:
- 1 file changed, 0 insertions(+), 0 deletions(-)
- rename COPYING.new => COPYING (100%)
- Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
- Signed-off-by: Jonathan Corbet <corbet@lwn.net>" class="message" href="/torvalds/linux/commit/bf02d491237eea10290bd379bf7fc8c37ac6c3b4">COPYING: use the new text with points to the license files</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-23T18:41:45Z">Mar 23, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="CREDITS" id="e5f53fee4717a20069da09aa7a0f614d-989cda91c427db34e38c84ea9cbcca2fdcb068fb" href="/torvalds/linux/blob/master/CREDITS">CREDITS</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="MAINTAINERS/CREDITS: Drop METAG ARCHITECTURE
- The core Meta architecture support has now been removed, so drop the
- MAINTAINERS entry and add an entry to CREDITS.
- Signed-off-by: James Hogan <jhogan@kernel.org>
- Cc: linux-metag@vger.kernel.org" class="message" href="/torvalds/linux/commit/0b658a1e9a58bdbe4863256a02f0b19f42de7acc">MAINTAINERS/CREDITS: Drop METAG ARCHITECTURE</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-05T16:34:24Z">Mar 5, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="Kbuild" id="99cd79cd066f57d7f8925989ddeaa55b-00530420548225a8b26a36f504d9aa00468ddb42" href="/torvalds/linux/blob/master/Kbuild">Kbuild</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
- Pull Kbuild updates from Masahiro Yamada:
- "One of the most remarkable improvements in this cycle is, Kbuild is
- now able to cache the result of shell commands. Some variables are
- expensive to compute, for example, $(call cc-option,...) invokes the
- compiler. It is not efficient to redo this computation every time,
- even when we are not actually building anything. Kbuild creates a
- hidden file ".cache.mk" that contains invoked shell commands and their
- results. The speed-up should be noticeable.
- Summary:
- - Fix arch build issues (hexagon, sh)
- - Clean up various Makefiles and scripts
- - Fix wrong usage of {CFLAGS,LDFLAGS}_MODULE in arch Makefiles
- - Cache variables that are expensive to compute
- - Improve cc-ldopton and ld-option for Clang
- - Optimize output directory creation"
- * tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
- kbuild: move coccicheck help from scripts/Makefile.help to top Makefile
- sh: decompressor: add shipped files to .gitignore
- frv: .gitignore: ignore vmlinux.lds
- selinux: remove unnecessary assignment to subdir-
- kbuild: specify FORCE in Makefile.headersinst as .PHONY target
- kbuild: remove redundant mkdir from ./Kbuild
- kbuild: optimize object directory creation for incremental build
- kbuild: create object directories simpler and faster
- kbuild: filter-out PHONY targets from "targets"
- kbuild: remove redundant $(wildcard ...) for cmd_files calculation
- kbuild: create directory for make cache only when necessary
- sh: select KBUILD_DEFCONFIG depending on ARCH
- kbuild: fix linker feature test macros when cross compiling with Clang
- kbuild: shrink .cache.mk when it exceeds 1000 lines
- kbuild: do not call cc-option before KBUILD_CFLAGS initialization
- kbuild: Cache a few more calls to the compiler
- kbuild: Add a cache for generated variables
- kbuild: add forward declaration of default target to Makefile.asm-generic
- kbuild: remove KBUILD_SUBDIR_ASFLAGS and KBUILD_SUBDIR_CCFLAGS
- hexagon/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE
- ..." class="message" href="/torvalds/linux/commit/09bd7c75e55cbaa6c731b0c3a5512ad89159f26f">Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-11-18T01:45:29Z">Nov 18, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="Kconfig" id="a8d286f45e576c6843d8137bf3d043ea-8c4c1cb0f9cd44321d340d8ae7e243677437adfb" href="/torvalds/linux/blob/master/Kconfig">Kconfig</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="License cleanup: add SPDX GPL-2.0 license identifier to files with no license
- Many source files in the tree are missing licensing information, which
- makes it harder for compliance tools to determine the correct license.
- By default all files without license information are under the default
- license of the kernel, which is GPL version 2.
- Update the files which contain no license information with the 'GPL-2.0'
- SPDX license identifier. The SPDX identifier is a legally binding
- shorthand, which can be used instead of the full boiler plate text.
- This patch is based on work done by Thomas Gleixner and Kate Stewart and
- Philippe Ombredanne.
- How this work was done:
- Patches were generated and checked against linux-4.14-rc6 for a subset of
- the use cases:
- - file had no licensing information it it.
- - file was a */uapi/* one with no licensing information in it,
- - file was a */uapi/* one with existing licensing information,
- Further patches will be generated in subsequent months to fix up cases
- where non-standard license headers were used, and references to license
- had to be inferred by heuristics based on keywords.
- The analysis to determine which SPDX License Identifier to be applied to
- a file was done in a spreadsheet of side by side results from of the
- output of two independent scanners (ScanCode & Windriver) producing SPDX
- tag:value files created by Philippe Ombredanne. Philippe prepared the
- base worksheet, and did an initial spot review of a few 1000 files.
- The 4.13 kernel was the starting point of the analysis with 60,537 files
- assessed. Kate Stewart did a file by file comparison of the scanner
- results in the spreadsheet to determine which SPDX license identifier(s)
- to be applied to the file. She confirmed any determination that was not
- immediately clear with lawyers working with the Linux Foundation.
- Criteria used to select files for SPDX license identifier tagging was:
- - Files considered eligible had to be source code files.
- - Make and config files were included as candidates if they contained >5
- lines of source
- - File already had some variant of a license header in it (even if <5
- lines).
- All documentation files were explicitly excluded.
- The following heuristics were used to determine which SPDX license
- identifiers to apply.
- - when both scanners couldn't find any license traces, file was
- considered to have no license information in it, and the top level
- COPYING file license applied.
- For non */uapi/* files that summary was:
- SPDX license identifier # files
- ---------------------------------------------------|-------
- GPL-2.0 11139
- and resulted in the first patch in this series.
- If that file was a */uapi/* path one, it was "GPL-2.0 WITH
- Linux-syscall-note" otherwise it was "GPL-2.0". Results of that was:
- SPDX license identifier # files
- ---------------------------------------------------|-------
- GPL-2.0 WITH Linux-syscall-note 930
- and resulted in the second patch in this series.
- - if a file had some form of licensing information in it, and was one
- of the */uapi/* ones, it was denoted with the Linux-syscall-note if
- any GPL family license was found in the file or had no licensing in
- it (per prior point). Results summary:
- SPDX license identifier # files
- ---------------------------------------------------|------
- GPL-2.0 WITH Linux-syscall-note 270
- GPL-2.0+ WITH Linux-syscall-note 169
- ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) 21
- ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 17
- LGPL-2.1+ WITH Linux-syscall-note 15
- GPL-1.0+ WITH Linux-syscall-note 14
- ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) 5
- LGPL-2.0+ WITH Linux-syscall-note 4
- LGPL-2.1 WITH Linux-syscall-note 3
- ((GPL-2.0 WITH Linux-syscall-note) OR MIT) 3
- ((GPL-2.0 WITH Linux-syscall-note) AND MIT) 1
- and that resulted in the third patch in this series.
- - when the two scanners agreed on the detected license(s), that became
- the concluded license(s).
- - when there was disagreement between the two scanners (one detected a
- license but the other didn't, or they both detected different
- licenses) a manual inspection of the file occurred.
- - In most cases a manual inspection of the information in the file
- resulted in a clear resolution of the license that should apply (and
- which scanner probably needed to revisit its heuristics).
- - When it was not immediately clear, the license identifier was
- confirmed with lawyers working with the Linux Foundation.
- - If there was any question as to the appropriate license identifier,
- the file was flagged for further research and to be revisited later
- in time.
- In total, over 70 hours of logged manual review was done on the
- spreadsheet to determine the SPDX license identifiers to apply to the
- source files by Kate, Philippe, Thomas and, in some cases, confirmation
- by lawyers working with the Linux Foundation.
- Kate also obtained a third independent scan of the 4.13 code base from
- FOSSology, and compared selected files where the other two scanners
- disagreed against that SPDX file, to see if there was new insights. The
- Windriver scanner is based on an older version of FOSSology in part, so
- they are related.
- Thomas did random spot checks in about 500 files from the spreadsheets
- for the uapi headers and agreed with SPDX license identifier in the
- files he inspected. For the non-uapi files Thomas did random spot checks
- in about 15000 files.
- In initial set of patches against 4.14-rc6, 3 files were found to have
- copy/paste license identifier errors, and have been fixed to reflect the
- correct identifier.
- Additionally Philippe spent 10 hours this week doing a detailed manual
- inspection and review of the 12,461 patched files from the initial patch
- version early this week with:
- - a full scancode scan run, collecting the matched texts, detected
- license ids and scores
- - reviewing anything where there was a license detected (about 500+
- files) to ensure that the applied SPDX license was correct
- - reviewing anything where there was no detection but the patch license
- was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied
- SPDX license was correct
- This produced a worksheet with 20 files needing minor correction. This
- worksheet was then exported into 3 different .csv files for the
- different types of files to be modified.
- These .csv files were then reviewed by Greg. Thomas wrote a script to
- parse the csv files and add the proper SPDX tag to the file, in the
- format that the file expected. This script was further refined by Greg
- based on the output to detect more types of files automatically and to
- distinguish between header and source .c files (which need different
- comment types.) Finally Greg ran the script using the .csv files to
- generate the patches.
- Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
- Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
- Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
- Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" class="message" href="/torvalds/linux/commit/b24413180f5600bcb3bb70fbed5cf186b60864bd">License cleanup: add SPDX GPL-2.0 license identifier to files with no…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2017-11-02T10:10:55Z">Nov 2, 2017</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="MAINTAINERS" id="bb5907b965b501e1856ccd79d2c4f642-0a1410d5a621835ded529ac2d6ade31c306e086f" href="/torvalds/linux/blob/master/MAINTAINERS">MAINTAINERS</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Merge tag 'chrome-platform-for-linus-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform
- Pull chrome platform updates from Benson Leung:
- - a series from Dmitry to remove platform data from chromeos_laptop.c,
- which was the only user of platform data for the atmel_mxt_ts driver.
- - a series to clean up sysfs and debugfs for cros_ec
- - other misc cleanups
- * tag 'chrome-platform-for-linus-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform: (22 commits)
- platform/chrome: mfd/cros_ec_dev: Add sysfs entry to set keyboard wake lid angle
- platform/chrome: cros_ec_debugfs: Add PD port info to debugfs
- platform/chrome: cros_ec_debugfs: Use octal permissions '0444'
- platform/chrome: cros_ec_sysfs: use permission-specific DEVICE_ATTR variants
- platform/chrome: cros_ec_sysfs: introduce to_cros_ec_dev define.
- platform/chrome: cros_ec_sysfs: Modify error handling
- platform/chrome: cros_ec_lpc: Add support for Google devices using custom coreboot firmware
- platform/chrome: cros_ec_lpc: wake up from s2idle on Chrome EC
- Input: atmel_mxt_ts - remove platform data support
- platform/chrome: chromeos_laptop - discard data for unneeded boards
- platform/chrome: chromeos_laptop - use device properties for Pixel
- platform/chrome: chromeos_laptop - rely on I2C to set up interrupt trigger
- platform/chrome: chromeos_laptop - use I2C notifier to create devices
- platform/chrome: chromeos_laptop - parse DMI IRQ data once
- platform/chrome: chromeos_laptop - rework i2c peripherals initialization
- platform/chrome: chromeos_laptop - factor out getting IRQ from DMI
- platform/chrome: chromeos_laptop - introduce pr_fmt()
- platform/chrome: chromeos_laptop - stop setting suspend mode for Atmel devices
- platform/chrome: chromeos_laptop - add SPDX identifier
- Input: atmel_mxt_ts - switch ChromeOS ACPI devices to generic props
- ..." class="message" href="/torvalds/linux/commit/f6811370b9266a3d8a21e27cb5f46751f97df2fb">Merge tag 'chrome-platform-for-linus-4.17' of git://git.kernel.org/pu…</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-13T23:20:36Z">Apr 13, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="Makefile" id="b67911656ef5d18c4ae36cb6741b7965-e811e0c509c5b90add1c607bc664c2bc8cb0d6dc" href="/torvalds/linux/blob/master/Makefile">Makefile</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Linux 4.17-rc1" class="message" href="/torvalds/linux/commit/60cc43fc888428bb2f18f08997432d426a243338">Linux 4.17-rc1</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-04-16T01:24:20Z">Apr 16, 2018</time-ago></span>
- </td>
- </tr>
- <tr class="js-navigation-item">
- <td class="icon">
- <svg class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
- <img width="16" height="16" class="spinner" alt="" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" />
- </td>
- <td class="content">
- <span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="README" id="c47c7c7383225ab55ff591cb59c41e6b-2c927ccbd97055c71cda2fccc1eaa8b12b93374a" href="/torvalds/linux/blob/master/README">README</a></span>
- </td>
- <td class="message">
- <span class="css-truncate css-truncate-target">
- <a data-pjax="true" title="Docs: Added a pointer to the formatted docs to README
- Kernel.org nicely maintains an online copy of the formatted documentation;
- tell our users that it exists.
- Signed-off-by: Jonathan Corbet <corbet@lwn.net>" class="message" href="/torvalds/linux/commit/4b290af0b3a4cca68eaf80f8cf44d3cda3fe6744">Docs: Added a pointer to the formatted docs to README</a>
- </span>
- </td>
- <td class="age">
- <span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-21T15:02:53Z">Mar 21, 2018</time-ago></span>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="readme" class="readme boxed-group clearfix announce instapaper_body ">
- <h3>
- <svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg>
- README
- </h3>
- <div class="plain"><pre>Linux kernel
- ============
- There are several guides for kernel developers and users. These guides can
- be rendered in a number of formats, like HTML and PDF. Please read
- Documentation/admin-guide/README.rst first.
- In order to build the documentation, use ``make htmldocs`` or
- ``make pdfdocs``. The formatted documentation can also be read online at:
- <a href="https://www.kernel.org/doc/html/latest/">https://www.kernel.org/doc/html/latest/</a>
- There are various text files in the Documentation/ subdirectory,
- several of them using the Restructured Text markup notation.
- See Documentation/00-INDEX for a list of what is contained in each file.
- Please read the Documentation/process/changes.rst file, as it contains the
- requirements for building and running the kernel, and information about
- the problems which may result by upgrading your kernel.
- </pre></div>
- </div>
- </div>
- <div class="modal-backdrop js-touch-events"></div>
- </div>
- </div>
- </div>
- </div>
- <div class="footer container-lg px-3" role="contentinfo">
- <div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
- <ul class="list-style-none d-flex flex-wrap ">
- <li class="mr-3">© 2018 <span title="0.27920s from unicorn-615346961-xq3zh">GitHub</span>, Inc.</li>
- <li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
- <li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
- <li class="mr-3"><a href="https://help.github.com/articles/github-security/" data-ga-click="Footer, go to security, text:security">Security</a></li>
- <li class="mr-3"><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
- <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
- </ul>
- <a aria-label="Homepage" title="GitHub" class="footer-octicon" href="https://github.com">
- <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
- </a>
- <ul class="list-style-none d-flex flex-wrap ">
- <li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
- <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
- <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
- <li class="mr-3"><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
- <li class="mr-3"><a href="https://blog.github.com" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
- <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
- </ul>
- </div>
- <div class="d-flex flex-justify-center pb-6">
- <span class="f6 text-gray-light"></span>
- </div>
- </div>
- <div id="ajax-error-message" class="ajax-error-message flash flash-error">
- <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
- <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
- <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
- </button>
- You can't perform that action at this time.
- </div>
- <script crossorigin="anonymous" integrity="sha512-yNr0q+cdUZ7oyTrEbVbhiYGFYmrAMbaxySSMyAyKD/aeBDYeT5Ljsi7D5VN2pTojNgRVWAwNwv1ub03StbDwhg==" type="application/javascript" src="https://assets-cdn.github.com/assets/frameworks-cae483278a9c7126c25f62f25f2cfb95.js"></script>
- <script crossorigin="anonymous" async="async" integrity="sha512-8jmIGPi8VVD8iPhTbRIKWsP504jvYriABlz1xVVSDNljxWKk6RkpUhh80oNMlE7I18zXwiRA8viF+9OmY/4PJw==" type="application/javascript" src="https://assets-cdn.github.com/assets/github-aee23ce1bb818e2e56f43f679d1dcdbf.js"></script>
- <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner d-none">
- <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
- <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
- <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
- </div>
- <div class="facebox" id="facebox" style="display:none;">
- <div class="facebox-popup">
- <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
- </div>
- <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
- <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
- </button>
- </div>
- </div>
- <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
- <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
- </div>
- </div>
- <div id="hovercard-aria-description" class="sr-only">
- Press h to open a hovercard with more details.
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement