{"id":90687,"date":"2020-08-04T13:42:33","date_gmt":"2020-08-04T11:42:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux"},"modified":"2020-08-04T13:42:33","modified_gmt":"2020-08-04T11:42:33","slug":"predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux","title":{"rendered":"Proposal for Blocking Driver Interfaces Providing Access to GPL Kernel Calls","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Christoph Hellwig, a renowned Linux kernel developer who was once a member of the technical oversight committee at the Linux Foundation and served as a plaintiff in a case related to GPL <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50445\">litigation<\/a><\/noindex> against VMware, <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/7\/30\/58\">proposed<\/a><\/noindex> which aims to tighten the protection against linking proprietary drivers with Linux kernel components that are exported only for modules under the GPL license. To bypass the restriction on exporting GPL symbols, proprietary driver manufacturers use a wrapper module, the code of which is open and distributed under the GPLv2 license, but its functions are limited to relaying access from the proprietary driver to the necessary kernel APIs that are prohibited for direct use from proprietary code.<\/p>\n<p>To block such maneuvers, Christoph Hellwig  <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/7\/30\/61\">prepared<\/a><\/noindex> for the Linux kernel patches that ensure inheritance of flags related to the export of GPL symbols. The proposal revolves around inheriting the TAINT_PROPRIETARY_MODULE flag in all modules importing symbols from modules with this flag. Thus, if a GPL wrapper module attempts to import symbols from a non-GPL module, the GPL module will inherit the TAINT_PROPRIETARY_MODULE label and will be unable to access kernel components available only to modules under the GPL license, even if the module previously imported symbols from the 'gplonly' category. <\/p>\n<p>During the discussion, there was also <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/7\/31\/902\">a proposal for reverse blocking \u2014 if a module imports EXPORT_SYMBOL_GPL symbols, any symbols exported by this module should not be imported by modules that do not explicitly state compatibility with GPL. That is, if a module imports EXPORT_SYMBOL_GPL symbols, all its exported symbols should be treated as EXPORT_SYMBOL_GPL. Christoph Hellwig<\/a><\/noindex> the proposal for reverse blocking \u2014 if a module imports symbols EXPORT_SYMBOL_GPL, any symbols exported by this module must not be imported by modules that do not explicitly declare compatibility with GPL. That is, if a module imports symbols EXPORT_SYMBOL_GPL, all its exported symbols must be treated as EXPORT_SYMBOL_GPL. Christoph Hellwig <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/8\/1\/35\">wrote<\/a><\/noindex>The change was proposed in response to<\/p>\n<p>an engineer from Facebook's series of patches implementing a new netgpu subsystem that allows direct data exchange (DMA <noindex><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/netdev\/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com\/T\/#m3e84063e82ba14b758873d6cdde6d342157c586c\">publication<\/a><\/noindex> zero-copy) between the network card and GPU, while processing the protocol with CPU resources.<br \/>\nDissatisfaction <noindex><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/netdev\/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com\/T\/#m556b6b762195afbbaf2782ba9be96ef9cf5e2e5c\">among developers was caused by<\/a><\/noindex> the proposed changes. <noindex><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/netdev\/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com\/T\/#md514322fdfa212afe9f1d3eb4e5f7eaefece36eb\">availability<\/a><\/noindex> implementations only for proprietary NVIDIA drivers through the GPL layer provided by those drivers. In response to <noindex><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/netdev\/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com\/T\/#m3a5cab5ac3b0d386718bf62bd27b51510675dce0\">criticism<\/a><\/noindex> the author of the patches <noindex><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/netdev\/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com\/T\/#m758386d335ee7b4e332c44675ff68be29c79ec88\">indicated<\/a><\/noindex>, which means that the subsystem is not tied to NVIDIA and its support could also be provided for software interfaces to AMD and Intel GPUs. As a result, the promotion of netgpu into the kernel was deemed impossible until working support based on free drivers, such as AMDGPU, Intel i915, or Nouveau, becomes available. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53485\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0440\u0438\u0441\u0442\u043e\u0444 \u0425\u0435\u043b\u0432\u0438\u0433 (Christoph Hellwig), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0439 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Linux Foundation \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0432\u0448\u0438\u0439 \u0438\u0441\u0442\u0446\u043e\u043c \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 GPL \u0441\u0443\u0434\u0435\u0431\u043d\u043e\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435 \u0441 VMware, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0443\u0436\u0435\u0441\u0442\u043e\u0447\u0438\u0442\u044c \u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPL. \u0414\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 GPL-\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-90687","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0440\u0438\u0441\u0442\u043e\u0444 \u0425\u0435\u043b\u0432\u0438\u0433 (Christoph Hellwig), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0439 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Linux Foundation \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0432\u0448\u0438\u0439 \u0438\u0441\u0442\u0446\u043e\u043c \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 GPL\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432-\u043f\u0440\u043e\u0441\u043b\u043e\u0435\u043a, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a GPL-\u0432\u044b\u0437\u043e\u0432\u0430\u043c \u044f\u0434\u0440\u0430 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0440\u0438\u0441\u0442\u043e\u0444 \u0425\u0435\u043b\u0432\u0438\u0433 (Christoph Hellwig), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0439 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Linux Foundation \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0432\u0448\u0438\u0439 \u0438\u0441\u0442\u0446\u043e\u043c \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 GPL\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-04T11:42:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-04T11:42:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Proposal to block layer drivers that provide access to GPL kernel calls | ProHoster","description":"Christoph Hellwig, a renowned Linux kernel developer who was once a member of the technical oversight committee at the Linux Foundation and served as a plaintiff in a case related to GPL","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432-\u043f\u0440\u043e\u0441\u043b\u043e\u0435\u043a, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f \u043a GPL-\u0432\u044b\u0437\u043e\u0432\u0430\u043c \u044f\u0434\u0440\u0430 Linux | ProHoster","og:description":"\u041a\u0440\u0438\u0441\u0442\u043e\u0444 \u0425\u0435\u043b\u0432\u0438\u0433 (Christoph Hellwig), \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044f\u0434\u0440\u0430 Linux, \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u0432\u0445\u043e\u0434\u0438\u0432\u0448\u0438\u0439 \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 Linux Foundation \u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0432\u0448\u0438\u0439 \u0438\u0441\u0442\u0446\u043e\u043c \u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c \u0441 GPL","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/predlozhenie-po-blokirovke-drajverov-prosloek-predostavlyayushhih-dostup-k-gpl-vyzovam-yadra-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-04T11:42:33+00:00","article:modified_time":"2020-08-04T11:42:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90687","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:44:42","updated":"2022-10-08 04:17:14","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/90687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=90687"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/90687\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=90687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=90687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=90687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}